Zdarzenia i procesy deterministyczne

Symulacja zdarzeń dyskretnych w Pythonie

Diogo Costa (PhD, MSc)

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

Determinizm zdarzenia (lub procesu)

UWAGA: Terminy „zdarzenie" i „proces" są stosowane zamiennie.

Czym jest determinizm zdarzenia (lub procesu)?

  • Zdolność do dokładnego przewidywania procesu
  • Proces określany jako „deterministyczny"

Dlaczego procesy deterministyczne są ważne?

  • Działania naturalne i ludzkie są złożone
  • Wiele wzajemnie zależnych procesów i zasobów
  • Niektóre procesy przebiegają tak samo przy każdym wystąpieniu
  • Wpływ na wynik systemu można dokładnie przewidzieć
Symulacja zdarzeń dyskretnych w Pythonie

Przykłady procesów i zdarzeń deterministycznych

Świat naturalny

  • Wysokość pływów oceanicznych
  • Przyspieszenie obiektów wskutek grawitacji (9,81 m$^2$/s)
  • Ruch planet w Układzie Słonecznym
  • Prędkość dźwięku w powietrzu (331,29 m/s)
  • Prędkość światła (300 000 km/s)
  • Zamarzanie wody (w temperaturze 0 stopni Celsjusza)

Działania ludzkie lub zainicjowane przez człowieka

  • Przepływ wody z kranu
  • Prędkość maszyny do napełniania butelek wodą
  • Czas parzenia kawy przez ekspres
  • Ciepło wydzielane przez piekarnik w temperaturze 230 stopni Celsjusza
  • Cykle programów pralki
  • Działanie kuchenki mikrofalowej
Symulacja zdarzeń dyskretnych w Pythonie

Reprezentowanie zdarzeń deterministycznych w modelach dyskretnych

Procesy deterministyczne

  • Przewidywalny wpływ na systemy dynamiczne
  • Znany czas trwania
  • Przebiegają w ten sam sposób przy każdym wystąpieniu

Czas trwania procesu musi być uwzględniony w czasie symulacji

# 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
Symulacja zdarzeń dyskretnych w Pythonie

Reprezentowanie zdarzeń deterministycznych w SimPy

Implementacja zdarzeń deterministycznych w SimPy:

  • Metoda .timeout() rejestruje czas trwania procesu
    • Nie uwzględnia jednostek czasu
    • Traktuje czas jako liczby
    • Jednostki czasu muszą być spójne w całym modelu
# 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)

Symulacja zdarzeń dyskretnych w Pythonie

Czas na ćwiczenia!

Symulacja zdarzeń dyskretnych w Pythonie

Preparing Video For Download...