Modello di trasporto: definire gli input del modello
Mettiamo tutto insieme e costruiamo tutti i componenti del modello.
Ti è stato chiesto di ottimizzare i semafori della città di Chicago per migliorare il flusso del traffico. In queste situazioni, un modello a eventi discreti è molto utile.
Il primo passo è misurare la lunghezza media delle strade tra gli incroci: hai stimato una media di 100 metri con una deviazione standard di circa 20 metri, il che significa che un automobilista si aspetta di incontrare un semaforo ogni 80-120 metri.
Il limite di velocità a Chicago è 30 mph (circa 50 km/h). I funzionari della città ti hanno informato che, in media, il semaforo resta rosso fino a 90 secondi. Inizia definendo gli input e gli output del tuo modello.
Questo esercizio fa parte del corso
Simulazione a eventi discreti in Python
Istruzioni dell'esercizio
- Imposta la media e la deviazione standard dell'array
inputs["Dist_between_intersections_m"]. - Applica la distribuzione gaussiana per generare i valori di
RandomGener["Distance"]. - Applica un metodo casuale per generare interi per
RandomGener["WaitTime"].
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()