Amaç fonksiyonları ve sistem optimizasyonu

Python ile Ayrık Olay Benzetimi

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Sistem optimizasyonu

  • Sistem optimizasyonu

    • En iyi operasyonel yapılandırmayı belirleme
  • İnsan odaklı süreçler

    • En az maliyetle (daha az kaynak, daha az zaman) en yüksek çıktı
  • Çıktıya en çok etki eden süreçleri belirleme

  • Monte Carlo örnekleme

    • Başarıyı ölçme ve sonuçları sıralama
  • Amaç fonksiyonları

    • Performans hedeflerini belirleyen hedef fonksiyon
Python ile Ayrık Olay Benzetimi

Amaç fonksiyonu

  • Çıktı hedefini tanımlayan matematiksel ifade

  • Simülasyon senaryolarını puanlayın

Örnek

  • Süreç A: %35
  • Süreç B: %20
  • Süreç C: %45

Toplam: %100

  • En yüksek ağırlık Süreç C

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
Python ile Ayrık Olay Benzetimi

Yaklaşım 1: Ara ve Dur

  • Birden çok senaryo için Monte Carlo örnekleme
  • Farklı olasılıksal süreçlerden oluşur
  • Koşul sağlandığında en iyi senaryo arama döngüsü durdurulur

Ö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()

Ardışık süreçlerden oluşan bir üretim faaliyetinin tepki zarfını gösteren grafik; mavi alt çizgi, Ara ve Dur yönteminin gereksinimlerini karşılayan son çalışmayı belirtir.

Python ile Ayrık Olay Benzetimi

Yaklaşım 2: Puanla ve Sırala

  • Birden çok senaryo için Monte Carlo örnekleme
  • Sonuçları puanlayın ve sıralayın

Ö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"]
Python ile Ayrık Olay Benzetimi

Yaklaşım 2: Puanla ve Sırala

Puan

"KIRMIZI": Düşük puan; "MAVİ": Yüksek puan “Boşaltma ve Hazırlama”, “Kesim” ve “Parlatma” süreçlerine ait çeşitli senaryoların amaç fonksiyonu puanlarını gösteren saçılım grafiği.

Sıra

Puan-sıralama simülasyon çalışmaları “Boşaltma ve Hazırlama”, “Kesim” ve “Parlatma” süreçlerine ait çeşitli senaryoları amaç fonksiyonu puanına göre sıralayan grafik.

Python ile Ayrık Olay Benzetimi

Performansı sınırlayan kritik süreçlerin belirlenmesi

Ara ve dur

Ardışık süreçlerden oluşan bir üretim faaliyetinin tepki zarfını gösteren grafik; mavi alt çizgi, Ara ve Dur yönteminin koşullarını karşılayan son çalışmayı belirtir. En iyi simülasyonlarda elde edilen süreçlerin asgari süreleri vurgulanmıştır.

  • "Mavi" çizgi "dur" ölçütlerini sağladı

    • Toplam süre = 30 dk
  • "En iyi" simülasyonun dökümü:

    • Süreç 1: ~10 dk (sum = 20 min)
    • Süreç 2: ~10 dk (sum = 20 min)
    • Süreç 3: ~8 dk (sum = 28 min)
    • Süreç 4: ~2 dk (sum = 30 min)
  • Bu hedef için "Süreç 1" kritiktir

Python ile Ayrık Olay Benzetimi

Performansı sınırlayan kritik süreçlerin belirlenmesi

Puan

Amaç: en düşük puan = en düşük süre “Boşaltma ve Hazırlama”, “Kesim” ve “Parlatma” süreçlerine ait çeşitli senaryoların amaç fonksiyonu puanlarını gösteren saçılım grafiği. En iyi simülasyonlarda elde edilen süreçlerin asgari süreleri vurgulanmıştır.

Sıra

Bu hedef için "Süreç 1" kritiktir “Boşaltma ve Hazırlama”, “Kesim” ve “Parlatma” süreçlerine ait çeşitli senaryoları amaç fonksiyonu puanına göre sıralayan grafik. En iyi simülasyonlarda elde edilen süreçlerin asgari süreleri vurgulanmıştır.

Python ile Ayrık Olay Benzetimi

Hadi pratik yapalım!

Python ile Ayrık Olay Benzetimi

Preparing Video For Download...