Einblick in den ÖV-Treffpunkt-Sucher

Seit mehr als einem halben Jahr ist unser ÖV-Treffpunkt-Sucher online, weshalb wir in diesem Beitrag zeigen möchten, was denn den idealen ÖV-Treffpunkt — für die App zumindest — ausmacht.

Screenshot.png

Die Fahrplandaten des gesamten öffentlichen Verkehrs in der Schweiz sind auf opentransportdata.ch frei verfügbar. Wir arbeiten mit diesen Daten bei verschiedenen Projekten, um etwa die ÖV-Erschliessungsgüte eines Areals detailliert zu prüfen oder um abzuschätzen, welche Orte der Schweiz innerhalb einer Stunde mit dem ÖV erreicht werden können. Unser Werkzeug dazu sind die Programmiersprache R und besonders die Plugins tidytransit und Shiny. Letzteres bietet eine einfache Möglichkeit, Daten jeglicher Art interaktiv aufzubereiten und zu analysieren.

Vor dem Hintergrund, dass ich mit den Daten bereits vertraut war, wollte ich Antworten auf Fragen finden, die ich mir oft stellte, wenn ich mich mit Leuten aus allen Ecken der Schweiz treffen wollte: Wo treffen wir uns am besten, damit die Reisezeit für alle etwa angemessen ist?

Nehmen wir an, drei Verkehrsingenieure aus Cham, Arth-Goldau und Winterthur möchten sich sich treffen. Der Treffpunktsucher berechnet von den Ausgangs-Haltestellen die Reisezeiten zu allen Haltestellen in der Schweiz und findet anhand dieser einen optimalen Treffpunkt. Weitere Faktoren neben der Reisezeit, etwa das Gastroangebot am Zielbahnhof, werden (noch) nicht berücksichtigt.

Zur Berechnung wird angenommen, dass die Personen an einem Stichtag zwischen 17 und 18 Uhr abreisen. Die Reisezeiten lassen sich tabellarisch darstellen:

Auszug der Reisezeiten von den drei ausgangsbahnhöfen zu verschiedenen Haltestellen

Auszug der Reisezeiten von den drei Ausgangsbahnhöfen zu verschiedenen Haltestellen

Den Bahnhof mit der besten Reisezeitkombination zu finden ist nun ein Optimierungproblem. Einfach die Summe der Reisezeiten zu minimieren führt zu keinen eindeutigen Resultaten, wenn z.B. zwei Orte entlang einer Bahnstrecke liegen:

Grafik_Reisezeiten_Summe.png

Diese Situation ist zwar bei drei oder mehr Startpunkten unwahrscheinlich, ein zufriedenstellendes Resultat kann mit der Formel aber nicht erreicht werden. Es muss deshalb eine exponentielle Reisezeit verwendet werden, damit der Treffpunkt in der Mitte gefunden wird. Nach Prüfung verschiedener Ansätze, haben wir folgende Formel implementiert:

Wertung = ReisezeitA3 + ReisezeitB3 + ... + (ReisezeitMaximum - ReisezeitMittelwert)3
Grafik_Reisezeiten_Formel.png

Für jede Haltestelle wird nun die Wertung errechnet und jene Haltestelle mit der tiefsten Wertung ist der optimale Treffpunkt. Wenn man Differenz zwischen der höchsten und der mittleren Reisezeit in die Formel miteinbezieht, werden die Reisezeiten gleichmässiger auf die Personen verteilt. Da es sich aber nur um ein Proof of Concept handelt, haben wir die Formel keinen vertieften Tests unterzogen. Anregungen nehme ich aber gerne via poletti@teamverkehr.ch entgegen.

In der App wird nicht die Wertung angezeigt, sondern eine auf 100 normalisierte Punktzahl. Zudem werden nur Haltestellen mit mehr als 85 Punkten angezeigt, mindestens aber die drei besten Haltestellen. Für unser Beispiel sieht das Resultat so aus:

Wertung_Beispiel.png

Die drei Verkehrsingenieure aus unserem Beispiel treffen sich also am besten in Thalwil! Selber ausprobieren