Belirsiz (deterministik olmayan) 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 belirsizliği

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

Olay (veya süreç) belirsizliği nedir?

  • Sürecin tam olarak öngörülememesi
  • Süreç "Deterministik olmayan" olarak adlandırılır

Deterministik süreçler neden önemlidir?

  • Doğal ve insan kaynaklı etkinlikler sıkça belirsiz süreçler içerir
  • Her gerçekleşmede farklı şekilde tekrar ederler
  • Süreleri tam belirlenemez
  • Sistem çıktısını güçlü biçimde etkileyebilirler
Python ile Ayrık Olay Benzetimi

Belirsiz süreç veya olay örnekleri

Doğal dünya

  • Bir volkanın patlama anı
  • Yağın tam başlayacağı an
  • Yıldırımın çarpacağı zaman ve yer
  • Bir hortumun oluşacağı zaman ve yer

İnsan kaynaklı veya insan başlatımlı süreçler

  • Bir makinenin bozulacağı an
  • Birinin tuvalete gitme ihtiyacı duyacağı an
  • Bebeğin ağlamaya başlayacağı an
  • Ticari bir uçuşun gecikip gecikmeyeceği
Python ile Ayrık Olay Benzetimi

Belirsiz olayları ayrık olay modellerinde temsil etme

Deterministik olmayan süreçler

  • Sisteme tekrarlanamaz etkiler üretir
  • Kesin süreleri bilinmez

İstatistik

  • Süreç sürelerindeki değişkenliği temsil eder
  • random paketi bunun için kullanışlıdır

  • Örnek: random.randint(start, end)

import random

# Non-deterministic processes
process_1 = [5, 15]

while time < simulation_time:

   # Update simulation time: process_1
   time += random.randint(
               process_1[0], 
               process_1[1])

Python ile Ayrık Olay Benzetimi

SimPy ile belirsiz olayları temsil etme

  • Belirsiz süreçleri hesaba katmak için özel yöntem yok

  • Olay süresi değişkenliği, SimPy tabanlı olmayan modellerdeki gibi hesaplanır

  • Doğru istatistikleri .timeout()'a geçirin DNT_CURLY_TAG_3

import random

# Non-deterministic processes
process_1 = [5, 15]

while True:

  # Update simulation time: process_1
  yield env.timeout(random.randint(
         process_1[0], 
         process_1[1]))
Python ile Ayrık Olay Benzetimi

Hadi pratik yapalım!

Python ile Ayrık Olay Benzetimi

Preparing Video For Download...