Geoinfo Vertiefung Multimodale Routenplanung Bahn Fußgänger Bus Inhalt Motivation ÖPNV-Netz Problematik der multimodalen Routenplanung Berücksichtigung der Fahrzeiten Algorithmus Kurze Vorstellung von „Hafas“ Berechnung des Gewichts kombinierter Kanten Fazit Motivation Student aus Bonn schnellstmöglichst von A nach B Bsp.: von Duisdorf zur Bonner Talweg VRS-Info.de 3 verschiedende Routen ÖPNV-Netz Haltestellen untergliedert in Masten Mast: tatsächliche Ankunfts-, Abfahrtsort zeigt die Richtung der Route an Haltestelle: Gruppierung von Masten durch Namensgebung wird in unterschiedlichen Richtungen angefahren Haltestellennamen zur Erleichterung der Wegbeschreibungen verwendet. ÖPNV-Netz Busse und Bahnen verkehren auf festen Routen. Speicherung des ÖPNV-Netzes routenbasiert Ein Fahrweg in Kanten-Knoten-Modell abbilden, so dass eine Kante eine ganze Route mit besuchten Masten repräsentiert. Bei dieser Struktur Routen weitestgehend redundanzfrei abgebildet Kante, Knoten einmal gespeichert Nachteil dieser Struktur Teilrouten also Kanten von Mast zu Mast nur implizit der Zuordnungstabelle zu entnehmen. Netz für die Routenplanung als Distanzgraph aufgebaut Einlesetool müsste diese Kanten explizit berechnen. Solche Berechnungen lassen sich umgehen, indem Kanten Verbindungen von Mast zu Mast. Probleme Vermischung mehrerer Graphen Kantengewichte dürfen sich nicht nur auf Strecke sondern auch auf Zeit beziehen Aufgabe der Routenplanung des Moduls Minimierung der Zeit Fokus der Optimierung Modellierung der Suche in kombinierten Graphen Beschreibung der Route vom Anfangsknoten A zum Zielpunkt Z Zu Fuß zur nächsten ÖPNV-Haltestelle Optimale Route innerhalb des ÖPNV-Netzes in die Zielregion Zu Fuß von der Haltestelle zum Zielpunkt Trennung der Graphen in eigenständige Strukturen Problemstellung: Fahrzeiten von Bus/Bahn Nächste Haltestelle ≠ immer optimale Abfahrtsort Wahl der bestmöglichen ÖPNV-Haltestelle bekommt auch noch eine Zeitkomponente, weil nicht immer passender Bus/Zug zur Verfügung wegen passender Fahrpläne steht. Das zu modellierende Problem zu zeitabhängig Berücksichtigung der Fahrzeiten Tag beginnt um 4:00 Uhr Wochenzyklus: Mont.-Freitag Samstag Sonntag/Feiertag Bonn 65000 Datensätze zur Speicherung der Routenstartzeiten Berücksichtigung der Fahrzeiten Eine Verbindung wird durch die Klasse ÖPNV gespeichert. Abfahrtszeit, Linienbezeichnung, Fahrzeit auf der speziellen Kante und Bezeichnung der Endstation = Attribute der aktuellen Linie. Jedes ÖPNV-Objekt Zeiger auf das jeweilige Kanten-Vaterobjekt, in dem Informationen über Anfangs- und Endknoten vorgehalten werden. Vorteile dieser Klasse Zahl der Kanten im Graphen reduziert, Zeiger auf Anfangs- und Endknoten ≠ redundant erzeugt werden. Rolle der Routenplanung, schnellstmöglich herauszufinden, wie eine kombinierte Kante in optimaler Zeit bewältigt werden kann. Deswegen ist eine möglichst effiziente Struktur zur Suche der nächsten ÖPNV- Verbindung vonnöten. Forderungen an den Algorithmus: Berechnung der Kantengewichten dynamisch unter Berücksichtigung der Fahrpläne und des gewählten Verkehrsmittel erfolgen. Geometr. Beziehungen in dem Graphen berücksichtigt werden Aus der Charakteristik des Graphen, dass unterschiedlich schnell zu überwindende Kanten existieren sollte der Alg. Nutzen ziehen, indem er möglichst zielstrebig auf die Suche nach Bahnverbindungen geht, die in der Regel viel schneller zu überwinden sind . Welcher Algorithmus? Alg. von Dantzig und Dijkstra erfüllt nur die ersten Anforderungen A*-Algor. Christian Siemes Erweiterung von Routenplanungs- algorithmen Wiederholung von Diskreter Mathematik Do 80 Du Do 20 20 Ha 30 20 Ha 15 15 W W D 30 Du 15 20 80 D 15 K K Kürzeste Wege: Idee Gegeben: Gerichteter Graph, dessen Kanten mit Zahlen (Kosten, z.B. km oder min.) beschriftet sind Aufgabe: Berechnung des kürzesten Weges x z von einem Startknoten x zu einem Zielknoten z erste Idee: Berechne alle Wege und wähle den kürzesten Beobachtung: wenn der kürzeste Weg von x nach z über y führt, sind die Teilwege x y und y z ebenfalls kürzeste Wege effiziente Lösung: berechne alle kürzesten Wege und wähle den von x nach z aus Algorithmus von Dijkstra: jeder Schritt sitzt („Greedy“-Algorithmus) Algorithmus von Dijkstra algorithm Dijkstra (S) //berechne alle kürzesten Wege von S aus} BLAU = ; GRÜN = {S}; dist(S) = 0; while( GRÜN ) { wähle K GRÜN, so daß K‘ GRÜN: dist(K) dist(K‘); färbe K blau; for( Ki succ(K) ) { if (Ki (GRÜN BLAU) //noch nicht besuchter Knoten färbe die Kante (K,Ki) rot; färbe Ki grün; dist(Ki) = dist(K) + dist(K,Ki); } Algorithmus von Dijkstra Dieser Algorithmus erfüllt nur die ersten Anforderungen der Routenplanung. Wieso? Jedes Mal berechnet er die Kantengewichte komplett neu. D.h. die beschränkte Verfügbarkeit von Busverbindungen kann bei der Kantengewichtsberechnung berücksichtigt werden, in dem ein zusätzliches Modul nach der nächsten Verbindung sucht und an Dijkstra das berechnete Gewicht liefert, da dieser mit anderen Kanten vergleicht. Lösung Berücksichtigung der Zielkosten bei jedem einzelnen Wegknoten Bei Dijkstra: nicht die Summe der Kantengewichte wird bis zu den Neukosten minimiert, sondern dieses Gewicht vermehrt sich um die Kantengewichte um zum Zielknoten zu gelangen. Der Algorithmus soll den besten Weg fehlerfrei ermitteln, sofern die Zielkosten den tatsächlichen minimal zu erwarteten Aufwand, um von dem Zwischenknoten zum Zielknoten gelangen, nicht überschreiten. Überführung zum A*-Alg. Ergebnisse werden suboptimal, wenn zur Beschleunigung des Algorithmus ein Verfahren der Zieldistanz, das dazu führt, dass die tatsächlich in dem Graphen zu findende Route ein geringeres Gesamtgewicht hat als die zuvor berechnete Summe aus Zwischenknoten- und Zielkosten. Der A*-Alg. zeigt diesbezüglich herausragende Eigenschaften Vortrag von Christian Thema der Routenplanung Thema: Zeit spielt die wesentliche Rolle und nicht die Distanz. Kanten, die schnell bewältigt werden können geringeres Zielgewicht Bevorzugung Kanten, die schnell „befahren“ werden können kurzen Fußwegen wegen gleichem Zeitgewicht Erweiterung von Routenplanungsalgorithmen A*-Algorithmus HISPA Heuristik( Hierarchical shortest path ) sucht kürzeste Wege von zwei Endknoten zu Knoten der obersten Hierarchieebene ( benutzerabhängig ) in einem Kreis mit gegebenen Radius. Diese Wege werden als Kanten entspr. Länge zur obersten Hierarchieebene hinzugefügt auf dieser Ebene wird kürzester Weg bestimmt HISPA Heuristik 12 8 5 9 3 S 4 2 1 7 Start S 10 Ziel Berechnung des Gewichts kombinierter Kanten Ermittlung des Gewichts einer Kante: Quotient aus Länge und Fahrgeschwindigkeit Kombinierte Kante, bestehend aus einem Straßenund ÖPNV-Objekt Berechnung des minimalen Gewichts viel aufwändiger. Startzeit = Gewicht des aktiven Knotens, von dem die beste Verbindung über die aktuelle Kante ermittelt wird. Endlosberechnungen vermieden, indem Straßenkante = Summe von Knoten und 1 Tag festgesetzt wird. Berechnung des Gewichts kombinierter Kanten Gesucht wird eine ÖPNV-Verbindung, deren Ankunftszeit minimal ist, unter der Bedingung, dass die Abfahrtzeit größer oder gleich der Startzeit, also dem Gewicht des Knotens ist. Ist das 1. Element gefunden ≠ zwangsläufig die gesuchte Verbindung. Berücksichtigung des Umsteigens der Linie Zeit in Anspruch Hinzufügen eines Strafgewichts von 5 min zu der Ankunftszeit Fazit Multimodale Routenplanung ist Gegenstand unserer Zeit und wird täglich angewandt. Sie ist bspw. für Besucher einer fremden Stadt sehr praktisch. Ein französischer Autor hat mal gesagt: „Rien ne sert de courir, il faut partir à temps“ d.h. Es nützt nichts, zu laufen; man muß nur zur Zeit von zuhause weggehen. Da kann die beste Routenplanung nichts machen, wenn man zu spät kommt. Vielen Dank für Ihre Aufmerksamkeit