Algorithmen für Routenplanung - 2. Vorlesung, Sommersemester 2016

Werbung
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
Herunterladen