Transportatiemodel: modelinputs definiëren
Laten we alles samenbrengen en alle modelcomponenten bouwen.
Je bent gevraagd de verkeerslichten van de stad Chicago te optimaliseren om de verkeersdoorstroming te verbeteren. In dit soort situaties is een discrete-evenementensimulatie heel nuttig.
De eerste stap is het meten van de gemiddelde lengte van wegen tussen kruispunten. Je hebt geconcludeerd dat die gemiddeld 100 meter is met een standaarddeviatie van ongeveer 20 meter. Dat betekent dat een bestuurder naar verwachting elke 80–120 meter een verkeerslicht tegenkomt.
De snelheidslimiet in Chicago is 30 mph (ongeveer 50 km/u). De stadsambtenaren gaven aan dat het licht gemiddeld tot 90 seconden op rood blijft staan. Begin met het definiëren van de inputs en outputs van je model.
Deze oefening maakt deel uit van de cursus
Discrete Event Simulation in Python
Oefeninstructies
- Stel het gemiddelde en de standaarddeviatie in van de array
inputs["Dist_between_intersections_m"]. - Pas de Gauss-verdeling toe om waarden voor
RandomGener["Distance"]te genereren. - Pas een willekeurige methode toe om gehele getallen te genereren voor
RandomGener["WaitTime"].
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()