Algorithmen für Routenplanung 9. Sitzung, Sommersemester 2010 Thomas Pajor 7. Juni 2010

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

Algorithmen für Routenplanung 19. und letzte Sitzung, Sommersemester 2012 Thomas Pajor 16. Juli 2012

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

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

Algorithmen für Routenplanung Vorlesung 4

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

Algorithmen für Routenplanung Vorlesung 7

Algorithmen für Routenplanung Vorlesung 6

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

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

Algorithmen für Routenplanung

Algorithmen für Routenplanung Vorlesung 11

Algorithmen für Routenplanung Vorlesung 10

Viertes Übungsblatt - Musterlösung

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

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

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

Algorithmen für Routenplanung

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

Algorithmen für Routenplanung Vorlesung 5

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

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

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

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

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

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

Algorithmen für Routenplanung 2. Vorlesung, Sommersemester 2016 Tobias Zündorf 25. April 2016

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

Zweites Theorie-Übungsblatt - Musterlösung

Algorithmen für Routenplanung

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

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

Theorie-Übungsblatt 3 Lösungsvorschläge

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

Algorithmen II Vorlesung am

Algorithmen für Routenplanung

Algorithmen für Routenplanung Vorlesung 12

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

Algorithmen für Routenplanung Vorlesung 3

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

Algorithmen für Routenplanung Vorlesung 2

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

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

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

Algorithmen II Vorlesung am

Das Problem des minimalen Steiner-Baumes

Schnelle und genaue Routenplanung

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

Effizienter Planaritätstest Vorlesung am

Algorithmen für Routenplanung

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

Algorithmische Methoden für schwere Optimierungsprobleme

Route Planning in Road Networks

Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2010 Reinhard Bauer 25. Juni 2010

10. Übung Algorithmen I

Maximale s t-flüsse in Planaren Graphen

Algorithmische Methoden zur Netzwerkanalyse

Überblick. Organisatorisches. Erinnerung: Motivation Domin. Sets. Algorithmen für Ad-hoc- und Sensornetze

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Kombinatorische Optimierung

Algorithmen für Routenplanung 9. Sitzung, Sommersemester 2013 Julian Dibbelt 27. Mai 2013

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Algorithmische Methoden zur Netzwerkanalyse

Algorithmen für Routenplanung

Algorithmen II Vorlesung am

Personalisierte Routenplanung

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

Algorithmen für Routenplanung 9. Sitzung, Sommersemester 2015 Moritz Kobitzsch 20. Mai 2015

Very simple methods for all pairs network flow analysis

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Vorlesung Datenstrukturen

Genauer Hochleistungs-Routenplaner

Very simple methods for all pairs network flow analysis

Algorithmen für Planare Graphen

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

Algorithmische Methoden zur Netzwerkanalyse

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

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

2. Übungsblatt zu Algorithmen II im WS 2016/2017

Schnelle und genaue Routenplanung

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Heute. Medium Access Control / Färbungen, Teil 2. Kapazität & Scheduling. kurze Wiederholung Schöner verteilter Färbungsalgorithmus

Algorithmen und Datenstrukturen 2

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

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

Algorithmische Methoden zur Netzwerkanalyse

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

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen für Routenplanung 10. Sitzung, Sommersemester 2014 Ben Strasser 21. Mai 2014

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

Heute. Algorithmen für Ad-hoc- und Sensornetze. Erinnerung: MAC-Layer. Erinnerung: Färbungen. Definition

Algorithmen zur Visualisierung von Graphen Lagenlayouts

Theoretische Grundlagen der Informatik

Transkript:

Algorithmen für Routenplanung 9. Sitzung, Sommersemester 2010 Thomas Pajor 7. Juni 2010 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Letztes Mal: Kombinationen Landmarken Bidirektionale Suche s t Kontraktion Arc-Flags access node Table- Lookups s t distances between access node transit nodes

Ergebnisse auf Straßennetzwerken Paradigma Offline-Phase: Vorberechnung zusätzlicher Informationen Online-Phase: Beschleunigung der Anfragen mit Hilfe der Informationen Meist Dijkstra-basierte Algorithmen Ergebnisse Verschiedene sehr effiziente Verfahren Bis zu 3 Millionen mal schneller als Dijkstra Kaum zusätzlicher Speicherbedarf

