🚌 Fahrplan- & Ankunftszeit-Prädiktor
Interaktiver ÖPNV-Simulator: Busse bewegen sich durch ein echtes Streckennetz, während Dijkstras Algorithmus kürzeste Wege berechnet und ein Live-Modell Ankunftszeiten gegen die Realität vorhersagt — beobachten Sie, wie der Vorhersagefehler schrumpft, je näher der Bus kommt.
Über den Fahrplan- & Ankunftszeit-Prädiktor
Jedes Mal, wenn eine ÖPNV-App meldet, ein Bus sei „4 Minuten entfernt“, arbeiten im Hintergrund zwei ganz unterschiedliche Teilgebiete der Informatik zusammen. Das erste ist die Kürzeste-Wege-Suche: Gegeben ein Netz aus Haltestellen und Fahrzeiten, finde die schnellste Route von A nach B. Das zweite ist die Live-Ankunftsvorhersage: Gegeben, wie sich der Verkehr zuletzt tatsächlich verhalten hat, schätze, wie lange die nächste Etappe einer Fahrt wirklich dauern wird — denn ein gedruckter Fahrplan ist immer nur eine erste Schätzung. Diese Simulation implementiert beides, echt, auf einem Streckennetz mit 16 Haltestellen.
Klicken Sie zwei beliebige Haltestellen an, um eine echte Dijkstra-Kürzeste-Wege-Suche zwischen ihnen auszuführen: Beobachten Sie, wie sich die Front der „abgeschlossenen“ Haltestellen nach außen ausdehnt und die endgültige Route aufleuchtet, sobald sie gefunden ist. Währenddessen fahren bis zu vier Busse kontinuierlich auf festen Routen im Kreis. Jede Kante im Netz hat einen zufällig schwankenden Verkehrsfaktor, und ein live gleitender exponentiell gewichteter Mittelwert lernt aus jedem Bus, der eine Kante durchquert, die aktuelle Fahrzeit für diese Kante — sodass sich vorhergesagte Ankunftszeiten an die Bedingungen anpassen, statt einem festen Fahrplan zu folgen. Ein laufendes Diagramm verfolgt, wie weit die Vorhersagen von der Realität abweichen, wenn sich die Verkehrsvolatilität ändert.
Häufig gestellte Fragen
Wie berechnet Dijkstras Algorithmus tatsächlich die kürzeste Route?
Dijkstras Algorithmus führt eine laufende bestbekannte Distanz zu jeder Haltestelle: 0 für die Quelle und unendlich für alle anderen. Bei jedem Schritt wählt er die noch nicht besuchte Haltestelle mit der kleinsten bekannten Distanz, markiert sie als abgeschlossen und entspannt jede von ihr ausgehende Kante: Führt der Weg über die abgeschlossene Haltestelle zu einer kürzeren Distanz für eine Nachbarhaltestelle als deren bisheriges Bestwert, werden dieser Bestwert und ihr Vorgänger aktualisiert. Da Haltestellen stets in Reihenfolge steigender Distanz abgeschlossen werden, kann sich die Distanz einer abgeschlossenen Haltestelle nie mehr verbessern, und der Algorithmus stoppt, sobald das Ziel abgeschlossen ist. Das Rückverfolgen der Vorgängerzeiger vom Ziel aus rekonstruiert den tatsächlichen kürzesten Weg.
Was ist ein exponentiell gewichteter gleitender Mittelwert für ETAs, und warum schlägt er einen statischen Fahrplan?
Ein statischer Fahrplan geht davon aus, dass jede Fahrt auf einem Abschnitt unabhängig von den Bedingungen dieselbe geplante Dauer benötigt. Ein exponentiell gewichteter gleitender Mittelwert (EWMA) führt stattdessen pro Kante eine laufende Schätzung, die bei jeder tatsächlichen Durchquerung eines Busses aktualisiert wird: neue_Schätzung = α · beobachtete_Zeit + (1 − α) · alte_Schätzung. Da α zwischen 0 und 1 liegt, zählen aktuelle Beobachtungen mehr als alte, sodass die Schätzung den aktuellen Bedingungen folgt, während einmaliges Rauschen einer einzelnen ungewöhnlich schnellen oder langsamen Fahrt geglättet wird. Diese Simulation verwendet α = 0,3.
Warum steigt der Vorhersagefehler, wenn die Verkehrsvolatilität erhöht wird?
Das EWMA-Modell kann erst reagieren, nachdem es eine abgeschlossene Fahrt beobachtet hat, ist also grundsätzlich ein nachlaufender Indikator. Wenn der Volatilitätsregler die Schwankungen der kantenweisen Verkehrsfaktoren verstärkt, wächst die Lücke zwischen dem, „was das Modell zuletzt gelernt hat“, und dem, „was gerade tatsächlich passiert“ — also wächst auch der mittlere absolute Fehler zwischen vorhergesagten und tatsächlichen Ankunftszeiten.
Warum ändert sich der kürzeste Weg, obwohl sich die Karte selbst nie bewegt?
Diese Simulation führt Dijkstra mit der live per EWMA vorhergesagten Fahrzeit jeder Kante aus, statt mit ihrer festen physischen Distanz — sodass dieselbe Anfrage für zwei Haltestellen eine andere Route liefern kann, sobald sich die Verkehrsbedingungen die gelernten Gewichte so verschoben haben, dass ein zuvor langsamerer Weg zum schnelleren wird.