Python ile Ayrık Olay Benzetimi
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
Sistem optimizasyonu
İnsan odaklı süreçler
Çıktıya en çok etki eden süreçleri belirleme
Monte Carlo örnekleme
Amaç fonksiyonları
Çıktı hedefini tanımlayan matematiksel ifade
Simülasyon senaryolarını puanlayın
Örnek
Toplam: %100
Ara ve Dur: Farklı model yapılandırmalarını çalıştırın; istenen koşul sağlanınca durdurun
while total_duration < 24:
model_to_run()
Puanla ve Sırala: Kriter ağırlıklarına göre simülasyon çıktılarını puanlayın
for i in range(num_runs):
out_1, out_2 = model_to_run(i)
scores(i) = 0.3 * out_1 + 0.7 * out_2
Örnek
scenario_num = 0
while scenario_num == 0 or total_duration[s] > 40:
scenario_num += 1
env = simpy.Environment()
env.process(manufractoring_proc(env))
env.run()
plot_results()

Örnek: Üretim sektörü
Otomobil üretim hattı gibi ardışık görevler (veya süreçler) içerir.
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"]
Puan
"KIRMIZI": Düşük puan; "MAVİ": Yüksek puan

Sıra
Puan-sıralama simülasyon çalışmaları

Ara ve dur

"Mavi" çizgi "dur" ölçütlerini sağladı
"En iyi" simülasyonun dökümü:
sum = 20 min)sum = 20 min)sum = 28 min)sum = 30 min)Bu hedef için "Süreç 1" kritiktir
Puan
Amaç: en düşük puan = en düşük süre

Sıra
Bu hedef için "Süreç 1" kritiktir

Python ile Ayrık Olay Benzetimi