Ergebnisse auf Straßennetzwerken Vorberechnung Anfrage Zeit Platz Such- Zeit [h:m] [byte/n] raum [ms] Beschl. Dijkstra 0:00 0.0 9 114 385 5 591.6000 1 Bi-Dijkstra 0:00 0.0 4 764 110 2 713.2000 2 ALT-16 1:25 128.0 74 669 53.6000 104 Arc-Flags-128 17:08 10.0 2 764 0.8000 6 988 RE 1:22 13.0 4 643 3.5000 1 597 REAL-(64,16) 2:20 35.0 679 1.1000 5 037 CH 0:32-3.0 359 0.1500 37 273 TNR 1:15 247.0 N/A 0.0043 1 300 000 CALT-(med.,32) 0:10 10.6 1 704 1.6000 3 368 gen. SHARC 1:21 14.5 654 0.2900 19 281 gen. CHASE 1:39 12.0 45 0.0173 323 213 TNR+AF 3:49 321.0 N/A 0.0019 3 000 000 Input: Europa, 18 Mio Knoten und 42 Mio Kanten

Ergebnisse auf Straßennetzwerken Problem: Exakt oder Heuristisch? Alle Verfahren liefern beweisbar kürzeste Wege ABER: Basieren auf Intuition und Experimentellen Studien Keine Garantien bezüglich Platzverbrauch und Laufzeit Meist für Straßennetzwerke maßgeschneidert Ausgenutzte Intuition (Auswahl): Kürzeste Wege sind oft eindeutig Lange in die falsche Richtung fahren lohnt meist nicht Inheränte Hierarchie in Straßennetzwerken Es gibt wenige Knoten die für lange Wege wichtig sind Lokale Suchen sind billig

Algorithm Engineering algorithm engineering analysis deduction perf. guarantees realistic models design falsifiable hypotheses induction implementation algorithm libraries real Inputs experiments applications

Lücke: Praxis vs. Theorie Lässt sich die Lücke zw. Praxis und Theorie schließen? Warum funktionieren die Beschleunigungstechniken so gut? Was zeichnet die Straßennetzwerke dazu aus? Dieses Mal: Ein erster Versuch einige Beschleunigungstechniken zu erklären.

Beob.: Transit-Node Routing Idee: Es gibt eine kleine Menge von (Transit)-Knoten, so dass jeder lange kürzeste Weg mindestens einen Transit-Knoten enthält für jeden Knoten seine wichtigen Transit-Knoten (Access-Nodes) nur sehr wenige sind access node s t distances between transit nodes access node 10 000 Transit-Knoten u. 10 Access-Nodes pro Knoten (Europa)!

Formalisierung Wie lässt sich diese Beobachtung formalisieren?

Werkzeuge Voraussetzungen Graph G = (V, E, len) ungerichtet (lässt sich auf gerichtet verallgemeinern) kürzeste Wege sind eindeutig Jede Kante e = {u, v} ist kürzester Weg zw. u und v (sonst lösche e) Kugel Zu r R + und u V ist B u,r := {v V : P(u, v) r} die Kugel mit Radius r um u. Durchmesser Der Durchmesser D eines Graphen ist D := max u,v V P(u, v) Maximaler Grad bezeichne den maximalen Grad eines Knotens in G.

Highway Dimension Idee: Lokal überdeckt eine kleine Menge Knoten alle hinreichend langen kürzesten Wege. u P 4r B u,4r Gegeben: Ungerichteter Graph G = (V, E, len). Definition Die Highway-Dimension von G ist die kleinste Zahl h N, so dass Für alle r R + und für alle Knoten u V existiert eine Menge S B u,4r mit S h so, dass P(v, w) > r und P(v, w) B u,4r P(v, w) S

