Introduction aux simulations à événements discrets

Simulation d’événements discrets en Python

Diogo Costa (PhD, MSc)

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

Modèles à événements discrets vs. modèles continus

Modèles continus

  • S’exécutent à pas de temps fixes

  • Le temps est une variable muette

    • Temps non mis à jour dans la boucle
  • Utilisent des boucles for sur le temps

    for t in range(time_range):
    

Modèles à événements discrets

  • S’exécutent à pas de temps variables

    • Lançent/planifient des événements de durées différentes
  • Le temps est une variable d’état

    • Temps mis à jour dans la boucle while
    • Le temps n’est pas une variable muette
  • Utilisent souvent des boucles while

    while (time < 365):
    time += process_duration
    
Simulation d’événements discrets en Python

Composants des modèles à événements discrets

  • Variables d’état
  • Horloge
  • Liste d’événements (ou de processus)
  • Condition(s) d’arrêt
Simulation d’événements discrets en Python

Composants du modèle

Exemple : modèle d’entreprise de taxis

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Condition d’arrêt

while (time < 10)
  • Condition(s) qui termine(nt) la simulation
Simulation d’événements discrets en Python

Composants du modèle

Exemple : modèle d’entreprise de taxis

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Horloge

time += time_duration_1
time += time_duration_2
  • time suit l’instant courant de la simulation
  • L’horloge saute au début du prochain événement au fil de la simulation
  • Le temps « saute » car les événements sont instantanés
Simulation d’événements discrets en Python

Composants du modèle

Exemple : modèle d’entreprise de taxis

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Variable d’état

time
  • Réduire le délai entre l’appel et la dépose du client

  • Variables caractérisant sorties du système et efficience

Simulation d’événements discrets en Python

Passons à la pratique !

Simulation d’événements discrets en Python

Preparing Video For Download...