Modelo de transporte: definición de entradas del modelo
Vamos a unirlo todo y construir todos los componentes del modelo.
Te han pedido optimizar los semáforos de la ciudad de Chicago para mejorar el flujo del tráfico. En estas situaciones, un modelo de eventos discretos es muy útil.
El primer paso es medir la longitud media de las vías entre intersecciones. Has concluido que es de 100 metros de media con una desviación estándar de aproximadamente 20 metros, lo que significa que un conductor se encuentra con un semáforo cada 80-120 metros.
El límite de velocidad en Chicago es 30 mph (aproximadamente 50 km/h). Las autoridades municipales te informaron de que, de media, la luz permanece en rojo hasta 90 segundos. Empieza definiendo las entradas y salidas de tu modelo.
Este ejercicio forma parte del curso
Simulación de eventos discretos en Python
Instrucciones del ejercicio
- Establece la media y la desviación estándar del array
inputs["Dist_between_intersections_m"]. - Aplica la distribución gaussiana para generar valores de
RandomGener["Distance"]. - Aplica un método aleatorio para generar enteros para
RandomGener["WaitTime"].
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Define the model inputs
inputs = {"Dist_between_intersections_m": [____, ____],
"Speed_limit_ms": 50 * 1000 / (60 * 60),
"Max_waitTime_traffic_lights_sec": 90}
random_generated = {"Distance": [], "WaitTime": []}
for i in range(5000):
# Use the random package to generate pseudo-random values
random_generated["Distance"].append(random.____(inputs['Dist_between_intersections_m'][0],inputs['Dist_between_intersections_m'][1]))
random_generated["WaitTime"].append(random.____(0, inputs['Max_waitTime_traffic_lights_sec']))
# Plot the randomly generated distance "events"
plt.hist(random_generated["Distance"], bins=100)
plt.xlabel('# Events')
plt.ylabel('# Distance travelled (m)')
plt.show()