Highway Dimension Idee: Lokal überdeckt eine kleine Menge Knoten alle hinreichend langen kürzesten Wege. u P 4r B u,4r Gegeben: Ungerichteter Graph G = (V, E, len). Definition Die Highway-Dimension von G ist die kleinste Zahl h N, so dass für jede Kugel B in G (mit Radius 4r) eine Knoten-Menge S mit S h existiert, so dass jeder kürzeste Weg in B mit Mindestlänge r einen Knoten aus S enthält.

Highway vs. Doubling-Dimension Definition Ein Graph hat Doubling-Dimension α wenn jede Kugel B mit Radius r durch 2 α Kugeln mit Radius r/2 überdeckt werden kann. Beispiel: Pfad (kleine HD und kleine DD) u Highway-Dimension 7 (O(1)) und Doubling-Dimension 1.

Highway vs. Doubling-Dimension Beispiel: Stern (kleine HD und große DD) u Highway-Dimension 1 und Doubling-Dimension Θ(log n).

Highway vs. Doubling-Dimension Beispiel: Gitter (große HD und kleine DD) Highway-Dimension Θ( n) und Doubling-Dimension 2.

Shortest-Path Cover (SPC) Idee: Alle kürzesten Wege einer gewissen Länge können mit einer kleinen Menge von Knoten überdeckt werden. P u 2r Gegeben: Ungerichteter Graph G = (V, E, len). Definition Eine Menge C heißt (r, k)-spc von G genau dann wenn Für alle kürzesten Wege P mit r < P 2r gilt dass P C und für alle u V : C B u,2r k

Shortest-Path Cover (SPC) Idee: Alle kürzesten Wege einer gewissen Länge können mit einer kleinen Menge von Knoten überdeckt werden. P u 2r Gegeben: Ungerichteter Graph G = (V, E, len). Definition Eine Menge C heißt (r, k)-spc von G genau dann wenn jede Kugel B mit Radius 2r höchstens k Knoten aus C enthält und jeder kürzeste Weg P der Länge r P 2r einen Knoten aus C enthält.

Highway Dimension und SPCs Theorem Wenn G Highway-Dimension h hat, dann r ein (r, h)-spc. Beweis Sei S eine minimale Menge die alle kürzesten Wege P mit r < P 2r überdeckt. zu Zeigen: S ist ein (r, h)-spc Ann.: u V so dass U := S B u,2r und U > h. Nach Def. von h gibt es H V mit H h die alle kürzesten Wege überdeckt die in B u,4r enthalten sind und länger als r sind. H überdeckt alle KW P mit r < P 2r (S \ U) H < S und ist (r, h)-spc. 2r 4r

Highway Dimension und SPCs Theorem Wenn G Highway-Dimension h hat, dann r ein (r, h)-spc. Beweis Sei S eine minimale Menge die alle kürzesten Wege P mit r < P 2r überdeckt. zu Zeigen: S ist ein (r, h)-spc Ann.: u V so dass U := S B u,2r und U > h. Nach Def. von h gibt es H V mit H h die alle kürzesten Wege überdeckt die in B u,4r enthalten sind und länger als r sind. H überdeckt alle KW P mit r < P 2r (S \ U) H < S und ist (r, h)-spc. 2r 4r

Highway Dimension und SPCs Theorem Wenn G Highway-Dimension h hat, dann r ein (r, h)-spc. Beweis Sei S eine minimale Menge die alle kürzesten Wege P mit r < P 2r überdeckt. zu Zeigen: S ist ein (r, h)-spc Ann.: u V so dass U := S B u,2r und U > h. Nach Def. von h gibt es H V mit H h die alle kürzesten Wege überdeckt die in B u,4r enthalten sind und länger als r sind. H überdeckt alle KW P mit r < P 2r (S \ U) H < S und ist (r, h)-spc. 2r 4r

Highway Dimension und SPCs Theorem Wenn G Highway-Dimension h hat, dann r ein (r, h)-spc. Beweis Sei S eine minimale Menge die alle kürzesten Wege P mit r < P 2r überdeckt. zu Zeigen: S ist ein (r, h)-spc Ann.: u V so dass U := S B u,2r und U > h. Nach Def. von h gibt es H V mit H h die alle kürzesten Wege überdeckt die in B u,4r enthalten sind und länger als r sind. H überdeckt alle KW P mit r < P 2r (S \ U) H < S und ist (r, h)-spc. 2r 4r

