Algorithmen für Routenplanung 14. Vorlesung, Sommersemester 2012 Daniel Delling 18. Juni 2012



Ähnliche Dokumente
Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2010 Thomas Pajor 28. Juni 2010

Algorithmen für Routenplanung 13. Sitzung, Sommersemester 2011 Reinhard Bauer, Thomas Pajor 9. Juni 2011

Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2013 Julian Dibbelt 17. Juni 2013

Algorithmen für Routenplanung 11. Sitzung, Sommersemester 2015 Julian Dibbelt 01. Juni 2015

Algorithmen für Routenplanung 2. Sitzung, Sommersemester 2010 Thomas Pajor 26. April 2010

Algorithmen für Routenplanung 8. Sitzung, Sommersemester 2012 Thomas Pajor 21. Mai 2012

Algorithmen für Routenplanung 13. Vorlesung, Sommersemester 2017 Tobias Zündorf 26. Juni 2017

Algorithmen für Routenplanung 14. Sitzung, Sommersemester 2011 Thomas Pajor 16. Juni 2011

Algorithmen für Routenplanung 7. Sitzung, Sommersemester 2010 Thomas Pajor 28. Mai 2010

Algorithmen für Routenplanung 7. Vorlesung, Sommersemester 2012 Daniel Delling 16. Mai 2012

Algorithmen für Routenplanung 13. Vorlesung, Sommersemester 2012 Daniel Delling 13. Juni 2012

Algorithmen für Routenplanung Vorlesung 10

Algorithmen für Routenplanung 15. Vorlesung, Sommersemester 2012 Daniel Delling 20. Juni 2012

Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2016 Ben Strasser 30. Mai 2016

Algorithmen für Routenplanung 13. Sitzung, Sommersemester 2013 Julian Dibbelt 19. Juni 2013

Algorithmen für Routenplanung Vorlesung 2

Algorithmen für Routenplanung

Algorithmen für Routenplanung

Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2014 Prof. Christos Zaroliagis 26. Mai 2014

Algorithmen für Routenplanung 11. Sitzung, Sommersemester 2013 Julian Dibbelt 10. Juni 2013

Algorithmen für Routenplanung Vorlesung 11

Algorithmen für Routenplanung 2. Sitzung, Sommersemester 2012 Thomas Pajor 23. April 2012

Algorithmen für Routenplanung Vorlesung 4

Fortgeschrittene Routenplanung. Transportnetzen. Advanced Route Planning in Transportation Networks

Algorithmen für Routenplanung Vorlesung 6

Algorithmen für Routenplanung 1. Vorlesung, Sommersemester 2017 Tobias Zündorf 26. April 2017

Algorithmen für Routenplanung Vorlesung 3

Algorithmen für Routenplanung 1. Vorlesung, Sommersemester 2018 Tim Zeitz 17. April 2018

Algorithmen für Routenplanung 19. Vorlesung, Sommersemester 2016 Ben Strasser 6. Juli 2016

Praktikum Routenplanung Vorbesprechung, Wintersemester 2013/2014 Moritz Baum, Julian Dibbelt, Ben Strasser 21. Oktober 2013

Erinnerung VL

Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2012 Daniel Delling 6. Juni 2012

Algorithmen für Routenplanung 2. Vorlesung, Sommersemester 2018 Tim Zeitz 23. April 2018

Algorithmen für Routenplanung 1. Sitzung, Sommersemester 2010 Thomas Pajor 12. April 2010

Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2011 Reinhard Bauer, Thomas Pajor 6. Juni 2011

Praktikum Routenplanung Vorbesprechung, Wintersemester 2014/2015 Moritz Baum, Julian Dibbelt, Ben Strasser 22. Oktober 2014

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Algorithmen für Routenplanung 3. Sitzung, Sommersemester 2010 Thomas Pajor 30. April 2010

Algorithmen für Routenplanung Vorlesung 12

Algorithmen für Routenplanung Vorlesung 1

Algorithmen für Routenplanung 4. Vorlesung, Sommersemester 2018 Tim Zeitz 30. April 2018

Algorithmen für Routenplanung 4. Sitzung, Sommersemester 2010 Thomas Pajor 3. Mai 2010

Algorithmen für Routenplanung

Algorithmen für Routenplanung 4. Vorlesung, Sommersemester 2017 Moritz Baum 15. Mai 2017

Algorithmen für Routenplanung 1. Vorlesung, Sommersemester 2015 Andreas Gemsa 13. April 2015

Algorithmen für Routenplanung 2. Vorlesung, Sommersemester 2014 Andreas Gemsa 20. April 2014

Algorithmen für Routenplanung 8. Sitzung, Sommersemester 2013 Julian Dibbelt 22. Mai 2013

