LoslegenKostenlos starten

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

<Kurs>Diskrete-Ereignis-Simulation mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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