Highway Dimension und SPCs Theorem Wenn G Highway-Dimension h hat, dann r ein (r, h)-spc. Beweis Sei S eine minimale Menge die alle kürzesten Wege P mit r < P 2r überdeckt. zu Zeigen: S ist ein (r, h)-spc Ann.: u V so dass U := S B u,2r und U > h. Nach Def. von h gibt es H V mit H h die alle kürzesten Wege überdeckt die in B u,4r enthalten sind und länger als r sind. H überdeckt alle KW P mit r < P 2r (S \ U) H < S und ist (r, h)-spc. 2r 4r

Highway Dimension und SPCs Problem: Wie lässt sich S effizient konstruieren? Ein minimales (r, h)-spc zu finden ist N P-schwer. Also: Approximation.

Highway Dimension und SPCs Theorem Wenn G Highway-Dimension h hat, dann lässt sich für alle r in polynomieller Zeit ein (r, O(h log n))-spc konstruieren. Idee: Greedy Set-Cover Algorithmus liefert O(log n)-approximation von S.

Highway Dimension und SPCs Vorgehen zur Konstruktion eines (r, O(h log n))-spc: Beweis Beginne mit C = Wähle iterativ den Knoten zu C der die meisten nicht-überdeckten KW überdeckt In jedem Schritt: Mind. 1/h der unüberdeckten KW P mit r < P 2r wird überdeckt Es gibt O(n 2 ) KW in G Höchstens O(h log n) Knoten werden ausgewählt

HD von Straßennetzwerken Vermutung: Straßennetzwerke haben kleine (konstante) Highway-Dimension.

Generischer Prepro.-Algorithmus Ziel: Konstruktion eines Preprocessing-Verfahrens, so dass Platzverbrauch klein (möglichst linear in n) über die Query später Gütegarantien ausgesagt werden können RE CH TNR SHARC...? in Abhängigkeit von h statt n Zum Vergleich: Dijkstra O(m + n log n) Idee: Benutze Preprocessing von Contraction Hierarchies (modifiziert)

Wdh.: Contraction Hierarchies Preprocessing: ordne Knoten nach Wichtigkeit kontrahier Knoten in dieser Ordnung Knoten v wird kontrahiert durch KONTRAHIERE(v) 1 für alle Paare (u, v) und (v, w) von Kanten tue 2 wenn (u, v, w) eindeutiger kürzester Weg dann 3 Füge Shortcut (u, w) mit Gewicht len(u, v) + len(v, w) ein Query: Bidirektional Vorwärtssuche: Relaxiert nur Kanten zu wichtigeren Knoten Rückwärtssuche: Relaxiert nur Kanten von wichtigeren Knoten

Wdh.: Contraction Hierarchies Freiheitsgrad: In welcher Reihenfolge Knoten kontrahieren? 2 2 6 3 5 2 8 4 3 1 2 3 5 1

Generischer Prepro.-Algorithmus Idee: Partitioniere V zu einer Hierarchie L 0, L 1,..., L log D Vorgehen Sei S 0 := V Sei S i ein (2 i, k)-spc für i = 1... log D wobei k = h für unbeschränktes Preprocessing k = h log n für polynomialzeit Preprocessing (Approx.) Dann ist L i := S i \ log D j=i+1 Kontrahiere Knoten in der Reihenfolge induziert durch L i. Ausgabe: Menge E + von eingefügten Shortcuts Hierarchie L 0, L 1,..., L log D S j

Generischer Prepro.-Algorithmus Idee: Partitioniere V zu einer Hierarchie L 0, L 1,..., L log D Vorgehen Sei S 0 := V Sei S i ein (2 i, k)-spc für i = 1... log D wobei k = h für unbeschränktes Preprocessing k = h log n für polynomialzeit Preprocessing (Approx.) Dann ist L i := S i \ log D j=i+1 Kontrahiere Knoten in der Reihenfolge induziert durch L i. Ausgabe: Menge E + von eingefügten Shortcuts Hierarchie L 0, L 1,..., L log D S j

