Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von...

86

Transcript of Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von...

Page 1: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

INSTITUT FÜR THEORETISCHE INFORMATIK � ALGORITHMIK I � PROF. DR. DOROTHEA WAGNER

Algorithmen für Routenplanung4. Termin, Sommersemester 2011

Reinhard Bauer | 2. Mai 2011

KIT � Universität des Landes Baden-Württemberg und

nationales Großforschungszentrum in der Helmholtz-Gemeinschaftwww.kit.edu

Page 2: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Ideensammlung

Wie Suche zielgerichtet machen?

Nichtbeachten von Kanten oder Knoten die in die �falsche�Richtung führen

Reihenfolge in der Knoten besucht werden ändern

Jetzt: ersteres

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 3: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Geometrische Container

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

s

t

Beobachtung:

Subwege von kürzestenWegen sind auchkürzeste Wege

nicht jede Kante istwichtig für einbestimmtes Ziel

Idee:

Speichere geometrisches Objekt für jede Kante, das alle Knoten desUnterbaums beinhaltet

Relaxiere während Anfrage nur Kanten, für die Ziel t im Objekt ist

Page 4: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Geometrische Container

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

(u,v)

u

Beobachtung:

Subwege von kürzestenWegen sind auchkürzeste Wege

nicht jede Kante istwichtig für einbestimmtes Ziel

Idee:

Speichere geometrisches Objekt für jede Kante, das alle Knoten desUnterbaums beinhaltet

Relaxiere während Anfrage nur Kanten, für die Ziel t im Objekt ist

Page 5: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Geometrische Container

DIJKSTRA(G = (V ;E ; len), s, Container C())

1 d [s] = 02 Q:clear(), Q:add(s;0)

3 while !Q:empty() do4 u Q:deleteMin()

5 forall the edges e = (u; v) 2 E do

6 if t =2 C(e) then continue

7 if d [u] + len(e) < d [v ] then8 d [v ] d [u] + len(e)

9 if v 2 Q then Q:decreaseKey(v ;d [v ])10 else Q:insert(v ;d [v ])

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 6: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Formen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Viele Formen möglich:

Winkel

Winkel + Distanz

Umgebenes Rechteck

Konvexe Hülle

Trade-Off:

Speicherplatz pro Kante

Overhead zur Bestimmung ob t im Container liegt

Umgebenes Rechteck scheint am besten zu sein

Page 7: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Formen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Viele Formen möglich:

Winkel

Winkel + Distanz

Umgebenes Rechteck

Konvexe Hülle

Trade-Off:

Speicherplatz pro Kante

Overhead zur Bestimmung ob t im Container liegt

Umgebenes Rechteck scheint am besten zu sein

Page 8: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Formen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Viele Formen möglich:

Winkel

Winkel + Distanz

Umgebenes Rechteck

Konvexe Hülle

Trade-Off:

Speicherplatz pro Kante

Overhead zur Bestimmung ob t im Container liegt

Umgebenes Rechteck scheint am besten zu sein

Page 9: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Formen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Viele Formen möglich:

Winkel

Winkel + Distanz

Umgebenes Rechteck

Konvexe Hülle

Trade-Off:

Speicherplatz pro Kante

Overhead zur Bestimmung ob t im Container liegt

Umgebenes Rechteck scheint am besten zu sein

Page 10: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Formen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Viele Formen möglich:

Winkel

Winkel + Distanz

Umgebenes Rechteck

Konvexe Hülle

Trade-Off:

Speicherplatz pro Kante

Overhead zur Bestimmung ob t im Container liegt

Umgebenes Rechteck scheint am besten zu sein

Page 11: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Vorberechnung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

ut

Vorgehen:

für jeden Knoten einenkürzeste Wege Baumberechnen

dann für jede Kante denminimalen Containerberechnen

speicher Container ander Kante

Zeit- und Platz-Bedarf:

m Container, Größe abhängig von Komplexität des Containers

n Dijkstras + m Berechnungen der Container

Page 12: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Vorberechnung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

(u,v)

u

Vorgehen:

für jeden Knoten einenkürzeste Wege Baumberechnen

dann für jede Kante denminimalen Containerberechnen

speicher Container ander Kante

Zeit- und Platz-Bedarf:

m Container, Größe abhängig von Komplexität des Containers

n Dijkstras + m Berechnungen der Container

Page 13: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Vorberechnung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

(u,v)

u

Vorgehen:

für jeden Knoten einenkürzeste Wege Baumberechnen

dann für jede Kante denminimalen Containerberechnen

speicher Container ander Kante

Zeit- und Platz-Bedarf:

m Container, Größe abhängig von Komplexität des Containers

n Dijkstras + m Berechnungen der Container

Page 14: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Diskussion

Vorteile:

einfacher Anfrage-Algorithmus

Beschleunigung um bis zu Faktor 40

