सिमुलेशन एंसेंबल: Monte-Carlo सैंपलिंग

Python में Discrete Event Simulation

Diogo Costa (PhD, MSc)

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

विभिन्न परिदृश्यों पर सिस्टम रिस्पॉन्स

  • नॉन-डिटरमिनिस्टिक प्रक्रियाएँ सिस्टम रिस्पॉन्स में वैरिएशन लाती हैं
  • पिछले वीडियो: नॉन-डिटरमिनिस्टिक प्रक्रियाओं का मॉडल बनाना सीखा
  • मॉडल में अनिश्चितता के प्रसार को दर्शाएँ
  • अलग-अलग परिदृश्यों पर सिस्टम का रिस्पॉन्स जाँचें

यह मदद करता है:

  • बिज़नेस विस्तार की योजना
  • स्ट्रेस टेस्ट करना
  • चरम स्थितियों की तैयारी
Python में Discrete Event Simulation

Monte Carlo सैंपलिंग

  • रिपीटेड रैंडम सैंपलिंग
  • छोटे बदलावों के साथ सिस्टम को मॉडल करें
  • बदलाव पर सिस्टम रिस्पॉन्स जाँचें

सैंपल बढ़ने पर पैरामीटर स्पेस

100 Monte Carlo सैंपल्स के नतीजे दिखाता प्लॉट। मॉडल के पैटर्न स्पष्ट नहीं हैं.

1500 Monte Carlo सैंपल्स के नतीजे दिखाता प्लॉट। कुछ पैटर्न अब दिखते हैं पर सीमित हैं.

5000 Monte Carlo सैंपल्स के नतीजे दिखाता प्लॉट। अब स्पष्ट ग्रिड जैसे पैटर्न दिखते हैं.

Python में Discrete Event Simulation

Monte Carlo सैंपलिंग: प्रोसेस जाँच

उदाहरण: Gaussian (normal) वितरण पर आधारित इवेंट जेनरेटर के आउटपुट रेंज को समझने के लिए Monte Carlo रन

import random as rd
import numpy as np
import matplotlib.pyplot as plt

# Generating samples: Gaussian distribution
duration_sample = [rd.gauss(25, 5) 
for i in range(5000)]

# Plotting
plt.scatter(duration_sample, np.r_[0:5000], 
marker='.', c=duration_sample, cmap='CMRmap')
plt.xlabel("Duration [min]")
plt.ylabel("Monte Carlo Runs")

प्लॉट के परिणाम Gaussian वितरण पर आधारित जनरेटेड durations के लिए Monte-Carlo सैंपलिंग दिखाता प्लॉट.

Python में Discrete Event Simulation

Monte Carlo सैंपलिंग: डिस्क्रीट-इवेंट मॉडल्स

मूल उद्देश्य

  • मॉडल अनिश्चितता का पता लगाएँ
  • जो नॉन-डिटरमिनिस्टिक प्रक्रियाओं से आती है
  • अनिश्चितता को वर्णित करें
  • निर्णय-निर्माण में मदद करें

चार स्टेट्स वाला सिस्टम दर्शाने वाला डायग्राम, जहाँ प्रक्रियाएँ स्टेट बदलती हैं। हर बार अवधि में वैरिएबिलिटी के कारण, प्रक्रियाओं के क्रम में संभावित स्टेट्स की संख्या बढ़ती जाती है.

Python में Discrete Event Simulation

Monte Carlo सैंपलिंग: डिस्क्रीट-इवेंट मॉडल्स

  • हर प्रक्रिया की अवधि में अनिश्चितता सिस्टम में propagate होती है

  • इससे अलग-अलग मॉडल trajectories मिलती हैं

  • इसे Response Envelope कहा जाता है

उदाहरण:

n_trajectories = 50

process_1 = {"Name": "Raw_material", 
             "OperationTime": 20, 
             "MaxDelayTimePercent": 10}
process_2 = {"Name": "Unloading", 
            "OperationTime": 15, 
            "MaxDelayTimePercent": 5}

सीक्वेंशियल प्रक्रियाओं वाली एक मैन्युफैक्चरिंग गतिविधि का response envelope दिखाता प्लॉट.

Python में Discrete Event Simulation

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

Python में Discrete Event Simulation

Preparing Video For Download...