डिस्क्रीट-इवेंट मॉडल्स के लिए Monte Carlo सैंपलिंग
मान लीजिए एक फैक्ट्री दीवार घड़ियाँ बनाती है। घड़ियों की लोकप्रियता बढ़ रही है, और अब डिमांड प्रोडक्शन क्षमता से ज़्यादा है। फैक्ट्री महीनों से फुल कैपेसिटी पर काम कर रही है, और आप इसके बिहेवियर और बॉटलनेक्स को बेहतर समझना चाहते हैं ताकि मैनेजमेंट के बेहतर फैसले लिए जा सकें और भविष्य के निवेश व विस्तार की योजना बनाई जा सके.
फैक्ट्री प्रक्रियाओं का एक डिस्क्रीट-इवेंट मॉडल बनाया गया है, और अब आप परिदृश्यों को जाँचने के लिए Monte Carlo सैंपलिंग एनालिसिस चलाना चाहते हैं। मैन्युफैक्चरिंग प्रोसेस का सार नीचे दी गई टेबल में है, और यह जानकारी processes नाम की डिक्शनरीज़ की list में स्टोर की गई है, जिसमें हर प्रोसेस के लिए एक डिक्शनरी है। इस डिक्शनरी की keys टेबल के कॉलम हेडर्स से मेल खाती हैं। आपके लिए ये पैकेज इम्पोर्ट किए गए हैं: numpy as np, matplotlib.pyplot as plt, seaborn as sns, random, pandas as pd, और time.

Monte-Carlo सैंपलिंग लूप संभावित प्रोसेस ट्रैजेक्टरीज़ की एक सीरीज़ बनाएगा, जैसा कि फ़िगर में दिखाया गया है।

यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Discrete Event Simulation
अभ्यास निर्देश
n_trajectoriesसैंपल्स के लिए डमी वैरिएबलtके साथ मुख्य Monte Carlo सैंपलिंग for-लूप सेट करें।- प्रोसेस की अवधि का प्सूडो-रैंडम अनुमान लगाने के लिए
randomपैकेज की Gaussian डिस्ट्रीब्यूशन का उपयोग करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
n_trajectories = 100
# Run a Monte-Carlo for-loop for n_trajectories samples
____
for p in range(len(processes)):
proc_p = processes[p]
# Random gauss method to pseudo-randomly estimate process duration
process_duration = ____(proc_p["Average_Duration"], proc_p["Standard_Deviation"])
time_record[p + 1] = time_record[p] + process_duration
df_disc = pd.DataFrame({cNam[0]: process_line_space, cNam[1]: time_record})
fig = sns.lineplot(data=df_disc, x=cNam[0], y=cNam[1], marker="o") # Step_10
fig.set(xlim=(0, len(processes) + 1))
plt.plot()
plt.grid()
plt.show()