Vorberechnung einfach (basiert v.a. auf Dijkstra's Algorithmus)

Nachteile:

Hohe Laufzeit der Vorberechnung

daher nicht berechenbar auf sehr großen Netzen(ungefähr 500 Jahre für das Straßennetzwerk von Europa)

Vorberechnungsplatz: m Container (Box: 2 Punkte)

Einbettung der Graphen nötig

Container können sehr ungenau sein

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 15: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Diskussion

Vorteile:

einfacher Anfrage-Algorithmus

Beschleunigung um bis zu Faktor 40

Vorberechnung einfach (basiert v.a. auf Dijkstra's Algorithmus)

Nachteile:

Hohe Laufzeit der Vorberechnung

daher nicht berechenbar auf sehr großen Netzen(ungefähr 500 Jahre für das Straßennetzwerk von Europa)

Vorberechnungsplatz: m Container (Box: 2 Punkte)

Einbettung der Graphen nötig

Container können sehr ungenau sein

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 16: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Diskussion

Vorteile:

einfacher Anfrage-Algorithmus

Beschleunigung um bis zu Faktor 40

Vorberechnung einfach (basiert v.a. auf Dijkstra's Algorithmus)

Nachteile:

Hohe Laufzeit der Vorberechnung

daher nicht berechenbar auf sehr großen Netzen(ungefähr 500 Jahre für das Straßennetzwerk von Europa)

Vorberechnungsplatz: m Container (Box: 2 Punkte)

Einbettung der Graphen nötig

Container können sehr ungenau sein

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 17: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Technik: Arc-Flags [Lauther 04]

Of�ine-Phase:

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 18: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Technik: Arc-Flags [Lauther 04]

Of�ine-Phase:

Partitioniere den Graphen

V1 V2

V3 V4

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 19: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Technik: Arc-Flags [Lauther 04]

Of�ine-Phase:

Partitioniere den Graphen

Für jede Kante (u; v) undjede Zelle i :Führt ein kürzestesterWegen von (u; v) nach i?

u

v

V1 V2

V3 V4

(1,1,0,1)

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 20: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Technik: Arc-Flags [Lauther 04]

Of�ine-Phase:

Partitioniere den Graphen

Für jede Kante (u; v) undjede Zelle i :Führt ein kürzestesterWegen von (u; v) nach i?

Online-Phase:

Wie Dijkstra's Algorithmus

Nur Kanten ins Zielgebiet

u

v

V1 V2

V3 V4s

t

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 21: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Anfragen

ARC-FLAG-DIJKSTRA(G = (V ;E), s, t , Arc-Flags AF�

(�))

1 d [s] = 02 Q:clear(), Q:add(s;0)

3 while !Q:empty() do4 u Q:deleteMin()

5 forall the edges e = (u; v) 2 E do

6 if d [u] + len(e) < d [v ] and AFT (e) = true then

7 d [v ] d [u] + len(e)

8 if v 2 Q then Q:decreaseKey(v ;d [v ])9 else Q:insert(v ;d [v ])

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 22: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Flaggenberechnung: Erster Versuch

für jeden Knoten t 2 V

konstruiere Kürzeste-Wege Baum T auf Rückwärtsgraph mitWurzel vfür jede Kante (u; v) in T

Setze �ag von Region von t und Kante (u; v) auf true

0 00 0 00

0 00

0 00

0 00

0 00 00 00 0 000000 00 0

1

1

1

1

101 1

1

1

1

11

1

1 1

1

1

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 23: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Flaggenberechnung: Erster Versuch

Problem: Vorberechnung wieder zu teuer!

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 24: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Flaggenberechnung: Randknoten

Randknoten

Ein Randknoten ist ein Knoten v , so dass es eine Kante (u; v) gibtmit u in anderer Zelle als v .

Beobachtung: Man muss eine Zelle durch einen Randknoten�betreten�

Für jede Kante (u; v) setze das Flag für die Zelle von v auf true

Berechne Kürzeste-Wege-Bäume nur für Randknoten

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 25: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Übersicht Vorberechungsarten

In aufsteigender Güte:

Kürzeste-Wege-Baum von jedem Knoten

Kürzeste-Wege-Baum von jedem Randknoten

Sogennante �Zentralisierte Bäume� (nicht Stoff der Vorlesung)

Schnelles APSP (all-pairs shortest paths, kommt noch)

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 26: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

balanciert

mögliche Partitionen:

GitterQuad-Baum

iterativ in 4 Zellen unterteilen

kd-BaumVerallgemeinerung vonQuad-Baum

weitere Anforderungen?

Page 27: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

balanciert

mögliche Partitionen:

GitterQuad-Baum

iterativ in 4 Zellen unterteilen

kd-BaumVerallgemeinerung vonQuad-Baum

weitere Anforderungen?

Page 28: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

balanciert

mögliche Partitionen:

GitterQuad-Baum

iterativ in 4 Zellen unterteilen

kd-BaumVerallgemeinerung vonQuad-Baum

weitere Anforderungen?

Page 29: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

balanciert

mögliche Partitionen:

GitterQuad-Baum

iterativ in 4 Zellen unterteilen

kd-BaumVerallgemeinerung vonQuad-Baum

weitere Anforderungen?

Page 30: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

balanciert

mögliche Partitionen:

GitterQuad-Baum

iterativ in 4 Zellen unterteilen

kd-BaumVerallgemeinerung vonQuad-Baum

weitere Anforderungen?

Page 31: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

balanciert

mögliche Partitionen:

GitterQuad-Baum

iterativ in 4 Zellen unterteilen

kd-BaumVerallgemeinerung vonQuad-Baum

weitere Anforderungen?

Page 32: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

ausbalanciert

wenige Randknoten

zusammenhängend

Black-Box Partitionierer:

benutzen keine Einbettung

oft: teilen rekursiv Graphen in kTeile mit kleinem Schnitt

bringen gute Lösungen fürArc-Flags

Page 33: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

ausbalanciert

wenige Randknoten

zusammenhängend

Black-Box Partitionierer:

benutzen keine Einbettung

oft: teilen rekursiv Graphen in kTeile mit kleinem Schnitt

bringen gute Lösungen fürArc-Flags

Page 34: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Partitionierung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Anforderungen:

ausbalanciert

wenige Randknoten

zusammenhängend

Black-Box Partitionierer:

benutzen keine Einbettung

oft: teilen rekursiv Graphen in kTeile mit kleinem Schnitt

bringen gute Lösungen fürArc-Flags

Page 35: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Suchraum

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 36: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Suchraum

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 37: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Diskussion

Vorteile:

einfacher Anfrage Algorithmus

leicht on-top auf bestehende Systeme zu setzen

ausreichende Beschleunigung

Nachteile:

hohe Vorberechnungsdauer (wird durch schnelles APSPaufgehoben)Coning-Effekt:

mehr Flaggen gesetzt, wenn nah an der Zielzellealle Flaggen in Zielzelle gesetztAnfragen in einer Zelle ohne Beschleunigung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 38: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Automatisches Setzen von Flaggen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Beobachtung:

Für manche Kanten kann mandie Flaggen automatisch setzen

Angehangene Bäume:

Kanten zur Wurzel hin haben alle Flaggen gesetzt

Kanten von Wurzel weg haben nur eine Flagge gesetzt

also können die Bäume vor der Vorberechnung vom Graphen entferntwerden

Knotenzahl verringert sich um 1 Drittel

Page 39: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Automatisches Setzen von Flaggen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Beobachtung:

Für manche Kanten kann mandie Flaggen automatisch setzen

Angehangene Bäume:

Kanten zur Wurzel hin haben alle Flaggen gesetzt

Kanten von Wurzel weg haben nur eine Flagge gesetzt

also können die Bäume vor der Vorberechnung vom Graphen entferntwerden

Knotenzahl verringert sich um 1 Drittel

Page 40: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Automatisches Setzen von Flaggen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

0001

0001

000111111111

1111

Beobachtung:

Für manche Kanten kann mandie Flaggen automatisch setzen

Angehangene Bäume:

Kanten zur Wurzel hin haben alle Flaggen gesetzt

Kanten von Wurzel weg haben nur eine Flagge gesetzt

also können die Bäume vor der Vorberechnung vom Graphen entferntwerden

Knotenzahl verringert sich um 1 Drittel

Page 41: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Coning-Effekt

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Beobachtung:

lange Zeit nur eine Kante wichtig

daher immer nur ein Knoten in derQueue

aber: je näher an der Zelle, destomehr Kanten werden wichtig

Suche fächert sich auf

in Zelle werden dann alle Kantenrelaxiert

Zwei Ansätze:

bidirektionale Flags

multi-level Flags

Page 42: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Coning-Effekt

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Beobachtung:

lange Zeit nur eine Kante wichtig

daher immer nur ein Knoten in derQueue

aber: je näher an der Zelle, destomehr Kanten werden wichtig

Suche fächert sich auf

in Zelle werden dann alle Kantenrelaxiert

Zwei Ansätze:

bidirektionale Flags

multi-level Flags

Page 43: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Vorberechung:

Vorwärts- und Rückwärts�aggen

Rückwärts�aggen können analog für eingehende Kantenberechnet werden

Vorberechungszeit in gerichteten Graphen erhöht sich umFaktor 2

Anfrage:

bidirektional:Vorwärtssuche relaxiert nur Kanten mit Flagge für TRückwärtssuche nur Kanten mit Flaggen für S

normales Stopp-Kriterium von bidirektionalem Dijkstra

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 44: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 45: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 46: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 47: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 48: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 49: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 50: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 51: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 52: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

4

4

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 53: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 54: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Bidirektionale Arc-Flags

Problem:

Eindeutigkeit der Wege

eventuell nicht korrekt

Lösung:

kommt in Straßengraphen kaum vor

daher öffne Flaggen für alle möglichen Wege

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 55: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Suchraum

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 56: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Suchraum

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 57: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 58: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 59: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 60: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 61: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 62: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 63: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 64: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 65: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Problem:

Anfragen in einer Zelle ohneBeschleunigung

viele Real-Welt Anfragensind lokal

Multi-Level Arc-Flags:

Multi-Level Partition

berechne partielle Flaggen

Page 66: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Vorberechnung:

oberster Level wie gehabtauf unteren Leveln:

von jedem Randknoten führe Dijkstra aus, bis alle Knoten derSuperzelle abgearbeitet worden sindsetze Flaggen für alle Kanten (u; v) für die u in SuperzelleHinweis: es reicht nicht, nur den Subgraphen der Superzelle zubetrachten (Übungsaufgabe)

Anfragen:

bestimme gemeinsamen Level l von u und t

werte Flaggen auf dem Level l aus

Korrektheit: siehe Übung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 67: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Vorberechnung:

oberster Level wie gehabtauf unteren Leveln:

von jedem Randknoten führe Dijkstra aus, bis alle Knoten derSuperzelle abgearbeitet worden sindsetze Flaggen für alle Kanten (u; v) für die u in SuperzelleHinweis: es reicht nicht, nur den Subgraphen der Superzelle zubetrachten (Übungsaufgabe)

Anfragen:

bestimme gemeinsamen Level l von u und t

werte Flaggen auf dem Level l aus

Korrektheit: siehe Übung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 68: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Multi-Level Arc-Flags

Vorberechnung:

oberster Level wie gehabtauf unteren Leveln:

von jedem Randknoten führe Dijkstra aus, bis alle Knoten derSuperzelle abgearbeitet worden sindsetze Flaggen für alle Kanten (u; v) für die u in SuperzelleHinweis: es reicht nicht, nur den Subgraphen der Superzelle zubetrachten (Übungsaufgabe)

Anfragen:

bestimme gemeinsamen Level l von u und t

werte Flaggen auf dem Level l aus

Korrektheit: siehe Übung

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 69: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Suchraum

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 70: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Suchraum

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 71: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Datenstruktur

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

1 1 1

1 1 1 1 1 1

1 1 11 0 0

100

1 101 1 0

Ef�zient Flaggen speichern?

pro Kante eine Flagge

Beobachtung: AnzahlKombinationen begrenzt

Idee:

speichere Flaggen in Matrix

Zeiger von Kanten auf die Matrix

verringert Speicherverbrauch um einen Faktor 5

Page 72: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Datenstruktur

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

1 1 0

1 1 11 10

1001 0 0

Ef�zient Flaggen speichern?

pro Kante eine Flagge

Beobachtung: AnzahlKombinationen begrenzt

Idee:

speichere Flaggen in Matrix

Zeiger von Kanten auf die Matrix

verringert Speicherverbrauch um einen Faktor 5

Page 73: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Flaggenkompression

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

1 1 0

1 1 11 10

1001 0 0

Beobachtung:

kippen eines Bits von 1auf 0 verboten

kippen eines Bits von 0auf 1 erlaubt (weiterhinkorrekt, eventuelllangsamer)

Idee:

verringere Anzahl eindeutiger Arc-Flags durch kippen

dadurch Kompression der Matrix

�nde �gutes� Mapping (Studienarbeit WS 08/09)

Page 74: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Flaggenkompression

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

1 1 0

1 1 11 10

Beobachtung:

kippen eines Bits von 1auf 0 verboten

kippen eines Bits von 0auf 1 erlaubt (weiterhinkorrekt, eventuelllangsamer)

Idee:

verringere Anzahl eindeutiger Arc-Flags durch kippen

dadurch Kompression der Matrix

�nde �gutes� Mapping (Studienarbeit WS 08/09)

Page 75: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Experimente

Eingaben:

StraßennetzwerkeEuropa: 18 Mio. Knoten, 42 Mio. KantenUSA: 22 Mio. Knoten, 56 Mio. Kanten

Evaluation:

Vorberechnung in Minuten und zusätzliche Bytes pro Knoten

durchschnittlicher Suchraum (#abgearbeitete Knoten) undSuchzeiten (in ms) von 10 000 Zufallsanfragen

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 76: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Zufallsanfragen: Anzahl Regionen

Prepro Query

time space # settled time spdregions [min] [B/n] nodes [ms] up0 0 0 9 114 385 5 591.6 1.0200 1 028 19 2 369 1.6 3 494.8400 1 366 20 1 868 1.2 4 659.7600 1 723 21 1 700 1.1 5 083.3800 1 892 23 1 642 1.4 3 994.01000 2 156 25 1 593 1.1 5 083.3

Beobachtungen:

lange Vorberechnung

hohe Beschleunigung

geringer Speicherverbrauch

mehr als 200 Regionen lohnt sich nicht

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 77: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Lokale Anfragen Arc-Flags I

●●●●●●

●●

●●●

●●●●●●●●●●●●

●●

●●●

●●

●●

●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●

●●

●●●

●●●●●● ●●●●●●

●●●●●●●●

●●●●●●●

●●●●

●●●●●●●

●●●●●●●

●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●● ●●

●●●●●●

●●●●●●●●●●●●●●●●

●●●●●

●●●●●●●

●●

●●●

●●●

●●●●

●●●

●●●●●●●●●●●●●

●●

●●●●●●●●●

●●

●●●●●

●●●●

●●●●●

●●●

●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●

●●●●●

●●●●●●

●●

●●●●

●●

●●

●●●

●●●●●●

●●

●●

●●●●●●●●●

●●●

●●

●●

●●

●●●

●●

●●●●●

●●●

●●●

●●●

●●●●●●

●●●●●●●●●●

●●

●●

●●

●●●

●●●●

●●●●

●●●●●●

●●

●●●

●●●

●●●●●●

●●●

●●●

●●●●

●●

●●●

●●

●●

●●

●●

●●●●●●●●●

●●●●●●●

●●●●●

●●

●●

●●●

●●

●●

●●

●●●●

●●

●●●

●●●

●●

●●●●●●●

●●●●●

●●●●

●●●●●●●●●

●●●●●●●●

●●●●

●●●

●●●●

●●

●●●

●●

●●

●●●●●●

●●●

●●●●

●●●●

●●

●●●

●●

●●●●●●

●●●●●

●●

●●

●●●●●●

●●●●

●●●●●

●●●●●●●

●●●●

●●●

●●

●●●●●●●

●●●●●

●●●

●●●●●

●●

●●●●●

●●

●●●●●●

●●●●●●●●●●

●●

●●

●●●●●●

●●●

●●●●●●●

●●●

●●

●●●●●●●●●●

●●

●●●

●●●●

●●●

●●

●●●●●●●

●●●●●●

●●

●●●●●●●●●●●

●● ●●●●●●●●●●

●●●●●●●●●●

●●●●●●

●●

●●

●●●●●●●●●

●●●●●●●

●●●●●●●●●●●●●

●●●●●●●

●●●●●●●●●●

●●●●●●●●●●

●●●●●●●●●●●●●●●●

●●●●

●●●●●●●●●

●●●●

●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●

●●●

●●

●●

●●●●●

●●●●●●

●●●●●

●●

●●●●●●●●●●●●●●

●●●

●●●●●●●●

●●

●●

●●

●●

●●●●●●●

●●●●

●●

●●

●●

●●

● ●●

●●

●●●●●●●●●●●

●●

●●●

●●●●

●●●●●●●

●●●●

●●●●

●●

●●●●●

●●●●●

●●

●●●

●●●●●●

●●●●●●●

●● ●●●

●●

●●

●●●●

●●

●●

●●●●●●

●●●

●●

●●

●●●●

●●

●●●●●●●●●●

●●

●●●●●

●●●●●●●●

●●●

●●

●● ●●●

●●●●●●●●

●●●

●●●●●●●●●●

●●●

●●

●●

●●●●●●●●●●●●●●●●●

●●●●●

●●●

●●

●●●●●●

●●●●●●

●●●

●●

●●

●●●●●●●●●●●●

●●

●●●●

●●●

●●

●●●

●●

●●●●●●●

●●●●●

●●●

●●●

●●●●●

●●●

●●

●●●●●●●●●●●●●●

●●●

●●

●●

●●●

●●

●●

●●●

●●●

●●●●●●

●●●

●●

●●●●●

●●●●

●●●●●●●

●●●

●●

●●●●●●●

●●●●●

●●●

●●●●

●●●●●●●●●

●●●

●●●●●

●●●

●●●●●●●

●●●

●●●

●●

●●●●●

●●

●●●●

●●●●●●

●●●●

●●

●●

●●●●●

●●

●●

●●●●●

●●

●●●●

●●●

●●●●●●●

●●

●●●

●●

●●●●●●

●●●

● ●●●

●●

●●●●

●●

●●

●●●

●●●●●●●●●●●●●●●

●●●●

●●●●●

●●

●●

●●

●●●●

●●●●●●●●

●●

●●●●

●●

●●

●●●●●●

●●●●

●●●●●●●●

●●

●●

●●●●●

●●●●●

●●

●●

●●●●

●●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●●

●●●●

●●

●●●

●●

●●

●●●●

●●●

●●●

●●

●●●●

●●

●●

●●

●●●

●●●●

●●

●●

●●

●●

●●

●●●●●●

●●●

●●

●●

●●

●●●

●●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●●●●

●●

●●

●●

●●●

●●●

●●

●●

●●

●●

●●

●●

●●●●

●●

●●

●●●

●●

●●●

●●●●

●●●

●●●

●●●●●●●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●●

●●

●●●●●

●●●●

●●

●●

●●

●●

●●

●●●●

●●

●●

●●

●●●

●●

●●●●

●●

●●●

●●

●●

●●●

●●

●●●●

●●

●●

●●

●●●

●●

●●●●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●●

●●●●●

●●

●●

●●●●

●●●

●●

●●●●●●●

●●

●●●●

●●

●●

●●●●●

●●

●●

●●

●●

●●

●●●●●●●●●●●●●●●●●● ●

●●●●●●●●●● ●●●●●●●●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●● ●●●●

●● ●●●●●●●●

●●●●●●●●

●●●

●●●

●●●

●●●

●●

●●●●●●●●●●●●●●

●●

●●●●●

●●●

●●●

●●●●●

●●

●●

●●●●

●●●

●●

●●

●●

●●●●●

●●

●●●

●●

●●

●●●

●●●●●●●

●●

●●●

●●

●●●

●●●

●●

●●

●●

●●

●●●

●●●

●●●

●●●

●●●

●●

●●●

●●●●

●●●

●●

●●

●●

●●●●

●●

●●

●●

●●

●●●

●●●●●

●●

●●

●●

●●

●●●●●

●●●

●●

●●●

●●

●●●

●●●

●●●●●●

●●●●●

●●●●

●●●

●●

●●

●●●●●

●●

●●

●●●

●●

●●●●

●●●

●●

●●

●●●●

●●●

●●

●●

●●●●

●●●

●●

●●

●●●●●●

●●

●●

●●

●●

●●

●●●

●●

●●●●●

●●

●●

●●

●●●●●●●●●●

●●●●●●

●●●

●●●●●●●●● ●●●●●●●●

●●●

●●●●

●●●●

●●●●●●

●●●●●●●●●●

●●●●●●●●●●

●●●●●●

●●●●●●●●●●

●●●●●●●

●●●●●●●●●●●●

●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●

●●●●●●●●●

●●●

●●

●●●●●●●

●●●●●●

●●

●●●●●●●●●●

●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●

●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●

●●●

●●●

●●●●

●●●

●●●●

●●

●●

●●

●●

●●●

●●●●

●●

●●

●●●●●

●●

●●●

●●

●●

●●

●●●●●●

●●

●●

●●●

●●●●

●●●●●●

●●

●●

●●●

●●●

●●

●●

●●●

●●

●●●

●●

●●●●●●●●

●●●

●●●

●●●

●●

●●

●●

●●

●●●●●

●●

●●●

●●●●

●●

●●

●●

●●

●●●

●●

●●●●●●

●●

●●

●●●●●

●●●●

●●

●●

●●●

●●

●●●

●●●

●●●

●●

●●

●●●●●

●●●

●●

●●●

●●●●●

●●●●●

●●●●●●●

●●●●●

●●●

●●●●●●

●●

●●●

●●●●●

●●●●●●●●●

●●●

●●

●●●●

●●●●●

●●

●●●

●●

●●

●●●●●●●

●●●●●●●●●●●

●●

●●●●

●●

●●●

●●

●●●●●

●●●

●●●●●●

●●●

●●●

●●●●●●●●

●●●●●●

●●●●●

●●●

●●●●●●●●●●●●●●●

●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●

●●●

●●●●●●●

●●●●●

●●●

●●●●●

●●●●●●●●

●●●

●●

●●●●●●●●●●●●

●●●●●

●●●

●●●

●●●●●●●

●●●●●●●●●●

●●●●●●●●

●●●

●●●●●●●●

●●●●

●●●

Dijkstra Rank

Que

ry T

ime

[ms]

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

0.01

0.1

13

1010

010

0010

000

DijkstraArc−Flags (128 regions)bidirectional Arc−Flags (128 regions)

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 78: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Lokale Anfragen Arc-Flags I

●●●●

●●●●●●●

●●●●●●●

●●●●●●●●

●●●●●

●●●●●●●●●●

●●●

●●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●

●●

●●●

●●●●●●●●●●●

●●●●

●●

● ●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●

●●●●

●●●●●●

●●●●●●●●●●●●●●

●●●●●●

●●●●●●●

●●●●●●●●●●●●●●●

●●●●●●●

●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●

●●●●●●●●●●

●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●

●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●

●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●

●●●●●

●●●●●

●●●●●

●●●● ●●●●●●●●●

●●●●●●●●

●●

●●●

●●●●●●●● ●●●●●●●●

●●●●

●●●●●●●●●●

●●●●●

●●●●●●●

●●●●●●●●●●●

●●●●●●

●●●●●●●●●●●●

●●●●●●●● ●●●●●●●●●●

●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●

●●●●●●●

●●●●●●●●●●●●●●●●●●●●

●●

●●

●●

●●●

●●

●●

●●●

●●●●

●●

●●●

●●

●●●●●●●●

●●●●

●●

●●

●●●●

●●●●●●●●

●●

●●

●●

●●●●●●●

●●●●●●

●●

●●

●●●

●●

●●●

●●●●

●●

●●●●●●●

●●

●●●●●

●●●

●●●●

●●●●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●

●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●

●●●●●●●●●●●●●

●●●

●●

●●●

●●

●●

●●●

●●

●●

●●●●

●●

●●

●●

●●

●●●

●●

●●●●●●

●●

●●●●●●●

●●

●●

●●●

●●●●

●●●

●●

●●●●●

●●●●●●

●●

●●●

●●●

●●

●●●●

●●●●●

●●●●

●●

●●●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●●●

●●●

●●●

●●●

●●

●●

●●●●●

●●●

●●●●

●●●●

●●

●●●

●●●

●●●

●●

●●

●●●●●●●

●●

●●

●●

●●

●●

●●●●●●●

●● ●

●●

●●

●●●

●●●●

●●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●●

●●●

●●

●●

●●●

●●

●●●

●●

●●

●●●

●●●●

●●

●●

●●

●●●●

●●

●●

●●●

●●

●●

●●●

●●●●●

●●●

●●●

●●●●●●

●●●

●●●

●●

●●●●●●●

●●●

●●●●

●●●●

●●

●●●●●●

●●

●●●●●●●

●●

●●●

●●●

●●●

●●●

●●

●●●●●●●●●●●●●●

●●

●●●●●

●●●

●●●

●●●●●

●●

●●

●●●●

●●●

●●

●●

●●

●●●●●

●●

●●●

●●

●●

●●●

●●●●●●●

●●

●●●

●●

●●●

●●●

●●

●●

●●

●●

●●●

●●●

●●●

●●●

●●●

●●

●●●

●●●●

●●●

●●

●●

●●

●●●●

●●

●●

●●

●●

●●●

●●●●●

●●

●●

●●

●●

●●●●●

●●●

●●

●●●

●●

●●●

●●●

●●●●●●

●●●●●

●●●●

●●●

●●

●●

●●●●●

●●

●●

●●●

●●

●●●●

●●●

●●

●●

●●●●

●●●

●●

●●

●●●●

●●●

●●

●●

●●●●●●

●●

●●

●●

●●

●●

●●●

●●

●●●●●

●●

●●

●●

●●●●●●●●●●

●●●●●●

●●●

●●●●●●●●● ●●●●●●●●

●●●

●●●●

●●●●

●●●●●●

●●●●●●●●●●

●●●●●●●●●●

●●●●●●

●●●●●●●●●●

●●●●●●●

●●●●●●●●●●●●

●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●

●●●●●●●●●

●●●

●●

●●●●●●●

●●●●●●

●●

●●●●●●●●●●

●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●

●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●

●●●

●●●

●●●●

●●●

●●●●

●●

●●

●●

●●

●●●

●●●●

●●

●●

●●●●●

●●

●●●

●●

●●

●●

●●●●●●

●●

●●

●●●

●●●●

●●●●●●

●●

●●

●●●

●●●

●●

●●

●●●

●●

●●●

●●

●●●●●●●●

●●●

●●●

●●●

●●

●●

●●

●●

●●●●●

●●

●●●

●●●●

●●

●●

●●

●●

●●●

●●

●●●●●●

●●

●●

●●●●●

●●●●

●●

●●

●●●

●●

●●●

●●●

●●●

●●

●●

●●●●●

●●●

●●

●●●

●●●●●

●●●●●

●●●●●●●

●●●●●

●●●

●●●●●●

●●

●●●

●●●●●

●●●●●●●●●

●●●

●●

●●●●

●●●●●

●●

●●●

●●

●●

●●●●●●●

●●●●●●●●●●●

●●

●●●●

●●

●●●

●●

●●●●●

●●●

●●●●●●

●●●

●●●

●●●●●●●●

●●●●●●

●●●●●

●●●

●●●●●●●●●●●●●●●

●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●

●●●

●●●●●●●

●●●●●

●●●

●●●●●

●●●●●●●●

●●●

●●

●●●●●●●●●●●●

●●●●●

●●●

●●●

●●●●●●●

●●●●●●●●●●

●●●●●●●●

●●●

●●●●●●●●

●●●●

●●●

Dijkstra Rank

Que

ry T

ime

[ms]

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

0.01

0.1

13

1010

010

0010

000

bidirectional Dijkstrabidirectional Arc−Flags (16 regions)bidirectional Arc−Flags (128 regions)

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 79: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Beobachtungen

birektionale Arc-Flags deutlich schneller als unidirektionale

gegenüber Dijkstra nur Beschleunigung für weite Anfragen

128 Regionen deutlich besser 16 (bei 224 nahezu gleich auf)

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 80: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Flaggenkompression(Multi-Level, unidirektional)

0e+00 2e+05 4e+05 6e+05 8e+05

0.5

1.0

1.5

2.0

2.5

3.0

3.5

4.0

#Entfernte Flags

Lauf

zeit

Europagraph, Kostenfkt., Häufigkeitsfakt. 0,5

0.518118

3.90533

−−−

1_2_4_8_16_321_2_4_8_32_641_2_4_8_64_128

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 81: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Beobachtungen

kaum Verlust bis zu 60% entfernte Flaggen

geringer Verlust bis zu 80% entfernte Flaggen

kippen von niedrig-leveligen Flaggen billiger

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 82: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Übersicht: bisherige Techniken

Vorberechnung Anfrage

Zeit Platz Such Zeit[h:m] [byte/n] raum [ms] Beschl.

Dijkstra 0:00 0 9 114 385 5 591.6 1.0Bi-Dijkstra 0:00 0 4 764 110 2 713.2 2.1Uni-ALT-16 1:25 128 815 639 327.6 17.1Uni-ALT-64 1:08 512 604 968 288.5 19.4Bi-ALT-16 1:25 128 74 669 53.6 104.3Bi-ALT-64 1:08 512 25 324 19.6 285.3Uni Arc-Flags (128) 8:34 20 92 545 31.9 175.3Bi Arc-Flags (128) 17:08 10 2 764 0.8 6 988.1

Beobachtung:

ALT: deutlich unterlegen bei Anfragen und Platzverbrauch

Arc-Flags: deutlich längere Vorberechnungszeiten

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 83: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Lokale Anfragen Vergleich

●●●●

●●●●●●●

●●●●●●●

●●●●●●●●

●●●●●

●●●●●●●●●●

●●●

●●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●

●●

●●●

●●●●●●●●●●●

●●●●

●●

● ●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●

●●●●

●●●●●●

●●●●●●●●●●●●●●

●●●●●●

●●●●●●●

●●●●●●●●●●●●●●●

●●●●●●●

●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●

●●●●●●●●●●

●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●

●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●

●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●

●●●●

●●

●●●●●●

●●●●●●●●●●●●●●●●

●●●●●●●●●●●●

●●●●

●●● ●●

●●●●●●●●●●●●●●●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●

●●●●●

●●●●●●●●●●

●●

●●●●●●

●●●●●●●●●●

●●●●●●●

●●●●●●●●●●

●●●●●●●●●●●●●●●

●●●

●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●

●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●

●●●●●●●

●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●

●●

●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●

●●●●●●●●●●

●●●●

●●●●●●●●●●●

●●●●●●●●●

●●●●●●●●

●●●●●●●●●●●

●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●● ●

●●●●●●

●●●●●●●●●●●●

●●●●●●●●

●●●

●●●●●●●●

●●●●●●●●

●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●

●●●●●●●●●●●●

●●●●●●●●●●

●●●

●●●●●

●●●●

●●

●●

●●●●●

●●●●

●●●●●●●●●●

●●●●

●●●●●●●●●●●●●

●●●●●●●

●●

●●

●●●●

●●●

●●●●●

●●●●●●●

●●●●●●

●●●●

●●●●●

●●●●●●●●●●●●●●●

●●

●●●●●●

●●●

●●

●●

●●●●

●●

●●●●●●

●●●●●●●●●

●●●●●●●●●●●●●●●

●●

●●●●

●●

●●●

●●●●●●●

●●

●●●●●

●●●●●●

●●●●●

●●●●

●●

●●

●●●

●●●

●●

●●

●●

●●

●●●

●●●●

●●●●●

●●●●

●●

●●●●●●●●●

●●

●●●●●●●●●●●●●

●●

●●

●●

●●●●●●●

●●

●●●●●

●●

●●

●●●●●●

●●●●●

●●

●●●●●●●●

●●●

●●●●●●●●●

●●●

●●●●

●●●●●●●●●●

●●●●

●●●●●●●

●●●●●

●●

●●●●

●●●

●●

●●●

●●●●

●●●●●●

●●

●●●●●●

●●

●●

●●

●●●

●●●●●●●●

●●●●●

●●●●●

●●●●●●

●●

●●

●●

●●●●●●

●●●●●

●●●

●●●●

●●

●●●●●●●●

●●●

●●

●●●

●●●●●●

●●●●●●●●●●●●●●

●●●●●●●

●●

●●

●●

●●●

●●●●●●

●●●●●

●●●●●●●

●●●●

●●

●●●

●●●

●●●●

●●●●●

●●

●●

●●●

●●●

●●●

●●●

●●●

●●

●●●●

●●●

●●●●

●●

●●

●●●

●●●

●●●

●●

●●●●

●●

●●●●●●●●●

●●●●●●●●●●●●●●

●●

●●

●●

●●●●●●●●●

●●●

●●●●●●

●●

●●

●●●●●●●

●●●●●●

●●

●●●●●●●●

●●

●●●

●●●

●●●

●●●

●●

●●●●●●●●●●●●●●

●●

●●●●●

●●●

●●●

●●●●●

●●

●●

●●●●

●●●

●●

●●

●●

●●●●●

●●

●●●

●●

●●

●●●

●●●●●●●

●●

●●●

●●

●●●

●●●

●●

●●

●●

●●

●●●

●●●

●●●

●●●

●●●

●●

●●●

●●●●

●●●

●●

●●

●●

●●●●

●●

●●

●●

●●

●●●

●●●●●

●●

●●

●●

●●

●●●●●

●●●

●●

●●●

●●

●●●

●●●

●●●●●●

●●●●●

●●●●

●●●

●●

●●

●●●●●

●●

●●

●●●

●●

●●●●

●●●

●●

●●

●●●●

●●●

●●

●●

●●●●

●●●

●●

●●

●●●●●●

●●

●●

●●

●●

●●

●●●

●●

●●●●●

●●

●●

●●

●●●●●●●●●●

●●●●●●

●●●

●●●●●●●●● ●●●●●●●●

●●●

●●●●

●●●●

●●●●●●

●●●●●●●●●●

●●●●●●●●●●

●●●●●●

●●●●●●●●●●

●●●●●●●

●●●●●●●●●●●●

●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●

●●●●●●●●●

●●●

●●

●●●●●●●

●●●●●●

●●

●●●●●●●●●●

●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●

●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●

●●●

●●●

●●●●

●●●

●●●●

●●

●●

●●

●●

●●●

●●●●

●●

●●

●●●●●

●●

●●●

●●

●●

●●

●●●●●●

●●

●●

●●●

●●●●

●●●●●●

●●

●●

●●●

●●●

●●

●●

●●●

●●

●●●

●●

●●●●●●●●

●●●

●●●

●●●

●●

●●

●●

●●

●●●●●

●●

●●●

●●●●

●●

●●

●●

●●

●●●

●●

●●●●●●

●●

●●

●●●●●

●●●●

●●

●●

●●●

●●

●●●

●●●

●●●

●●

●●

●●●●●

●●●

●●

●●●

●●●●●

●●●●●

●●●●●●●

●●●●●

●●●

●●●●●●

●●

●●●

●●●●●

●●●●●●●●●

●●●

●●

●●●●

●●●●●

●●

●●●

●●

●●

●●●●●●●

●●●●●●●●●●●

●●

●●●●

●●

●●●

●●

●●●●●

●●●

●●●●●●

●●●

●●●

●●●●●●●●

●●●●●●

●●●●●

●●●

●●●●●●●●●●●●●●●

●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●

●●●

●●●●●●●

●●●●●

●●●

●●●●●

●●●●●●●●

●●●

●●

●●●●●●●●●●●●

●●●●●

●●●

●●●

●●●●●●●

●●●●●●●●●●

●●●●●●●●

●●●

●●●●●●●●

●●●●

●●●

Dijkstra Rank

Que

ry T

ime

[ms]

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

0.01

0.1

13

1010

010

0010

000

bidirectional Dijkstrabidirectional ALTbidirectional Arc−Flags (128 regions)

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 84: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Zusammenfassung

Geometrische Container

speichere pro Kante einen Container ab

beinhaltet alle Knoten, die über diese Kante erreicht werdenkönnen

einfacher Anfrage-Algorithmus

Vorberechung basiert auf Dijkstra-Bäumen

Beschleunigung von ca. 40

Vorberechnung basiert auf APSP

knapp 500 Jahre Vorberechnung für Europa

nicht praktikabel

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 85: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Zusammenfassung

Arc-Flags

Teile Graphen in k Regionen

Flaggen zeigen an, ob Kante wichtig für Zielregion ist

Einfacher Anfrage-AlgorithmusVorberechnung

Kürzeste-Wege-Baum von jedem RandknotenManche Flaggen können automatisch gesetzt werden

Bidirektional und multi-level Erweiterungen

Beschleunigung von bis zu 7000

Nahe Anfragen nicht schneller als Dijkstra

Vorberechnung dauert allerdings immer noch ca. 1 Tag

Seit kurzem extrem schnelle Vorberechung für Straßennetzwerke

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011

Page 86: Algorithmen für Routenplanung - KIT - ITI Algorithmik...Mai 2011 s t Beobachtung: Subwege von kürzesten Wegen sind auch kürzeste Wege nicht jede Kante ist wichtig für ein bestimmtes

Ende

Literatur (Geometrische Container, Arc-Flags):

Dorothea Wagner and Thomas Willhalm and Christos Zaroliagis:Geometric Containers for Ef�cient Shortest-PathComputationIn: ACM Journal of Experimental Algorithmics, 2005 article 1.3.

Moritz Hilger and Ekkehard Köhler and Rolf H. Möhring andHeiko Schilling:Fast Point-to-Point Shortest Path Computations withArc-FlagsIn: Shortest Paths: Ninth DIMACS Implementation Challenge,2009

Reinhard Bauer � Algorithmen für Routenplanung 2. Mai 2011