CommencerCommencer gratuitement

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

Afficher le cours

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()
Modifier et exécuter le code