Deterministik olaylar ve süreçler

Python ile Ayrık Olay Benzetimi

Diogo Costa (PhD, MSc)

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

Olay (veya Süreç) determinizmi

NOT: "Olay" ve "süreç" terimleri birbirinin yerine kullanılır.

Olay (veya süreç) determinizmi nedir?

  • Sürecin tam olarak öngörülebilmesi
  • Süreç "deterministik" olarak adlandırılır

Deterministik süreçler neden önemlidir?

  • Doğal ve insan kaynaklı faaliyetler karmaşıktır
  • Birçok bağımlı süreç ve kaynak vardır
  • Bazı süreçler her seferinde aynı şekilde yinelenir
  • Sistem çıktısına etkisi doğru tahmin edilebilir
Python ile Ayrık Olay Benzetimi

Deterministik süreç veya olay örnekleri

Doğal dünya

  • Okyanus gelgitlerinin yüksekliği
  • Yerçekimi ivmesi (9,81 m$^2$/s)
  • Güneş sistemindeki gezegenlerin hareketi
  • Havadaki ses hızı (331,29 m/s)
  • Işık hızı (300.000 km/s)
  • Suyun donması (0 santigrat derecede)

İnsan kaynaklı veya insan başlatmalı

  • Musluktan su akışı
  • Su şişesi doldurma makinesinin hızı
  • Kahve makinesinin bir kahveyi yapma süresi
  • 230 santigrat derecede fırının yaydığı ısı
  • Çamaşır makinesinin programlı döngüleri
  • Mikrodalga fırının çalışması
Python ile Ayrık Olay Benzetimi

Kesikli olay modellerinde deterministik olayları gösterme

Deterministik süreçler

  • Dinamik sistemlerde öngörülebilir etki
  • Süre iyi bilinir
  • Aynı şekilde yinelenir

Süreç süresi, benzetim süresine dahil edilmelidir

# Deterministic processes (time in hours)
duration_process_1 = 10
duration_process_2 = 5

while sim_time < total_sim_time:
# Update simulation time: Process 1 sim_time += duration_process_1
# Update simulation time: Process 2 sim_time += duration_process_2
Python ile Ayrık Olay Benzetimi

SimPy ile deterministik olayları gösterme

Deterministik olayların bir SimPy uygulaması:

  • .timeout() yöntemi süreç süresini işler
    • Zaman birimlerine kördür
    • Zamanı sayı olarak ele alır
    • Zaman birimleri model genelinde tutarlı olmalıdır
# Deterministic processes
duration_process_1 = 10
duration_process_2 = 5

while True:

   # Update simulation time: Process 1
   yield env.timeout(duration_process_1)

   # Update simulation time: Process 2
   yield env.timeout(duration_process_2)

Python ile Ayrık Olay Benzetimi

Hadi pratik yapalım!

Python ile Ayrık Olay Benzetimi

Preparing Video For Download...