Algorithmen für Routenplanung - 14. Vorlesung, Sommersemester

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