Wprowadzenie do symulacji zdarzeń dyskretnych

Symulacja zdarzeń dyskretnych w Pythonie

Diogo Costa (PhD, MSc)

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

Modele zdarzeń dyskretnych a modele ciągłe

Modele ciągłe

  • Działają w stałych krokach czasowych

  • Czas jest zmienną pomocniczą

    • Czas nie jest aktualizowany wewnątrz pętli
  • Używają pętli for z czasem

    for t in range(time_range):
    

Modele zdarzeń dyskretnych

  • Działają w zmiennych krokach czasowych

    • Uruchamiają/planują zdarzenia dyskretne o różnym czasie trwania
  • Czas jest zmienną stanu

    • Czas jest aktualizowany wewnątrz pętli while
    • Czas nie jest zmienną pomocniczą
  • Zazwyczaj używają pętli while

    while (time < 365):
    time += process_duration
    
Symulacja zdarzeń dyskretnych w Pythonie

Elementy modeli zdarzeń dyskretnych

  • Zmienne stanu
  • Zegar
  • Lista zdarzeń (lub procesów)
  • Warunek(i) zakończenia
Symulacja zdarzeń dyskretnych w Pythonie

Elementy modelu

Przykład: model firmy taksówkarskiej

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

Warunek zakończenia

while (time < 10)
  • Warunek(i) kończący symulację
Symulacja zdarzeń dyskretnych w Pythonie

Elementy modelu

Przykład: model firmy taksówkarskiej

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

Zegar

time += time_duration_1
time += time_duration_2
  • time śledzi bieżący czas symulacji
  • Zegar przeskakuje do czasu początku kolejnego zdarzenia
  • Czas skacze, ponieważ zdarzenia są chwilowe
Symulacja zdarzeń dyskretnych w Pythonie

Elementy modelu

Przykład: model firmy taksówkarskiej

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

Zmienna stanu

time
  • Skrócenie czasu od zamówienia taksówki do dowiezienia klienta

  • Zmienne opisujące wyniki i efektywność systemu

Symulacja zdarzeń dyskretnych w Pythonie

Czas na ćwiczenia!

Symulacja zdarzeń dyskretnych w Pythonie

Preparing Video For Download...