Événements et processus non déterministes

Simulation d'événements discrets en Python

Diogo Costa (PhD, MSc)

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

Non‑détermination des événements

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

Qu'est-ce que la non‑détermination d'un événement (ou processus) ?

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

Pourquoi les processus déterministes sont‑ils importants ?

  • Les activités naturelles et humaines sont souvent non déterministes
  • À chaque occurrence, elles se répètent différemment
  • Leur durée ne peut pas être déterminée avec précision
  • Peuvent fortement influer sur la sortie du système
Simulation d'événements discrets en Python

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

Monde naturel

  • Moment où un volcan entrera en éruption
  • Moment exact où il pleuvra
  • Moment et lieu d'un éclair
  • Moment et lieu de formation d'une tornade

Processus liés ou déclenchés par l'humain

  • Moment où une machine tombera en panne
  • Moment où l'on doit aller aux toilettes
  • Moment où un bébé se mettra à pleurer
  • Si un vol commercial aura du retard
Simulation d'événements discrets en Python

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

Processus non déterministes

  • Produisent un effet non répétable sur le système
  • Durée exacte inconnue

Statistiques

  • Représentent la variabilité de la durée des processus
  • Le module random est utile ici

  • Exemple : random.randint(start, end)

import random

# Non-deterministic processes
process_1 = [5, 15]

while time < simulation_time:

   # Update simulation time: process_1
   time += random.randint(
               process_1[0], 
               process_1[1])

Simulation d'événements discrets en Python

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

  • Pas de méthodes spécifiques pour tenir compte des processus non déterministes

  • Variabilité de durée calculée comme pour les modèles sans SimPy

  • Transmettez les bonnes statistiques à .timeout()

import random

# Non-deterministic processes
process_1 = [5, 15]

while True:

  # Update simulation time: process_1
  yield env.timeout(random.randint(
         process_1[0], 
         process_1[1]))
Simulation d'événements discrets en Python

Passons à la pratique !

Simulation d'événements discrets en Python

Preparing Video For Download...