Verkehrsmodell: Modelleingaben definieren
Führen wir alles zusammen und bauen alle Modellkomponenten auf.
Du wurdest gebeten, die Ampelschaltungen der Stadt Chicago zu optimieren, um den Verkehrsfluss zu verbessern. In solchen Fällen ist ein ereignisdiskretes Modell sehr hilfreich.
Als ersten Schritt misst du die durchschnittliche Länge der Straßen zwischen Kreuzungen. Du hast ermittelt: im Mittel 100 Meter mit einer Standardabweichung von etwa 20 Metern. Das bedeutet, dass eine Fahrerin oder ein Fahrer etwa alle 80–120 Meter auf eine Ampel trifft.
Das Tempolimit in Chicago beträgt 30 mph (etwa 50 km/h). Die Stadtverwaltung hat dir mitgeteilt, dass das Licht im Mittel bis zu 90 Sekunden lang rot bleibt. Beginne damit, die Eingaben und Ausgaben deines Modells zu definieren.
Diese Übung ist Teil des Kurses
Diskrete-Ereignis-Simulation mit Python
Anleitung zur Übung
- Setze Mittelwert und Standardabweichung des Arrays
inputs["Dist_between_intersections_m"]. - Verwende die Gauß-Verteilung, um Werte für
RandomGener["Distance"]zu erzeugen. - Wende eine Zufallsmethode an, um ganze Zahlen für
RandomGener["WaitTime"]zu generieren.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()