Deterministische Ereignisse und Prozesse

Diskrete-Ereignis-Simulation mit Python

Diogo Costa (PhD, MSc)

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

Ereignis- (oder Prozess-) Determinismus

HINWEIS: Die Begriffe „Ereignis“ und „Prozess“ werden austauschbar verwendet.

Was ist Ereignis- (oder Prozess-) Determinismus?

  • Fähigkeit, einen Prozess exakt vorherzusagen
  • Der Prozess gilt als „deterministisch“

Warum sind deterministische Prozesse wichtig?

  • Natürliche und menschengemachte Aktivitäten sind komplex
  • Viele voneinander abhängige Prozesse und Ressourcen
  • Manche Prozesse wiederholen sich jedes Mal gleich
  • Einfluss auf den Systemoutput ist exakt vorhersagbar
Diskrete-Ereignis-Simulation mit Python

Beispiele deterministischer Prozesse oder Ereignisse

Natur

  • Höhe der Gezeiten
  • Beschleunigung durch Gravitation (9,81 m/s^2)
  • Bewegung der Planeten im Sonnensystem
  • Schallgeschwindigkeit in Luft (331,29 m/s)
  • Lichtgeschwindigkeit (300.000 km/s)
  • Gefrierpunkt von Wasser (0 °C)

Menschengesteuert oder -initiiert

  • Durchfluss aus dem Wasserhahn
  • Geschwindigkeit einer Flaschenabfüllmaschine
  • Zeit, die die Kaffeemaschine pro Kaffee braucht
  • Wärmeabgabe eines Ofens bei 230 °C
  • Programmierbare Waschmaschinenzyklen
  • Funktion eines Mikrowellengeräts
Diskrete-Ereignis-Simulation mit Python

Deterministische Ereignisse in ereignisdiskreten Modellen darstellen

Deterministische Prozesse

  • Vorhersehbarer Einfluss auf dynamische Systeme
  • Bekannte Dauer
  • Wiederholen sich stets gleich

Die Prozessdauer muss in der Simulationszeit berücksichtigt werden

# 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
Diskrete-Ereignis-Simulation mit Python

Deterministische Ereignisse mit SimPy darstellen

Eine SimPy-Implementierung deterministischer Ereignisse:

  • Methode .timeout() setzt die Prozessdauer an
    • Blind gegenüber Zeiteinheiten
    • Behandelt Zeit als Zahlen
    • Zeiteinheiten müssen im gesamten Modell konsistent sein
# 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)

Diskrete-Ereignis-Simulation mit Python

Lass uns üben!

Diskrete-Ereignis-Simulation mit Python

Preparing Video For Download...