Algorithmen für Routenplanung 14. Vorlesung, Sommersemester 2012 Daniel Delling | 18. Juni 2012 M ICROSOFT R ESEARCH S ILICON VALLEY KIT – Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Abbiegeverbote/-kosten bisher: Kreuzungen → Knoten Strassen → Kanten aber: Abbiegen manchmal verboten Linksabbiegen teurer als rechts Kosten U-Turns hoch wurde als einfaches Modellierungsdetail abgetan Daniel Delling – Algorithmen für Routenplanung Folie 2 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Modellierung Möglichkeit I: Vergrössern des Graphen durch Ausmodellierung redundante Information entferne einen Knoten pro Strasse kantenbasierter Graph da Strassen → Knoten Turns → Kanten Möglichkeit II: behalte Kreuzungen als Knoten speicher Abbiegetabelle Beobachtung: viele Knoten haben die gleiche Abbiegetabelle also speicher jede Tabelle einmal, Knoten speichern Tabellen-ID Daniel Delling – Algorithmen für Routenplanung Folie 3 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Kantenbasierter Graph Dijkstra: funktioniert ohne Anpassung mehr Knoten zu scannen Faktor 3 langsamer CH funktioniert ohne Anpassung aber grössere Anzahl Knoten/Kanten erhöht Vorberechungszeit MLD Anzahl Schnittkanten erhöht sich Schnittkanten = Schnittknoten eventuell wechsel zu Knotenseparatoren? Daniel Delling – Algorithmen für Routenplanung Folie 4 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Kompaktes Modell Dijkstra: Turns müssen in den Suchalgorithmus integriert werden Kreuzungen können mehrfach gescannt werden jede Kante wird höchstens einmal gescannt Suchraum gleich zu kantenbasiertem Modell Vorteil: weniger Speicher für den Graphen Optimierung: berechne für jede Kreuzung Schranken reduziert Suchraum um einen Faktor 2 Daniel Delling – Algorithmen für Routenplanung Folie 5 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Kompaktes Modell CH Zeugensuche wird komplizierter für jedes Paar eingehender und ausgehender Kanten muss eine Zeugensuche durchgeführt werden es können Self-Loops entstehen ⇒ Anpassung schwierig ⇒ Zeugensuche schlägt häufig fehl Daniel Delling – Algorithmen für Routenplanung Folie 6 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Kompaktes Modell MLD Schnittkanten bleiben erhalten Schnittkante → 2 Knoten auf Overlay Turns müssen nur auf unterstem beachtet werden auf Overlaygraphen: normaler Dijkstra ⇒ einfache Anpassung, aber Query wird komplizierter Daniel Delling – Algorithmen für Routenplanung Folie 7 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Ergebnisse Queries #scans time [ms] 1s Customization time [s] [MB] MLD-4 [28 : 212 : 216 : 220 ] CH expanded CH compact 5.8 3407.4 849.0 61.7 880.6 132.5 3556 550 905 1.18 0.18 0.19 100 s Algorithm MLD-4 [28 : 212 : 216 : 220 ] CH expanded CH compact 7.5 5799.2 23774.8 61.7 931.1 304.0 3813 597 5585 1.28 0.21 2.11 Beobachtung: CH hat massive Probleme mit Turns MLD kaum (einer der Hauptgründe für Entwicklung von MLD) Daniel Delling – Algorithmen für Routenplanung Folie 8 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Diskussion Wie historische Daten einbeziehen? Daniel Delling – Algorithmen für Routenplanung Folie 9 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Zeitabhängiges Szenario Szenario: Historische Daten für Verkehrssituation verfügbar Verkehrssituation vorhersagbar Berechne schnellsten Weg bezüglich der erwarteten Verkehrssituation (zu einem gegebenen Startzeitpunkt) Beobachtung: Kein konzeptioneller Unterschied zu Public Transport Somit Techniken übertragbar? Nein! Dazu bald mehr. Daniel Delling – Algorithmen für Routenplanung Folie 10 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Herausforderung Hauptproblem: Kürzester Weg hängt von Abfahrtszeitpunkt ab Eingabegröße steigt massiv an Vorgehen: Modellierung Anpassung Dijkstra Anpassung Beschleunigungstechniken Heute: Modellierung und Dijkstra Daniel Delling – Algorithmen für Routenplanung Folie 11 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Zeitabhängige Straßennetzwerke Eingabe: Durchschnittliche Reisezeit zu bestimmten Zeitpunkten Jeden Wochentag verschieden Sonderfälle: Urlaubszeit Somit an jeder Kante: Periodische stückweise lineare Funktion travel time Definiert durch Stützpunkte Interpoliere linear zwischen Stützpunkten Daniel Delling – Algorithmen für Routenplanung Folie 12 – 18. Juni 2012 departure Institut für Theoretische Informatik Lehrstuhl Algorithmik FIFO-Eigenschaft Definition + Sei f : R+ 0 → R0 eine Funktion. f erfüllt die FIFO-Eigenschaft, wenn für jedes ε > 0 und alle τ ∈ R+ 0 gilt, dass f (τ ) ≤ ε + f (τ + ε). Diskussion Interpretation: “Warten lohnt sich nie” Kürzeste Wege auf Graphen mit non-FIFO Funktionen zu finden ist NP-schwer. (wenn warten an Knoten nicht erlaubt ist) ⇒ Sicherstellen, dass Funktionen FIFO-Eigenschaft erfüllen. Daniel Delling – Algorithmen für Routenplanung Folie 13 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Diskussion Eigenschaften: Topologie ändert sich nicht Kanten gemischt zeitabhängig und konstant variable (!) Anzahl Interpolationspunkte pro Kante Beobachtungen: FIFO gilt auf allen Kanten später wichtig Daniel Delling – Algorithmen für Routenplanung Folie 14 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Datenstruktur sourceNode lowerBound 3 0 1 3 0 2 1 3 2 1 2 1 firstInEdge 0 1 2 4 6 firstEdge firstOutEdge0 0 2 2 3 3 4 4 6 6 1 6:00 8:00 12:00 18:00 20:00 - 3 5 4 5 3 8:00 - 2 9:00 - 5 10:00 - 2 firstPoint 1 1 3 3 2 2 3 3 2 2 0 0 −− 0 0 5 5 6 6 9 9121213131414 time weight 6 6 8 81212181820200 0 8 8 9 910108 8101012120 0 0 0 3355445533222255221144111111 Daniel Delling – Algorithmen für Routenplanung Folie 15 – 18. Juni 2012 8:00 - 1 10:00 - 4 12:00 - 1 1 2 0 targetNode 2 3 1 Institut für Theoretische Informatik Lehrstuhl Algorithmik Anfrageszenarien Zeit-Anfrage: finde kürzesten Weg für Abfahrtszeit τ analog zu Dijkstra? Profil-Anfrage: finde kürzesten Weg für alle Abfahrtszeitpunkte analog zu Dijkstra? Daniel Delling – Algorithmen für Routenplanung Folie 16 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Zeit-Anfragen Time-Dijkstra(G = (V , E),s,τ ) 1 2 3 4 5 6 7 8 dτ [s] = 0 Q.clear (), Q.add(s, 0) while !Q.empty () do u ← Q.deleteMin() for all edges e = (u, v ) ∈ E do if dτ [u] + len(e, τ + dτ [u]) < dτ [v ] then dτ [v ] ← dτ [u] + len(e, τ + dτ [u]) pτ [v ] ← u 9 10 if v ∈ Q then Q.decreaseKey (v , dτ [v ]) else Q.insert(v , dτ [v ]) Daniel Delling – Algorithmen für Routenplanung Folie 17 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Diskussion Zeit-Anfragen Beobachtung: Nur ein Unterschied zu Dijkstra Auswertung der Kanten non-FIFO Netzwerke: Im Kreis fahren kann sich lohnen NP-schwer (wenn warten an Knoten nicht erlaubt ist) Transportnetzwerke sind FIFO modellierbar (notfalls Multikanten) Daniel Delling – Algorithmen für Routenplanung Folie 18 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Profil-Anfragen Profile-Search(G = (V , E),s) 1 2 3 4 5 6 7 d∗ [s] = 0 Q.clear (), Q.add(s, 0) while !Q.empty () do u ← Q.deleteMin() for all edges e = (u, v ) ∈ E do if d∗ [u] ⊕ len(e) d∗ [v ] then d∗ [v ] ← min(d∗ [u] ⊕ len(e), d∗ [v ]) 8 9 if v ∈ Q then Q.decreaseKey (v , d[v ]) else Q.insert(v , d[v ]) Daniel Delling – Algorithmen für Routenplanung Folie 19 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Diskussion Profile-Anfragen Beobachtungen: Operationen auf Funktionen Priorität im Prinzip frei wählbar (d[u] ist das Minimum der Funktion d∗ [u]) Knoten können mehrfach besucht werden ⇒ label-correcting Herausforderungen: Wie effizient ⊕ berechnen (Linken)? Wie effizient Minimum bilden? Daniel Delling – Algorithmen für Routenplanung Folie 20 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Operationen Funktion gegeben durch: Menge von Interpolationspunkten I f := {(t1f , w1f ), . . . , (tkf , wkf )} 3 Operationen notwendig: Auswertung Linken ⊕ Minimumsbildung Daniel Delling – Algorithmen für Routenplanung Folie 21 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Auswertung Evaluation von f (τ ): travel time Suche Punkte mit ti ≤ τ und ti+1 ≥ τ dann Evaluation durch f (τ ) = wi + (τ − ti ) · wi+1 − wi ti+1 − ti departure Problem: Finden von ti und ti+1 Theoretisch: Lineare Suche: O(|I|) Binäre Suche: O(log2 |I|) Praktisch: |I| < 30 ⇒ lineare Suche Sonst: Lineare Suche mit Startpunkt wobei Π die Periodendauer ist Daniel Delling – Algorithmen für Routenplanung Folie 22 – 18. Juni 2012 τ Π · |I| Institut für Theoretische Informatik Lehrstuhl Algorithmik Linken Definition + + Seien f : R+ 0 → R0 und g : R0 zwei Funktionen die die FIFO-Eigenschaft erfüllen. Die Linkoperation f ⊕ g ist dann definiert durch f ⊕ g := f + g ◦ (id +f ) Oder (f ⊕ g)(τ ) := f (τ ) + g(τ + f (τ )) Daniel Delling – Algorithmen für Routenplanung Folie 23 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Linken Linken zweier Funktionen f und g f ⊕ g enthält auf jeden Fall { t1f , w1f + g(t1f + w1f ) , . . . , tlf , wlf + g(tlf + wlf ) } Zusätzliche Interpolationspunkte g an tj−1 mit f (tj−1 ) + tj−1 = tj 32 g Füge (tj−1 , f (tj−1 ) + wj ) für alle Punkte von g zu f ⊕ g 24 Durch linearen SweepingAlgorithmus implementierbar 7:00 7:45 8:00 u 16 12 7:00 Daniel Delling – Algorithmen für Routenplanung Folie 24 – 18. Juni 2012 v w 16 11 8:00 7:00 8:00 8:16 Institut für Theoretische Informatik Lehrstuhl Algorithmik Diskussion Linken Laufzeit Sweep Algorithmus O(|I f | + |I g |) Zum Vergleich: Zeitunabhängig O(1) Speicherverbrauch Gelinkte Funktion hat ≈ |I f | + |I g | Interpolationspunkte Problem: Während Profilsuche kann ein Pfad mehreren Tausend Kanten entsprechen Shortcuts. . . Daniel Delling – Algorithmen für Routenplanung Folie 25 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Merge von Funktionen Minimum zweier Funktionen f und g Für alle (tif , wif ): behalte Punkt, wenn wif < g(tif ) g g g g Für alle (tj , wj ): behalte Punkt, wenn wj < f (tj ) Schnittpunkte müssen ebenfalls eingefügt werden Vorgehen: Linearer sweep Evaluiere, welcher Abschnitt oben Checke ob Schnittpunkt existiert travel time departure time Daniel Delling – Algorithmen für Routenplanung Folie 26 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Diskussion Merge Laufzeit Sweep Algorithmus O(|I f | + |I g |) Zum Vergleich: Zeitunabhängig: O(1) Speicherverbrauch Minimum-Funktion kann mehr als |I f | + |I g | Interpolationspunkte enthalten Problem: Während Profilsuche werden Funktionen gemergt Laufzeit der Profilsuchen wird durch diese Operationen dominiert Daniel Delling – Algorithmen für Routenplanung Folie 27 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Eingabe Netzwerk Deutschland |V | ≈ 4.7 Mio., |E| ≈ 10.8 Mio. 5 Verkehrszenarien: Montag: ≈ 8% Kanten zeitabhängig Dienstag - Donnerstag: ≈ 8% Freitag: ≈ 7% Samstag: ≈ 5% Sonntag: ≈ 3% Daniel Delling – Algorithmen für Routenplanung Folie 28 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik ”Grad” der Zeitabhängigkeit kein Montag DiDo Freitag Samstag Sonntag #delete mins 2,239,500 2,377,830 2,305,440 2,340,360 2,329,250 2,348,470 slow-down 0.00% 6.18% 2.94% 4.50% 4.01% 4.87% time [ms] 1219.4 1553.5 1502.9 1517.2 1470.4 1464.4 slow-down 0.00% 27.40% 23.25% 24.42% 20.59% 20.09% Beobachtung: kaum Veränderung in Suchraum Anfragen etwas langsamer durch Auswertung Daniel Delling – Algorithmen für Routenplanung Folie 29 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Profilsuchen Beobachtung: / Nicht durchführbar durch zu großen Speicherbedarf (> 32 GiB RAM) Interpoliert: Suchraum steigt um ca. 10% Suchzeiten um einen Faktor von bis zu 2 500 ⇒ inpraktikabel Daniel Delling – Algorithmen für Routenplanung Folie 30 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Zusammenfassung Zeitabhängige Netzwerke (Basics) Funktionen statt Konstanten an Kanten Operationen werden teurer O(log |I|) für Auswertung O(|I f | + |I g |) für Linken und Minimum Speicherverbrauch explodiert Zeitanfragen: Normaler Dijkstra Kaum langsamer (lediglich Auswertung) Profilanfragen nicht zu handhaben Daniel Delling – Algorithmen für Routenplanung Folie 31 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Literatur Abbiegekosten: Robert Geisberger, Christian Vetter Efficient Routing in Road Networks with Turn Costs In: Proceedings of the 10th International Symposium on Experimental Algorithms (SEA’11), 2011 Daniel Delling, Andrew V. Goldberg, Thomas Pajor, Renato Werneck Customizable Route Planning In: Proceedings of the 10th International Symposium on Experimental Algorithms (SEA’11), 2011 Zeitabhänige Routenplanung Daniel Delling: Engineering and Augmenting Route Planning Algorithms Ph.D. Thesis, Universität Karlsruhe (TH), 2009. Daniel Delling – Algorithmen für Routenplanung Folie 32 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik Nächste Termine Mittwoch, 20.6.2012 Montag, 25.6.2012 Montag, 2.7.2012 Daniel Delling – Algorithmen für Routenplanung Folie 33 – 18. Juni 2012 Institut für Theoretische Informatik Lehrstuhl Algorithmik