Introducción a las simulaciones de eventos discretos

Simulación de eventos discretos en Python

Diogo Costa (PhD, MSc)

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

Modelos de eventos discretos vs. continuos

Modelos continuos

  • Se ejecutan en pasos de tiempo fijos

  • El tiempo es una variable ficticia

    • El tiempo no se actualiza dentro del bucle
  • Uso de bucles for sobre tiempo

    for t in range(time_range):
    

Modelos de eventos discretos

  • Se ejecutan en pasos de tiempo variables

    • Ejecutan/Programan eventos discretos con duraciones distintas en el tiempo
  • El tiempo es una variable de estado

    • El tiempo se actualiza dentro del while
    • El tiempo no es ficticio
  • A menudo usan bucles while

    while (time < 365):
    time += process_duration
    
Simulación de eventos discretos en Python

Componentes de modelos de eventos discretos

  • Variables de estado
  • Reloj
  • Lista de eventos (o de procesos)
  • Condición(es) de fin
Simulación de eventos discretos en Python

Componentes del modelo

Ejemplo: modelo de una empresa 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

Condición de fin

while (time < 10)
  • Condición(es) que terminan la simulación
Simulación de eventos discretos en Python

Componentes del modelo

Ejemplo: modelo de una empresa 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

Reloj

time += time_duration_1
time += time_duration_2
  • time lleva el tiempo actual de la simulación
  • El reloj salta al inicio del siguiente evento
  • El tiempo “salta” porque los eventos son instantáneos
Simulación de eventos discretos en Python

Componentes del modelo

Ejemplo: modelo de una empresa 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 de estado

time
  • Reducir el tiempo entre la llamada y la llegada al destino

  • Variables que caracterizan salidas y eficiencia del sistema

Simulación de eventos discretos en Python

¡Vamos a practicar!

Simulación de eventos discretos en Python

Preparing Video For Download...