Diskrétní simulace událostí v Pythonu
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Optimalizace systému
Procesy řízené člověkem
Identifikace procesů s vyšším dopadem na výstup systému
Vzorkování Monte Carlo
Účelové funkce
Matematický výraz popisující cíl výstupu
Hodnocení simulačních scénářů
Příklad
Celkem: 100 %
Hledej a zastav: Spouštění různých konfigurací modelu a zastavení při splnění podmínky
while total_duration < 24:
model_to_run()
Skóre a pořadí: Hodnocení výsledků simulace na základě vážených kritérií
for i in range(num_runs):
out_1, out_2 = model_to_run(i)
scores[i] = 0.3 * out_1 + 0.7 * out_2
Příklad
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()

Příklad: Výrobní průmysl
Zahrnuje různé sekvenční úlohy (nebo procesy), například výrobní linku automobilů.
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"])
Skóre
"RED": Nízké skóre; "BLUE": Vysoké skóre

Pořadí
Seřazení simulací podle skóre

Hledej a zastav

Linie „Blue" splnila kritéria „zastavení"
Výsledky „nejlepší" simulace:
sum = 20 min)sum = 20 min)sum = 28 min)sum = 30 min)„Proces 1" je klíčový pro dosažení cíle
Skóre
Cíl: nejnižší skóre = nejkratší doba trvání

Pořadí
„Proces 1" je klíčový pro dosažení cíle

Diskrétní simulace událostí v Pythonu