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 fictive

    • Le temps n'est pas 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

    • Lancement/planification d'événements discrets de durées différentes dans le temps
  • Le temps est une variable d'état

    • Le temps est mis à jour dans la boucle while
    • Le temps n'est pas une variable fictive
  • Utilisent souvent des boucles while

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

Composantes des modèles à événements discrets

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

Composantes du modèle

Exemple : modèle d'entreprise de taxi

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 met fin à la simulation
Simulation d'événements discrets en Python

Composantes du modèle

Exemple : modèle d'entreprise de taxi

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

Composantes du modèle

Exemple : modèle d'entreprise de taxi

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 temps entre l'appel du client et le dépôt

  • Variables qui caractérisent les sorties et l'efficacité du système

Simulation d'événements discrets en Python

Passons à la pratique !

Simulation d'événements discrets en Python

Preparing Video For Download...