CommencezCommencez gratuitement

Modèle de transport : définir les entrées du modèle

Rassemblons le tout 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é routière. Un modèle à événements discrets est approprié dans ce contexte.

La première étape consiste à mesurer la longueur moyenne des routes entre les intersections. Vous avez établi qu'elle est de 100 mètres en moyenne, avec un écart type d'environ 20 mètres, ce qui signifie qu'un conducteur devrait rencontrer un feu de circulation tous les 80 à 120 mètres.

La limite de vitesse à Chicago est de 30 mi/h (environ 50 km/h). Les responsables municipaux vous ont indiqué qu'en moyenne, le feu reste rouge jusqu'à 90 secondes. Commencez par définir les entrées et les sorties de votre modèle.

Cette activité fait partie du cours

Simulation d'événements discrets en Python

Voir le cours

Instructions de l’exercice

  • 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 ce code d’exemple.

# 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