Algorithmen für Routenplanung 18. Sitzung, Sommersemester 2015 Moritz Baum 13. Juli 2015

Algorithmen für Routenplanung 6. Vorlesung, Sommersemester 2010 Daniel Delling 17. Mai 2010

Algorithmen für Routenplanung Vorlesung 7

Maximale s t-flüsse in Planaren Graphen

Route Planning in Road Networks

Kürzeste und Schnellste Wege

Viertes Übungsblatt - Musterlösung

Algorithmische Methoden zur Netzwerkanalyse

Algorithmen für Routenplanung 1. Sitzung, Sommersemester 2012 Thomas Pajor 18. April 2012

Algorithmen II Vorlesung am

Personalisierte Routenplanung

Lernmodul 7 Algorithmus von Dijkstra

Schnelle und genaue Routenplanung

Praktikum Routenplanung Themenvorstellung & Gruppeneinteilung, Wintersemester 2015/2016 Moritz Baum, Ben Strasser, Tobias Zündorf 19.

Untersuchung von Beschleunigungsverfahren für den Dijkstra-Algorithmus im Zusammenhang mit multimodalem Routing

Algorithmen für Routenplanung 5. Sitzung, Sommersemester 2010 Thomas Pajor 10. Mai 2010

Algorithmen für Routenplanung 10. Vorlesung, Sommersemester 2016 Ben Strasser 25. Mai 2016

Kombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Algorithmen für Planare Graphen

Algorithmische Methoden zur Netzwerkanalyse

Algorithmen II Vorlesung am

Customization (Zuschneiden)

Praktikum Routenplanung

Aufgaben zur Klausurvorbereitung

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Algorithmen für Routenplanung 15. Vorlesung, Sommersemester 2017 Tobias Zündorf 5. Juli 2017

Praktikum Routenplanung Vorbesprechung, Wintersemester 2016/2017 Moritz Baum, Valentin Buchhold, Ben Strasser, Tobias Zündorf 19.

Algorithmen für Routenplanung 10. Sitzung, Sommersemester 2012 Daniel Delling 4. Juni 2012

Algorithmen II Vorlesung am

10. Übung Algorithmen I

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Berechnung von Abständen

Algorithmische Methoden für schwere Optimierungsprobleme

Praktikum Routenplanung Vorbesprechung, Wintersemester 2012/2013 Moritz Baum, Julian Dibbelt, Thomas Pajor, Ben Strasser 17.

Datenstrukturen & Algorithmen

Informatik II: Algorithmen und Datenstrukturen SS 2013

Routing in Nahverkehrsnetzen

Algorithmische Methoden für schwere Optimierungsprobleme

Praktikum Routenplanung Vorbesprechung, Wintersemester 2011/2012 Julian Dibbelt und Thomas Pajor 2. November 2011

Connection Scan. Julian Dibbelt, Thomas Pajor, Ben Strasser, Dorothea Wagner

Vorlesung Datenstrukturen

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Flüsse, Schnitte, bipartite Graphen

Algorithmen für Routenplanung 16. Sitzung, Sommersemester 2012 Thomas Pajor 25. Juni 2012

Kapitel 6: Dynamic Shortest Path

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Algorithmen II Vorlesung am

8 Das Flussproblem für Netzwerke

Rolf Wanka Sommersemester Vorlesung

Transkript:

Algorithmen für Routenplanung 14. Vorlesung, Sommersemester 2012 Daniel Delling 18. Juni 2012 MICROSOFT RESEARCH SILICON 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 Folie 2 18. Juni 2012

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 Folie 3 18. Juni 2012

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? Folie 4 18. Juni 2012

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 Folie 5 18. Juni 2012

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 Folie 6 18. Juni 2012

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 Folie 7 18. Juni 2012

Ergebnisse 1 s 100 s Customization Queries Algorithm time [s] [MB] #scans time [ms] MLD-4 [2 8 : 2 12 : 2 16 : 2 20 ] 5.8 61.7 3556 1.18 CH expanded 3407.4 880.6 550 0.18 CH compact 849.0 132.5 905 0.19 MLD-4 [2 8 : 2 12 : 2 16 : 2 20 ] 7.5 61.7 3813 1.28 CH expanded 5799.2 931.1 597 0.21 CH compact 23774.8 304.0 5585 2.11 Beobachtung: CH hat massive Probleme mit Turns MLD kaum (einer der Hauptgründe für Entwicklung von MLD) Folie 8 18. Juni 2012

Diskussion Wie historische Daten einbeziehen? Folie 9 18. Juni 2012

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. Folie 10 18. Juni 2012

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 Folie 11 18. Juni 2012

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 Definiert durch Stützpunkte Interpoliere linear zwischen Stützpunkten travel time departure Folie 12 18. Juni 2012

