Python में Discrete Event Simulation
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
System optimization
Human-driven processes
वे प्रक्रियाएँ पहचानें जिनका सिस्टम आउटपुट पर ज्यादा असर है
Monte-Carlo sampling
Objective functions
आउटपुट लक्ष्य बताने वाला गणितीय व्यंजक
सिमुलेशन परिदृश्यों को स्कोर करें
उदाहरण
कुल: 100%
Search & Stop: अलग-अलग मॉडल कॉन्फ़िगरेशन चलाएँ और वांछित शर्त पूरी होते ही रोकें
while total_duration < 24:
model_to_run()
Score & Rank: वेटिंग क्राइटेरिया के आधार पर सिमुलेशन को स्कोर और रैंक करें
for i in range(num_runs):
out_1, out_2 = model_to_run(i)
scores[i] = 0.3 * out_1 + 0.7 * out_2
उदाहरण
scenario_num = 0
while scenario_num == 0 or total_duration[s] > 40:
scenario_num += 1
env = simpy.Environment()
env.process(manufacturing_proc(env))
env.run()
plot_results()

उदाहरण: मैन्युफैक्चरिंग उद्योग
कई क्रमिक टास्क/प्रोसेस शामिल, जैसे कार प्रोडक्शन लाइन.
def objective_function_calc():
score_objfunc = np.ones(num_scenarios)
for s in range(num_scenarios):
for p in range(len(processes)):
score_objfunc[s] += (
processes[p]["duration_hours"]
* processes[p]["score_weight"])
Score
"RED": कम स्कोर; "BLUE": उच्च स्कोर

Rank
सिमुलेशन रन को स्कोर-रैंक करें

Search & stop

"Blue" रेखा ने "stop" क्राइटेरिया पूरा किया
"best" सिमुलेशन का ब्रेकडाउन:
sum = 20 min)sum = 20 min)sum = 28 min)sum = 30 min)यह लक्ष्य पाने में "Process 1" critical है
Score
उद्देश्य: सबसे कम स्कोर = सबसे कम अवधि

Rank
यह लक्ष्य पाने में "Process 1" critical है

Python में Discrete Event Simulation