Algorithmen für Routenplanung 2. Vorlesung, Sommersemester 2016 Tobias Zündorf | 25. April 2016 I NSTITUT FÜR T HEORETISCHE I NFORMATIK · A LGORITHMIK · P ROF. D R . D OROTHEA WAGNER KIT – Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Organisatorisches Vorlesung Montags 14:00–15:30 Uhr, SR 301 (hier) Mittwochs 11:30–13:00 Uhr, SR 301 (hier) Prüfung Prüfbar im Master (und Hauptstudium Diplom) Im Master: 5 ECTS Leistungspunkte VF: 1 (Theoretische Grundlagen), 2 (Algorithmentechnik) Vorlesungswebseite: http://i11www.iti.kit.edu/teaching/sommer2016/ routenplanung/index Tobias Zündorf – Algorithmen für Routenplanung Folie 2 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Nachtrag – Bidirektionale Suche Tobias Zündorf – Algorithmen für Routenplanung Folie 3 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Nachtrag – Bidirektionale Suche s Tobias Zündorf – Algorithmen für Routenplanung Folie 3 – 25. April 2016 t Institut für Theoretische Informatik Lehrstuhl Algorithmik Nachtrag – Bidirektionale Suche s t Beobachtung: Ein kürzester s-t-Weg lässt sich finden durch Normaler Dijkstra (Vorwärtssuche) von s Dijkstra auf Graph mit rückwärts Kanten von t Tobias Zündorf – Algorithmen für Routenplanung Folie 3 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Nachtrag – Bidirektionale Suche s t Idee: Kombiniere beide Suchen „Gleichzeitig“ Vor- und Rückwärtssuche Abbruch wenn beide Suchen „weit genug fortgeschritten“ Weg dann zusammensetzen Tobias Zündorf – Algorithmen für Routenplanung Folie 3 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Abbruchstrategie (1) Abbruchstrategie (1) Abbruch, sobald ein Knoten v existiert, der von beiden Suchen abgearbeitet wurde. Tobias Zündorf – Algorithmen für Routenplanung Folie 4 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Abbruchstrategie (1) Abbruchstrategie (1) Abbruch, sobald ein Knoten v existiert, der von beiden Suchen abgearbeitet wurde. Abbruchstrategie (1) berechnet d(s, t) korrekt. Beweisskizze: O.B.d.A: Sei d(s, t) < ∞ (andernfalls klar) → − ← − Klar: d [v ] + d [v ] ≥ dist(s, t) → − ← − Seien S , S die abgearbeiteten Knoten von Vor- und Rückwärtssuche nach Terminierung Sei P = (v1 , . . . vk ) ein kürzester s-t-Weg. Wir zeigen: → − ← − {v1 , . . . vk } ⊆ S ∪ S oder Tobias Zündorf – Algorithmen für Routenplanung Folie 4 – 25. April 2016 len(P) = dist(s, v ) + dist(v , t) Institut für Theoretische Informatik Lehrstuhl Algorithmik Abbruchstrategie (1) Abbruchstrategie (1) Abbruch, sobald ein Knoten v existiert, der von beiden Suchen abgearbeitet wurde. Sei P = (v1 , . . . vk ) ein kürzester s-t-Weg. Wir zeigen: → − ← − {v1 , . . . vk } ⊆ S ∪ S oder len(P) = dist(s, v ) + dist(v , t) → − ← − Angenommen es gibt vi 6∈ S ∪ S . Dann gilt: dist(s, vi ) ≥ dist(s, v ) Woraus folgt: dist(vi , t) ≥ dist(v , t) len(P) = dist(s, vi ) + dist(vi , t) ≥ dist(s, v ) + dist(v , t) Tobias Zündorf – Algorithmen für Routenplanung Folie 4 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Abbruchstrategie (2) Abbruchstrategie (2) → − ← − Abbruch, sobald µ ≤ minKey( Q ) + minKey( Q ) Tobias Zündorf – Algorithmen für Routenplanung Folie 5 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Abbruchstrategie (2) Abbruchstrategie (2) → − ← − Abbruch, sobald µ ≤ minKey( Q ) + minKey( Q ) Abbruchstrategie (2) berechnet d(s, t) korrekt. Beweisskizze: O.B.d.A: Sei d(s, t) < ∞ (andernfalls klar) → − ← − Klar: d [v ] + d [v ] ≥ dist(s, t) Tobias Zündorf – Algorithmen für Routenplanung Folie 5 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Abbruchstrategie (2) Abbruchstrategie (2) → − ← − Abbruch, sobald µ ≤ minKey( Q ) + minKey( Q ) Annahme: µ > d(s, t) nach Terminierung Dann gibt es einen s-t Pfad P der kürzer als µ ist Auf P gibt es eine Kante (u, v ) mit: → − ← − d(s, u) ≤ minKey ( Q ) und d(v , t) ≤ minKey ( Q ). Also müssen u und v schon abgearbeitet worden sein (o.B.d.A. u vor v ) Beim relaxieren von (u, v ) wäre: P entdeckt worden µ aktualisiert worden Damit ist µ ≤ d(s, t). Widerspruch! Tobias Zündorf – Algorithmen für Routenplanung Folie 5 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Wechselstrategien Frage: Was sind mögliche Wechselstrategien? Tobias Zündorf – Algorithmen für Routenplanung Folie 6 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Wechselstrategien Mögliche Wechselstrategien Prinzipiell jede Wechselstrategie möglich Wechsle nach jedem Schritt zur entgegengesetzten Suche Wechsel zu Suche mit der weniger Elementen in der Queue Wechsel zu Suche mit dem kleineren minimalen Queueelement Oder: Parallele Ausführung auf zwei Kernen Tobias Zündorf – Algorithmen für Routenplanung Folie 6 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Beispiel Tobias Zündorf – Algorithmen für Routenplanung Folie 7 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Beispiel Tobias Zündorf – Algorithmen für Routenplanung Folie 7 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Bemerkungen Beschleunigung Annahme: Suchraum ist Kreisscheibe mit Radius r ⇒ Speedup bzgl. Suchraum (ca.): Dijkstra πr 2 ≈ 2 = 2 Bidir. Suche 2 · π 2r Führe Suchen parallel aus ⇒ Gesamtspeedup ca. 4 Tobias Zündorf – Algorithmen für Routenplanung Folie 8 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Bemerkungen Beschleunigung Annahme: Suchraum ist Kreisscheibe mit Radius r ⇒ Speedup bzgl. Suchraum (ca.): Dijkstra πr 2 ≈ 2 = 2 Bidir. Suche 2 · π 2r Führe Suchen parallel aus ⇒ Gesamtspeedup ca. 4 Wichtiger Bestandteil vieler effizienter Techniken! Tobias Zündorf – Algorithmen für Routenplanung Folie 8 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Algorithm Engineering periment Ex Analyze Design Algorithmics Implement Tobias Zündorf – Algorithmen für Routenplanung Folie 9 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Algorithm Engineering Dijkstras Algorithmus periment Ex Analyze Design Algorithmics Implement Tobias Zündorf – Algorithmen für Routenplanung Folie 9 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Algorithm Engineering Dijkstras Algorithmus periment Ex Analyze Design Algorithmics Implement O(m + n log n) m ∈ O(n) ⇒ O(m + n log n) Tobias Zündorf – Algorithmen für Routenplanung Folie 9 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Algorithm Engineering Dijkstras Algorithmus periment Ex Analyze Design Algorithmics Implement O(m + n log n) m ∈ O(n) ⇒ O(m + n log n) Tobias Zündorf – Algorithmen für Routenplanung Folie 9 – 25. April 2016 4-ary Heap Timestamps Bidirektionale Suche Institut für Theoretische Informatik Lehrstuhl Algorithmik Algorithm Engineering Dijkstras Algorithmus Vergleichbarkeit? Was messen? Auf welchen Daten? periment Ex Analyze Design Algorithmics Implement O(m + n log n) m ∈ O(n) ⇒ O(m + n log n) Tobias Zündorf – Algorithmen für Routenplanung Folie 9 – 25. April 2016 4-ary Heap Timestamps Bidirektionale Suche Institut für Theoretische Informatik Lehrstuhl Algorithmik Experiment – Dijkstra-Rank Problem: Zufallsanfragen geben wenig Informationen Wie ist die Varianz? Werden nahe oder ferne Anfragen beschleunigt? Tobias Zündorf – Algorithmen für Routenplanung Folie 10 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Experiment – Dijkstra-Rank Problem: Zufallsanfragen geben wenig Informationen Wie ist die Varianz? Werden nahe oder ferne Anfragen beschleunigt? Idee: D IJKSTRA definiert für Startknoten s Ordnung für auf den Knoten D IJKSTRA-Rang rs (u) eines Knoten u für gegebenes s Wähle 1000 zufällige Startknoten, analysiere jeweils den Suchraum Zieknoten t := Knoten mit Rang 21 , . . . , 2log n Zeichne Plot (x-Achse = Rang, y-Achse = Laufzeit) Tobias Zündorf – Algorithmen für Routenplanung Folie 10 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik 10000 Dijkstra-Rank – Bidirektionale Suche 1000 Dijkstra bidirectional Dijkstra ● ● ● ● 10 ● ● ●● ● 1 3 ● ● ● ● 0.01 0.1 Query Time [ms] 100 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ● 20 21 22 23 24 25 26 27 28 29 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 Dijkstra Rank Tobias Zündorf – Algorithmen für Routenplanung Folie 11 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik 10000 Dijkstra-Rank – Bidirektionale Suche 1000 Dijkstra bidirectional Dijkstra ● ● ● ● ● 10 3 ● ● ● ● ● ● ● ● ● ●● ● ● ● ● 1 ● ● ● ● 0.01 0.1 Query Time [ms] 100 ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ●● ● ● ● ● ● ● ● ● 0 1 2 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ●● ●● ● ● ● ● ●● ●● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ● 2 2 2 23 24 25 26 27 28 29 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 Dijkstra Rank Ausreißer bei nahen Anfragen (vor allem unidirektional) Beschleunigung unabhängig vom Rang (immer ca. Faktor 2) Varianz etwas höher als bei unidirektionaler Suche Manche Anfragen sehr schnell Tobias Zündorf – Algorithmen für Routenplanung Folie 11 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Experiment – Datensatz Welche Graphen für Experimente nutze: Reales Straßennetz Synthetische Daten Zufallsgraphen Tobias Zündorf – Algorithmen für Routenplanung Folie 12 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Experiment – Datensatz Welche Graphen für Experimente nutze: Reales Straßennetz Synthetische Daten Zufallsgraphen Zielsetzung: Anwendungsnähe Effizienz auf echten Daten Tobias Zündorf – Algorithmen für Routenplanung Folie 12 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Experiment – Datensatz Welche Graphen für Experimente nutze: Reales Straßennetz Kartendaten: z.B.: OpenStreetMap Benchmark Instanzen: z.B.: Dimacs Implementation Challenge Synthetische Daten Zufallsgraphen Zielsetzung: Anwendungsnähe Effizienz auf echten Daten Tobias Zündorf – Algorithmen für Routenplanung Folie 12 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Experiment – Datensatz Welche Graphen für Experimente nutze: Reales Straßennetz Kartendaten: z.B.: OpenStreetMap Benchmark Instanzen: z.B.: Dimacs Implementation Challenge Synthetische Daten Zufallsgraphen Zielsetzung: Anwendungsnähe Effizienz auf echten Daten Welchen Einfluss haben die Daten auf die Experimente? Tobias Zündorf – Algorithmen für Routenplanung Folie 12 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik OpenStreetMap (OSM) Straßengraphen extrahiert von OSM: + Echtes Straßennetz + Frei verfügbar + Große Datenmengen (> 173 Mio Knoten für Europa) Tobias Zündorf – Algorithmen für Routenplanung Folie 13 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik OpenStreetMap (OSM) Straßengraphen extrahiert von OSM: + Echtes Straßennetz + Frei verfügbar + Große Datenmengen (> 173 Mio Knoten für Europa) -- Zur Darstellung in Karten gedacht -- Viele Freiheiten beim erstellen des Graphen ⇒ Experimente schwer vergleichbar Tobias Zündorf – Algorithmen für Routenplanung Folie 13 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik OpenStreetMap (OSM) Tobias Zündorf – Algorithmen für Routenplanung Folie 14 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik OpenStreetMap (OSM) Tobias Zündorf – Algorithmen für Routenplanung Folie 14 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik OpenStreetMap (OSM) OSM Graphen: Knoten zum Modellieren des Straßenverlaufs Knoten irrelevant für das Routing Hat großen Einfluss auf Laufzeit & gemessene Beschleunigung Tobias Zündorf – Algorithmen für Routenplanung Folie 15 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik OpenStreetMap (OSM) OSM Graphen: Knoten zum Modellieren des Straßenverlaufs Knoten irrelevant für das Routing Hat großen Einfluss auf Laufzeit & gemessene Beschleunigung Wie Graphen vereinheitlichen? Tobias Zündorf – Algorithmen für Routenplanung Folie 15 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik OpenStreetMap (OSM) OSM Graphen: Knoten zum Modellieren des Straßenverlaufs Knoten irrelevant für das Routing Hat großen Einfluss auf Laufzeit & gemessene Beschleunigung Wie Graphen vereinheitlichen? Grad zwei Knoten löschen? Tobias Zündorf – Algorithmen für Routenplanung Folie 15 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik OpenStreetMap (OSM) OSM Graphen: Knoten zum Modellieren des Straßenverlaufs Knoten irrelevant für das Routing Hat großen Einfluss auf Laufzeit & gemessene Beschleunigung Wie Graphen vereinheitlichen? Grad zwei Knoten löschen? Knoten kontrahieren und Overlay Graphen! Tobias Zündorf – Algorithmen für Routenplanung Folie 15 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Beispiel: Kontraktion eines Pfades 5 4 2 4 2 3 2 3 3 2 1 Finde Pfade im Graphen Tobias Zündorf – Algorithmen für Routenplanung Folie 16 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Beispiel: Kontraktion eines Pfades 5 4 2 4 2 3 2 5 3 3 2 4 2 3 1 14 2 1 Finde Pfade im Graphen Ersetze jeden Pfad durch einen Shortcut Länge des Shortcut = Länge des Pfades Tobias Zündorf – Algorithmen für Routenplanung Folie 16 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Beispiel: Kontraktion eines Pfades 5 4 2 4 2 3 2 5 3 3 2 4 2 3 1 14 2 1 Finde Pfade im Graphen Ersetze jeden Pfad durch einen Shortcut Länge des Shortcut = Länge des Pfades Probleme? Tobias Zündorf – Algorithmen für Routenplanung Folie 16 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Beispiel: Kontraktion eines Pfades 5 4 2 4 2 3 2 5 3 3 2 4 2 3 1 14 2 1 Finde Pfade im Graphen Ersetze jeden Pfad durch einen Shortcut Länge des Shortcut = Länge des Pfades Probleme: Gelöschte Knoten können nicht mehr Start/Ziel sein Entfernt nur Grad 2 Knoten – Gibt es weitere unnötige Strukturen? Tobias Zündorf – Algorithmen für Routenplanung Folie 16 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: w 6 4 3 u 1 2 x Tobias Zündorf – Algorithmen für Routenplanung Folie 17 – 25. April 2016 4 v 7 4 2 z 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: Knoten v soll kontrahiert werden w 6 4 3 u 1 2 x Tobias Zündorf – Algorithmen für Routenplanung Folie 17 – 25. April 2016 4 v 7 4 2 z 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } w 6 u 4 7 z x Tobias Zündorf – Algorithmen für Routenplanung Folie 17 – 25. April 2016 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) 4 3 u 1 x Folie 17 – 25. April 2016 4 v 2 Tobias Zündorf – Algorithmen für Routenplanung w 6 7 4 2 z 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: 5 Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : 4 3 u Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) 1 3 Folie 17 – 25. April 2016 4 v 2 x Tobias Zündorf – Algorithmen für Routenplanung w 6 7 4 2 z 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: 5 Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : 4 3 u Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) 1 3 Folie 17 – 25. April 2016 4 v 2 x Tobias Zündorf – Algorithmen für Routenplanung w 6 7 4 2 z 5 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: 5 Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : 4 3 u Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) 1 3 Folie 17 – 25. April 2016 4 v 2 x Tobias Zündorf – Algorithmen für Routenplanung w 6 2 7 4 6 z 8 5 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: 5 Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : 4 3 u Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) 1 3 Folie 17 – 25. April 2016 4 v 2 x Tobias Zündorf – Algorithmen für Routenplanung w 6 6 2 7 4 6 z 8 5 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: 5 Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : w 6 6 u Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) Lösche Knoten v 4 x Folie 17 – 25. April 2016 8 3 6 Tobias Zündorf – Algorithmen für Routenplanung 7 z 5 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: 5 Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : w 6 6 u Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) Lösche Knoten v 4 6 x Folie 17 – 25. April 2016 8 X 3 Reduziere Multikanten Tobias Zündorf – Algorithmen für Routenplanung 7 z 5 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: 5 Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : 6 u 6 X w Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) Lösche Knoten v 4 6 x Folie 17 – 25. April 2016 8 X 3 Reduziere Multikanten Tobias Zündorf – Algorithmen für Routenplanung 7 z 5 3 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen Allgemeine Knoten Kontraktion: Knoten v soll kontrahiert werden Erhalte Distanzen in G \ {v } ∀ Nachbarpaare {a, b} von v : u Sind (a, v ) und (v , b) Kanten? Dann erstelle Shortcut (a, b) Lösche Knoten v w 5 5 4 6 3 Reduziere Multikanten 6 x 7 z 3 Grundstein vieler weiterer Beschleunigungstechniken Tobias Zündorf – Algorithmen für Routenplanung Folie 17 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen – TopoCore Welche Kontraktionen reduzieren die Komplexität des Graphen? Tobias Zündorf – Algorithmen für Routenplanung Folie 18 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen – TopoCore Welche Kontraktionen reduzieren die Komplexität des Graphen? Grad 1 Knoten: ≥ v G ⇒ G Sackgasse liegen nie auf kürzesten Wegen Kontraktion reduziert Anzahl Kanten Entfernt komplette Bäume! Tobias Zündorf – Algorithmen für Routenplanung Folie 18 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen – TopoCore Welche Kontraktionen reduzieren die Komplexität des Graphen? Grad 2 Knoten: ≥ v G G ⇒ G G Nur eine Möglichkeit für Routing auf Pfaden Kontraktion reduziert Anzahl Kanten Tobias Zündorf – Algorithmen für Routenplanung Folie 18 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen – TopoCore Welche Kontraktionen reduzieren die Komplexität des Graphen? Grad 3 Knoten: ≥ v G G ⇒ G G Wenig Möglichkeiten während Routing (Alle vorberechnen) Kontraktion lässt Anzahl Kanten unverändert (Anzahl Knoten wird reduziert) Tobias Zündorf – Algorithmen für Routenplanung Folie 18 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Knoten Kontraktionen – TopoCore Welche Kontraktionen reduzieren die Komplexität des Graphen? Grad ≥ 4 Knoten: ≥ G v G ⇒ G G Struktur nicht mehr ausnutzbar Kontraktion erhöht komplexität des Graphen Nachbarknoten von v bilden Clique Tobias Zündorf – Algorithmen für Routenplanung Folie 18 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Overlays Bisher: Kontraktionen reduzieren komplexität des Graphen Knoten werden endgültig gelöscht Mögliche Start-/Zielpunkte gehen verloren Tobias Zündorf – Algorithmen für Routenplanung Folie 19 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Overlays Bisher: Kontraktionen reduzieren komplexität des Graphen Knoten werden endgültig gelöscht Mögliche Start-/Zielpunkte gehen verloren Gesucht: Technik die alle Knoten im Graphen beibehält Dabei weiterhin von Shortcuts profitieren Tobias Zündorf – Algorithmen für Routenplanung Folie 19 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Overlays Bisher: Kontraktionen reduzieren komplexität des Graphen Knoten werden endgültig gelöscht Mögliche Start-/Zielpunkte gehen verloren Gesucht: Technik die alle Knoten im Graphen beibehält Dabei weiterhin von Shortcuts profitieren Lösung: Overlays Tobias Zündorf – Algorithmen für Routenplanung Folie 19 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Overlays Definition: Ein Overlay O ist eine Teilmenge der Knoten O ⊂ V Für Knoten s, t ∈ O gilt: Der kürzeste s-t-Pfad enthält nur Knoten aus O Tobias Zündorf – Algorithmen für Routenplanung Folie 20 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Overlays Definition: Ein Overlay O ist eine Teilmenge der Knoten O ⊂ V Für Knoten s, t ∈ O gilt: Der kürzeste s-t-Pfad enthält nur Knoten aus O Kürzeste Wege Suche mit Overlays: Bidirektionale Variante von Dijkstra Suche erreicht Overlay ⇒ Beschränke Suche auf Overlay Prune Kanten (u, v ) mit u ∈ O und v ∈ /O Tobias Zündorf – Algorithmen für Routenplanung Folie 20 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Overlays Beispiel: w 6 4 3 u 1 4 v 2 x 7 4 2 z 3 → − ← − Nutze speziellen Vorwärtsgraph G und Rückwärtsgraph G → − G enthält Kanten ausgehen von kontrahierten Knoten ← − G enthält Kanten zu kontrahierten Knoten Tobias Zündorf – Algorithmen für Routenplanung Folie 21 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Overlays Beispiel: → − G: ← − G: w 5 6 u 4 v 3 2 x w 5 6 4 u 3 6 3 z 3 1 7 5 4 v 4 2 6 x 7 z 5 3 → − ← − Nutze speziellen Vorwärtsgraph G und Rückwärtsgraph G → − G enthält Kanten ausgehen von kontrahierten Knoten ← − G enthält Kanten zu kontrahierten Knoten Tobias Zündorf – Algorithmen für Routenplanung Folie 21 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Overlays Beispiel: → − G: ← − G: w 5 6 u 4 v 3 2 x w 5 6 4 u 3 6 3 z 3 1 7 5 4 v 4 2 6 x 7 z 5 3 → − ← − Nutze speziellen Vorwärtsgraph G und Rückwärtsgraph G → − G enthält Kanten ausgehen von kontrahierten Knoten ← − G enthält Kanten zu kontrahierten Knoten Danach: Bidirektionaler Dijkstra unverändert benutzbar Tobias Zündorf – Algorithmen für Routenplanung Folie 21 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Graphen Vergleich OSM-Eur: Größe der Graphen: DIMACS-Eur: Graph |V |[·103 ] |E|[·103 ] OSM-Ger OSM-Eur DIMACS-Eur 20 690 173 789 18 010 41 792 347 997 42 189 OSM-Ger: Tobias Zündorf – Algorithmen für Routenplanung Folie 22 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Graphen Vergleich OSM-Eur: Größe der Graphen: DIMACS-Eur: Graph |V |[·103 ] |E|[·103 ] OSM-Ger OSM-Eur DIMACS-Eur 20 690 173 789 18 010 41 792 347 997 42 189 Verteilung der Knotengrade: Graph OSM-Ger OSM-Eur DIMACS-Eur ≥4 14% 12% 26% 1% 1% 6% Tobias Zündorf – Algorithmen für Routenplanung Folie 22 – 25. April 2016 OSM-Ger: #Knoten pro Grad: 1 2 3 71% 77% 19% 14% 10% 49% Institut für Theoretische Informatik Lehrstuhl Algorithmik Graphen Vergleich – TopoCore OSM Input: Tobias Zündorf – Algorithmen für Routenplanung Folie 23 – 25. April 2016 Dimacs Input: Institut für Theoretische Informatik Lehrstuhl Algorithmik Graphen Vergleich – TopoCore OSM TopoCore: Tobias Zündorf – Algorithmen für Routenplanung Folie 23 – 25. April 2016 Dimacs TopoCore: Institut für Theoretische Informatik Lehrstuhl Algorithmik Graphen Vergleich – TopoCore Algorithmus #Attr. CH [GSSV’12] Pareto-SHARC [DW’09] FlexCH [GKS’10] MultiCH [FS’13] MultiCH [FS’13] k-Path Cover [FNS’14] k-Path Cover [FNS’14] PRP [FS’15] TopoCore [DSW’15] TopoCore [DSW’15] TopoCore [DSW’15] TopoCore [DSW’15] TopoCore [DSW’15] Tobias Zündorf – Algorithmen für Routenplanung Folie 24 – 25. April 2016 1 2 2 2 3 8 8 10 8 8 8 8 8 Graph |V | [·106 ] |E| [·106 ] Prepro. [h:m:s] Query [ms] DIMACS-Eur DIMACS-Eur DIMACS-Eur OSM-BaWü OSM-BaWü OSM-BaWü OSM-Ger OSM-Ger OSM-BaWü OSM-Ger OSM-Eur DIMACS-Eur DIMACS-US 18.0 18.0 18.0 2.5 2.5 2.2 17.7 21.7 3.1 20.7 173.8 18.0 23.9 42.2 42.2 42.2 5.0 5.0 4.6 36.1 44.1 6.2 41.8 348.0 42.2 57.7 2:45 7:12:00 5:12:00 2:01 1:08 12 2:29 n/r 3 35 10:57 36 43 0.15 35.4 0.98 0.42 3.16 35 249 128 9 86 621 279 386 Institut für Theoretische Informatik Lehrstuhl Algorithmik Nächster Termin Mittwoch, 27. April 2016 Tobias Zündorf – Algorithmen für Routenplanung Folie 25 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik Bibliographie I Edsger W. Dijkstra. A Note on Two Problems in Connexion with Graphs. Numerische Mathematik, 1(1):269–271, 1959. Julian Dibbelt, Ben Strasser, and Dorothea Wagner. Fast Exact Shortest Path and Distance Queries on Road Networks with Parametrized Costs. In Proceedings of the 23rd ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems. ACM Press, 2015. Hermann Kaindl and Gerhard Kainz. Bidirectional Heuristic Search Reconsidered. Journal of Artificial Intelligence Research, 7:283–317, December 1997. Tobias Zündorf – Algorithmen für Routenplanung Folie 26 – 25. April 2016 Institut für Theoretische Informatik Lehrstuhl Algorithmik