FIFO-Eigenschaft Definition Sei f : R + 0 R+ 0 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. Folie 13 18. Juni 2012

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 Folie 14 18. Juni 2012

Datenstruktur sourcenode lowerbound 3 1 0 3 1 2 3 1 0 2 2 1 8:00-2 9:00-5 10:00-2 1 2 firstinedge 0 1 2 4 6 firstedge firstoutedge0 0 2 2 3 3 4 4 6 6 targetnode firstpoint 1 1 3 3 2 2 3 3 2 2 0 0 0 0 5 5 6 6 9 9121213131414 6:00-3 8:00-5 12:00-4 18:00-5 20:00-3 0 2 1 1 3 8:00-1 10:00-4 12:00-1 time weight 6 6 8 81212181820200 0 8 8 9 910108 8101012120 0 0 0 3 3 5 5 4 4 5 5 3 3 2 2 2 2 5 5 2 2 1 1 4 4 1 1 1 1 1 1 Folie 15 18. Juni 2012

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? Folie 16 18. Juni 2012

Zeit-Anfragen 1 2 3 4 5 6 7 8 9 10 Time-Dijkstra(G = (V, E),s,τ) 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 if v Q then Q.decreaseKey(v, d τ [v]) else Q.insert(v, d τ [v]) Folie 17 18. Juni 2012

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) Folie 18 18. Juni 2012

Profil-Anfragen 1 2 3 4 5 6 7 8 9 Profile-Search(G = (V, E),s) 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]) if v Q then Q.decreaseKey(v, d[v]) else Q.insert(v, d[v]) Folie 19 18. Juni 2012

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? Folie 20 18. Juni 2012

Operationen Funktion gegeben durch: Menge von Interpolationspunkten I f := {(t f 1, w f 1 ),..., (t f k, w f k )} 3 Operationen notwendig: Auswertung Linken Minimumsbildung Folie 21 18. Juni 2012

Auswertung Evaluation von f (τ): Suche Punkte mit t i τ und t i+1 τ dann Evaluation durch travel time f (τ) = w i + (τ t i ) wi+1 w i t i+1 t i departure Problem: Finden von t i und t i+1 Theoretisch: Lineare Suche: O( I ) Binäre Suche: O(log 2 I ) Praktisch: I < 30 lineare Suche Sonst: Lineare Suche mit Startpunkt τ Π I wobei Π die Periodendauer ist Folie 22 18. Juni 2012

Linken Definition Seien f : R + 0 R+ 0 und g : R+ 0 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 (τ)) Folie 23 18. Juni 2012

Linken Linken zweier Funktionen f und g f g enthält auf jeden Fall { ( t1 f, w 1 f + g(t 1 f + w 1 f )),..., ( tl f, w l f + g(tl f + wl f )) } Zusätzliche Interpolationspunkte an t 1 j mit f (t 1 j ) + t 1 j = t g j Füge (t 1 j, f (t 1 j ) + w g j ) für alle Punkte von g zu f g Durch linearen Sweeping- Algorithmus implementierbar u 32 24 7:00 7:45 8:00 v w 16 12 7:00 8:00 16 11 7:00 8:00 8:16 Folie 24 18. Juni 2012

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... Folie 25 18. Juni 2012

Merge von Funktionen Minimum zweier Funktionen f und g Für alle (ti f, w i f f ): behalte Punkt, wenn wi < g(ti f ) Für alle (t g j, w g j ): behalte Punkt, wenn w g j < f (t g j ) Schnittpunkte müssen ebenfalls eingefügt werden Vorgehen: Linearer sweep Evaluiere, welcher Abschnitt oben Checke ob Schnittpunkt existiert travel time departure time Folie 26 18. Juni 2012

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 Folie 27 18. Juni 2012

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% Folie 28 18. Juni 2012

Grad der Zeitabhängigkeit #delete mins slow-down time [ms] slow-down kein 2,239,500 0.00% 1219.4 0.00% Montag 2,377,830 6.18% 1553.5 27.40% DiDo 2,305,440 2.94% 1502.9 23.25% Freitag 2,340,360 4.50% 1517.2 24.42% Samstag 2,329,250 4.01% 1470.4 20.59% Sonntag 2,348,470 4.87% 1464.4 20.09% Beobachtung: kaum Veränderung in Suchraum Anfragen etwas langsamer durch Auswertung Folie 29 18. Juni 2012

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 Folie 30 18. Juni 2012

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 Folie 31 18. Juni 2012

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. Folie 32 18. Juni 2012

Nächste Termine Mittwoch, 20.6.2012 Montag, 25.6.2012 Montag, 2.7.2012 Folie 33 18. Juni 2012