Evenimente și procese deterministe

Simulare de evenimente discrete în Python

Diogo Costa (PhD, MSc)

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

Determinismul evenimentului (sau procesului)

NOTĂ: Termenii „eveniment" și „proces" sunt folosiți interschimbabil.

Ce este determinismul unui eveniment (sau proces)?

  • Capacitatea unui proces de a fi prezis cu precizie
  • Procesul este numit „Determinist"

De ce sunt importante procesele deterministe?

  • Activitățile naturale și umane sunt complexe
  • Multe procese și resurse interdependente
  • Unele procese se repetă identic la fiecare ocurență
  • Impactul asupra ieșirii sistemului poate fi prezis cu precizie
Simulare de evenimente discrete în Python

Exemple de procese sau evenimente deterministe

Lumea naturală

  • Înălțimea mareelor oceanice
  • Accelerația obiectelor datorată gravitației (9,81 m$^2$/s)
  • Mișcarea planetelor în sistemul solar
  • Viteza sunetului în aer (331,29 m/s)
  • Viteza luminii (300.000 km/s)
  • Înghețarea apei (la 0 grade Celsius)

Determinate sau inițiate de om

  • Debitul unui robinet
  • Viteza unei mașini de umplut sticle cu apă
  • Timpul necesar unui espressor pentru a prepara o cafea
  • Căldura eliberată de un cuptor la 230 grade Celsius
  • Ciclurile programate ale mașinii de spălat
  • Funcționarea unui cuptor cu microunde
Simulare de evenimente discrete în Python

Reprezentarea evenimentelor deterministe în modele cu evenimente discrete

Procese deterministe

  • Impact previzibil asupra sistemelor dinamice
  • Durată bine cunoscută
  • Se repetă în același mod

Durata procesului trebuie luată în calcul în timpul simulării

# 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
Simulare de evenimente discrete în Python

Reprezentarea evenimentelor deterministe cu SimPy

O implementare SimPy a evenimentelor deterministe:

  • Metoda .timeout() înregistrează durata procesului
    • Nu ține cont de unitățile de timp
    • Tratează timpul ca numere
    • Unitățile de timp trebuie să fie consistente în model
# 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)

Simulare de evenimente discrete în Python

Să exersăm!

Simulare de evenimente discrete în Python

Preparing Video For Download...