Modèle de transport : définition des entrées du modèle
Mettons tout cela ensemble et construisons tous les composants du modèle.
On vous a demandé d’optimiser les feux de circulation de la ville de Chicago pour améliorer la fluidité du trafic. Un modèle à événements discrets est particulièrement adapté dans ce cas.
La première étape consiste à mesurer la longueur moyenne des routes entre les intersections. Vous avez estimé une moyenne de 100 mètres avec un écart type d’environ 20 mètres, ce qui signifie qu’un conducteur rencontre en moyenne un feu de circulation tous les 80 à 120 mètres.
La limitation de vitesse à Chicago est de 30 mph (environ 50 km/h). Les autorités de la ville vous informent qu’en moyenne, le feu reste rouge jusqu’à 90 secondes. Commencez par définir les entrées et les sorties de votre modèle.
Cet exercice fait partie du cours
Simulation d’événements discrets en Python
Instructions
- Définissez la moyenne et l’écart type du tableau
inputs["Dist_between_intersections_m"]. - Appliquez la distribution gaussienne pour générer les valeurs de
RandomGener["Distance"]. - Appliquez une méthode aléatoire pour générer des entiers pour
RandomGener["WaitTime"].
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()