Événements et processus déterministes

Simulation d'événements discrets en Python

Diogo Costa (PhD, MSc)

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

Déterminisme d'un événement (ou processus)

NOTE : Les termes « événement » et « processus » sont utilisés de façon interchangeable.

Qu'est-ce que le déterminisme d'un événement (ou processus) ?

  • Capacité à prédire précisément un processus
  • Le processus est dit « déterministe »

Pourquoi les processus déterministes sont-ils importants ?

  • Les activités naturelles et humaines sont complexes
  • De nombreux processus et ressources interdépendants
  • Certains processus se répètent de la même façon à chaque occurrence
  • L'impact sur la sortie du système peut être prédit avec précision
Simulation d'événements discrets en Python

Exemples de processus ou d'événements déterministes

Monde naturel

  • Hauteur des marées
  • Accélération due à la gravité (9,81 m$^2$/s)
  • Mouvement des planètes du système solaire
  • Vitesse du son dans l'air (331,29 m/s)
  • Vitesse de la lumière (300 000 km/s)
  • Congélation de l'eau (à 0 °C)

D'origine ou initiés par l'humain

  • Débit d'un robinet
  • Vitesse d'une embouteilleuse d'eau
  • Temps qu'une cafetière prend pour faire un café
  • Chaleur dégagée par un four à 230 °C
  • Cycles programmés d'une laveuse
  • Fonctionnement d'un four à micro-ondes
Simulation d'événements discrets en Python

Représenter des événements déterministes dans des modèles à événements discrets

Processus déterministes

  • Impact prévisible sur les systèmes dynamiques
  • Durée bien connue
  • Se répètent de la même manière

La durée du processus doit être prise en compte dans le temps de simulation

# 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
Simulation d'événements discrets en Python

Représenter des événements déterministes avec SimPy

Une implémentation SimPy d'événements déterministes :

  • La méthode .timeout() enregistre la durée du processus
    • Insensible aux unités de temps
    • Traite le temps comme des nombres
    • Les unités de temps doivent être cohérentes dans tout le modèle
# 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)

Simulation d'événements discrets en Python

Passons à la pratique !

Simulation d'événements discrets en Python

Preparing Video For Download...