Úvod do simulací diskrétních událostí

Diskrétní simulace událostí v Pythonu

Diogo Costa (PhD, MSc)

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

Modely diskrétních událostí vs. spojité modely

Spojité modely

  • Spouštějí se v pevných časových krocích

  • Čas je pomocná proměnná

    • Čas se uvnitř smyčky neaktualizuje
  • Používají for-smyčky

    for t in range(time_range):
    

Modely diskrétních událostí

  • Spouštějí se v proměnných časových krocích

    • Plánují diskrétní události s různou délkou trvání
  • Čas je stavová proměnná

    • Čas se aktualizuje uvnitř while-smyčky
    • Čas není pomocná proměnná
  • Často používají while-smyčky

    while (time < 365):
    time += process_duration
    
Diskrétní simulace událostí v Pythonu

Komponenty modelů diskrétních událostí

  • Stavové proměnné
  • Hodiny
  • Seznam událostí (nebo procesů)
  • Podmínka(y) ukončení
Diskrétní simulace událostí v Pythonu

Komponenty modelu

Příklad: model taxislužby

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Podmínka ukončení

while (time < 10)
  • Podmínka(y) ukončující simulaci
Diskrétní simulace událostí v Pythonu

Komponenty modelu

Příklad: model taxislužby

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Hodiny

time += time_duration_1
time += time_duration_2
  • time sleduje aktuální čas simulace
  • Hodiny přeskakují na začátek další události
  • Čas skáče, protože události jsou okamžité
Diskrétní simulace událostí v Pythonu

Komponenty modelu

Příklad: model taxislužby

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Stavová proměnná

time
  • Zkrátit dobu od zavolání taxíku po dovezení zákazníka

  • Proměnné charakterizující výstupy a efektivitu systému

Diskrétní simulace událostí v Pythonu

Pojďme si procvičit!

Diskrétní simulace událostí v Pythonu

Preparing Video For Download...