SimPy के साथ discrete-event मॉडल बनाना

Python में Discrete Event Simulation

Dr Diogo Costa

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

मॉडल बनाने से पहले

  • डायनेमिक सिस्टम को समझें

  • discrete-event मॉडल के उद्देश्य तय करें

  • प्रक्रियाएँ पहचानें:

    • समानांतर चलने वाली
    • अनुक्रम में चलने वाली
  • उपयुक्त SimPy संसाधन पहचानें (resource, container, store)

  • मॉडल की आर्किटेक्चर तय करें:

    • स्टेट वैरिएबल पहचानें
    • मॉडल का वर्कफ़्लो
    • जेनरेटर
Python में Discrete Event Simulation

डायनेमिक सिस्टम और मॉडल के उद्देश्य

डायनेमिक सिस्टम समझें

  • कौन-से पहलू इसके व्यवहार को प्रभावित करते हैं?
  • किन प्रक्रियाओं/इवेंट्स को शामिल करना है?

मॉडल के उद्देश्य

  • अक्सर सिस्टम को ऑप्टिमाइज़ करने के लिए उपयोग होता है
  • आप किन पहलुओं को ऑप्टिमाइज़ करना चाहते हैं?

    • अधिक कस्टमर्स
    • तेज़ प्रोसेसिंग टाइम
    • संसाधन आवंटन का ऑप्टिमाइज़ेशन
  • इन उद्देश्यों को मॉनिटर करने के लिए स्टेट-वैरिएबल्स

Python में Discrete Event Simulation

उपयुक्त SimPy संसाधन पहचानें

Shared Resources

simpy.Resource(env, capacity=4)
  • प्रक्रियाओं के बीच साझा संसाधन

उदाहरण

  • रेस्टोरेंट की टेबलें
  • फ़ैक्टरी की मशीनें
  • थिएटर की सीटें
  • दुकान में कैशियर

Containers

simpy.Container(env, capacity, 
init=initial_capacity)
  • संसाधन टैंक/टोकरी जैसा व्यवहार करता है

  • मात्रा जोड़ें/हटाएँ:

.put() और .get()

उदाहरण

  • गैस स्टेशन में फ्यूल रिज़र्व
  • कोयला-आधारित पावर प्लांट में कोयला
Python में Discrete Event Simulation

उपयुक्त SimPy संसाधन पहचानें

Store

simpy.Store(env, capacity=4)
  • स्टोर जैसे कई आइटम्स वाला संसाधन

  • क्षमता डिफ़ॉल्ट रूप से अनलिमिटेड होती है

  • मनचाही ऑब्जेक्ट्स रखने के लिए क्षमता स्लॉट्स

  • आइटम्स जोड़ें/निकालें:

.put() और .get()

उदाहरण

  • कई आइटम्स बेचने वाली दुकानें
  • स्टोरेज रूम
  • वर्कशॉप
  • घरेलू उपयोग
Python में Discrete Event Simulation

Bitwise ऑपरेटर्स से इवेंट्स जोड़ें

SimPy दो इवेंट्स को जोड़ने के लिए bitwise ऑपरेटर्स का उपयोग करता है

Python में ऑपरेटर्स के प्रकार

  • Arithmetic, logical, और comparison ऑपरेटर्स

Bitwise ऑपरेटर्स

  • integers पर bitwise गणनाएँ
  • दो ओपेरेंड्स अपेक्षित
    • उदाहरण: a & b, a >> b, a ^ b

SimPy में

  • Bitwise ऑपरेटर्स condition event बनाते हैं
  • दो इवेंट्स/प्रोसेसेज़ में से दोनों या किसी एक के लिए प्रतीक्षा करें

SimPy के लिए प्रासंगिक bitwise ऑपरेटर्स

  • दोनों प्रक्रियाओं का इंतज़ार: __and__() या &
  • किसी एक प्रक्रिया का इंतज़ार: __or__() या |
Python में Discrete Event Simulation

अभ्यास करते हैं!

Python में Discrete Event Simulation

Preparing Video For Download...