Generischer Prepro.-Algorithmus Idee: Partitioniere V zu einer Hierarchie L 0, L 1,..., L log D Vorgehen Sei S 0 := V Sei S i ein (2 i, k)-spc für i = 1... log D wobei k = h für unbeschränktes Preprocessing k = h log n für polynomialzeit Preprocessing (Approx.) Dann ist L i := S i \ log D j=i+1 Kontrahiere Knoten in der Reihenfolge induziert durch L i. Ausgabe: Menge E + von eingefügten Shortcuts Hierarchie L 0, L 1,..., L log D S j

Preprocessing: Platz Lemma Für v L i und festes j > i ist die Anzahl Kanten (v, w) E + mit w L j höchstens k. Beweis: Kante (v, w) repräsentiert Pfad P dessen innere Knoten vor v und w kontrahiert wurden. Innere Knoten gehören zu L x für x i j. w B v,2 2 j (da sonst P durch u mit u L y>j abgedeckt sein müsste). Def. (2 2 j, k)-spc besagt, dass B v,2 2 j höchstens k Knoten aus L j enthält.

Preprocessing: Platz Lemma Für v L i und festes j > i ist die Anzahl Kanten (v, w) E + mit w L j höchstens k. Beweis: Kante (v, w) repräsentiert Pfad P dessen innere Knoten vor v und w kontrahiert wurden. Innere Knoten gehören zu L x für x i j. w B v,2 2 j (da sonst P durch u mit u L y>j abgedeckt sein müsste). Def. (2 2 j, k)-spc besagt, dass B v,2 2 j höchstens k Knoten aus L j enthält.

Preprocessing: Platz Theorem Für jeden Graphen G mit Highway Dimension h gibt es eine Knotenordnung, durch die das CH-Preprocessing eine Menge von Shortcuts E + so erzeugt, dass gilt Der Grad jedes Knotens in G + = (V, E E + ) ist höchstens + h log D E + O(nh log D) Für Polynomialzeit-Preprocessing: Maximalgrad in G + ist in O( + h log n log D) E + O(nh log n log D)

Queries

Suchraumgröße und Queryzeit Erinnerung: Die meisten Query-Algorithmen sind Dijkstra-basiert. Aufwand wird dominiert von Queue-Operationen auf Knoten Also: Suchraumgröße ˆ Queryzeit Vereinfachung: Im Folgenden werden Suchraumgröße und Queryzeit gleichgesetzt.

1. Reach s 2 t u t 1 s 1 r P1 (u) t 2 s r P2 (u) = r(u)

Reach prefix(p,u) suffix(p,u) s u t Definition: sei P = s,..., u,..., t Pfad durch u dann Reach von u bezüglich P: r P (u) := min{len(p su ), len(p ut )} Reach von u: Maximum seiner Reachwerte bezüglich aller kürzesten Pfade durch u: r(u) := max{r P (u) P kürzester Weg mit u P}

Reach-Pruning Somit: Reach r(u) von u gibt Suffix oder Prefix des längsten kürzesten Weges durch u wenn für u während Query r(u) < d(s, u) und r(u) < d(u, t) gilt, kann u geprunt werden Query-Variante: Bidirectional Distance-Bounding Reach-Dijkstra Alternierungsstrategie: min{minkey( Q ), minkey( Q )} Bei gleich langen Wegen: Bevorzuge immer den Hopminimalen!

Reach-Pruning Somit: Reach r(u) von u gibt Suffix oder Prefix des längsten kürzesten Weges durch u wenn für u während Query r(u) < d(s, u) und r(u) < d(u, t) gilt, kann u geprunt werden Query-Variante: Bidirectional Distance-Bounding Reach-Dijkstra Alternierungsstrategie: min{minkey( Q ), minkey( Q )} Bei gleich langen Wegen: Bevorzuge immer den Hopminimalen!

Berechnung von Reach (RE) Ursprüngliche Berechnung von Reach: wähle ɛ frei iterativ, solange E berechne obere Schranken mit part. KW-Bäumen der Höhe 2ɛ entferne alle Kanten mit Reach < ɛ aus Graphen setze ɛ = k ɛ wandle Kanten-Reach in Knoten-Reach um Modifizierte Vorberechnung durch folgendes Lemma Lemma Für alle v L i gilt: r(v) 2 2 i in G + = (V, E E + )

