शुरू करेंमुफ़्त में शुरू करें

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

मान लीजिए एक फैक्ट्री दीवार घड़ियाँ बनाती है। घड़ियों की लोकप्रियता बढ़ रही है, और अब डिमांड प्रोडक्शन क्षमता से ज़्यादा है। फैक्ट्री महीनों से फुल कैपेसिटी पर काम कर रही है, और आप इसके बिहेवियर और बॉटलनेक्स को बेहतर समझना चाहते हैं ताकि मैनेजमेंट के बेहतर फैसले लिए जा सकें और भविष्य के निवेश व विस्तार की योजना बनाई जा सके.

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

प्रोसेस नाम और उनकी अवधि से जुड़ी सांख्यिकी — mean और standard deviation — वाली टेबल।

Monte-Carlo सैंपलिंग लूप संभावित प्रोसेस ट्रैजेक्टरीज़ की एक सीरीज़ बनाएगा, जैसा कि फ़िगर में दिखाया गया है। विभिन्न प्रोसेस परिदृश्यों के लिए 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()
कोड संपादित करें और चलाएँ