LoslegenKostenlos loslegen

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

Kurs anzeigen

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()
Code bearbeiten und ausführen