Berechnung von Reach (RE) Ursprüngliche Berechnung von Reach: wähle ɛ frei iterativ, solange E berechne obere Schranken mit part. KW-Bäumen der Höhe 2ɛ entferne alle Kanten mit Reach < ɛ aus Graphen setze ɛ = k ɛ wandle Kanten-Reach in Knoten-Reach um Modifizierte Vorberechnung durch folgendes Lemma Lemma Für alle v L i gilt: r(v) 2 2 i in G + = (V, E E + )

Berechnung von Reach (RE) Lemma Für alle v L i gilt: r(v) 2 2 i in G + = (V, E E + ) Beweis: Ann.: Es gibt v L i mit r(v) > 2 2 i. kürzester Weg P(x, v, y) mit v P(x, v, y) sowie P(x, v) > 2 2 i und P(v, y) > 2 2 i. Sowohl P(x, v) alsauch P(v, y) enthalten Knoten aus L j mit j > i. Es gibt einen Shortcut zwischen P(x, v) und P(v, y). P(x, v, y) ist kein kürzester Weg.

Berechnung von Reach (RE) Lemma Für alle v L i gilt: r(v) 2 2 i in G + = (V, E E + ) Beweis: Ann.: Es gibt v L i mit r(v) > 2 2 i. kürzester Weg P(x, v, y) mit v P(x, v, y) sowie P(x, v) > 2 2 i und P(v, y) > 2 2 i. Sowohl P(x, v) alsauch P(v, y) enthalten Knoten aus L j mit j > i. Es gibt einen Shortcut zwischen P(x, v) und P(v, y). P(x, v, y) ist kein kürzester Weg.

Theorem Die Query-Zeit von RE ist in O(( + h log D)(h log D)) für unbeschränktes Preprocessing O(( + h log n log D)(h log n log D)) für pol. Preprocessing Beweis: Zusammensetzung der Schranke: ( + k log D) (k log D) }{{}}{{} max. Knotengrad in G + max. Suchraum Betrachte die Vorwärtssuche von s (Rückwärtssuche analog) Betrachte die Kugel B s,2 2 i um s. Die Suche arbeitet wegen r(v) 2 2 i keine Knoten v L i mit v / B s,2 2 i ab. L i ist ein (2 i, k)-spc, also L i B s,2 2 i k Höchstens k Knoten werden pro Level abgearbeitet

Theorem Die Query-Zeit von RE ist in O(( + h log D)(h log D)) für unbeschränktes Preprocessing O(( + h log n log D)(h log n log D)) für pol. Preprocessing Beweis: Zusammensetzung der Schranke: ( + k log D) (k log D) }{{}}{{} max. Knotengrad in G + max. Suchraum Betrachte die Vorwärtssuche von s (Rückwärtssuche analog) Betrachte die Kugel B s,2 2 i um s. Die Suche arbeitet wegen r(v) 2 2 i keine Knoten v L i mit v / B s,2 2 i ab. L i ist ein (2 i, k)-spc, also L i B s,2 2 i k Höchstens k Knoten werden pro Level abgearbeitet

Theorem Die Query-Zeit von RE ist in O(( + h log D)(h log D)) für unbeschränktes Preprocessing O(( + h log n log D)(h log n log D)) für pol. Preprocessing Beweis: Zusammensetzung der Schranke: ( + k log D) (k log D) }{{}}{{} max. Knotengrad in G + max. Suchraum Betrachte die Vorwärtssuche von s (Rückwärtssuche analog) Betrachte die Kugel B s,2 2 i um s. Die Suche arbeitet wegen r(v) 2 2 i keine Knoten v L i mit v / B s,2 2 i ab. L i ist ein (2 i, k)-spc, also L i B s,2 2 i k Höchstens k Knoten werden pro Level abgearbeitet

2. Contraction Hierarchies node order 2 s 2 6 3 5 1 2 8 4 3 1 2 3 t 5

CH: Query Betrachte vereinfachte Query: Führe volle bidirektionale Suche durch Benutze kein Stoppkriterium Der gesamte erreichbare Graph wird abgearbeitet! Relaxiere nur Kanten zu wichtigeren Knoten (wie gehabt) Variante funktioniert in der Praxis bereits sehr gut

CH: Query Problem: Reach-Schranken gelten nicht für CH-Query. Lösungsansätze: 1. Benutze zusätzlich Reach-Pruning 2. Füge zusätzliche Shortcuts beim Preprocessing ein Hier letzteres: Bei Knotenreduktion von v L i : Erzeuge Shortcut (u, w) für jedes Paar u, w L i B v,2 i+1 für das v P(u, w). Gib für jeden Knoten v lediglich sein Level L i (also i) aus.

CH: Query Problem: Reach-Schranken gelten nicht für CH-Query. Lösungsansätze: 1. Benutze zusätzlich Reach-Pruning 2. Füge zusätzliche Shortcuts beim Preprocessing ein Hier letzteres: Bei Knotenreduktion von v L i : Erzeuge Shortcut (u, w) für jedes Paar u, w L i B v,2 i+1 für das v P(u, w). Gib für jeden Knoten v lediglich sein Level L i (also i) aus.

CH: Analyse Beobachtungen: Platz-Schranken gelten weiterhin Für jeden kürzesten s-t-weg: Es gibt weiterhin Weg in G +, so dass zwei aufeinanderfolgende Knoten stets verschiedene Levels haben Ausnahme: oberstes Level kann genau zwei Nachbarn haben Sonderbehandlung Theorem Die Query-Zeit von CH ist in O(( + h log D)(h log D)) für unbeschränktes Preprocessing O(( + h log n log D)(h log n log D)) für pol. Preprocessing

CH: Analyse Beobachtungen: Platz-Schranken gelten weiterhin Für jeden kürzesten s-t-weg: Es gibt weiterhin Weg in G +, so dass zwei aufeinanderfolgende Knoten stets verschiedene Levels haben Ausnahme: oberstes Level kann genau zwei Nachbarn haben Sonderbehandlung Theorem Die Query-Zeit von CH ist in O(( + h log D)(h log D)) für unbeschränktes Preprocessing O(( + h log n log D)(h log n log D)) für pol. Preprocessing

TNR und SHARC Theorem Die Query-Zeit von TNR ist in O( + h log D) für unbeschränktes Preprocessing O( + h log n log D) für pol. Preprocessing Theorem SHARC (mit Modifikationen) hat polynomialzeit Preprocessing mit Platzverbrauch in O(nh log n log D) so dass für die Query-Zeit gilt O((h log n log D) 2 ).

Zusammenfassung Theoretische Garantien für Beschleunigungstechniken Highway-Dimension formalisiert Intuition hinter Transit-Node Routing Kleine Highway-Dimension führt zu kleinen Shortest-Path-Covern Vermutung: Straßennetzwerke haben kleine Highway-Dimension Generisches Preprocessing basierend auf CH Führt zu Laufzeitgarantien für RE, CH, TNR und SHARC in Abhängigkeit von h statt n Offene Probleme Wie Highway-Dimension effizient berechnen? Analyse für zielgerichtete Techniken (Arc-Flags, ALT)

Zusammenfassung Theoretische Garantien für Beschleunigungstechniken Highway-Dimension formalisiert Intuition hinter Transit-Node Routing Kleine Highway-Dimension führt zu kleinen Shortest-Path-Covern Vermutung: Straßennetzwerke haben kleine Highway-Dimension Generisches Preprocessing basierend auf CH Führt zu Laufzeitgarantien für RE, CH, TNR und SHARC in Abhängigkeit von h statt n Offene Probleme Wie Highway-Dimension effizient berechnen? Analyse für zielgerichtete Techniken (Arc-Flags, ALT)

Ende Literatur: Ittai Abraham, Amos Fiat, Andrew Goldberg und Renato Werneck: Highway Dimension, Shortest Paths, and Provably Efficient Algorithms In: Proc. ACM-SIAM Symposium on Discrete Algorithms (SODA10), 2010. Username: routeplanning Passwort: ss10