Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für...

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

Transcript of Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für...

Page 1: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

www.kit.eduKIT – Universität des Landes Baden-Württemberg undnationales Großforschungszentrum in der Helmholtz-Gemeinschaft

Thomas Pajor | 12. April 2010

1. Sitzung, Sommersemester 2010

Algorithmen für Routenplanung

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

Page 2: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Organisatorisches

VorlesungThomas PajorMontags 14:00–15:30 Uhr, SR 301 (hier)E-Mail: [email protected]: Kommt einfach vorbei (Raum 322)

Übungist in Vorlesung integriertBesprechung mancher Aufgaben

Vorlesungsseite:http://i11www.iti.uni-karlsruhe.de/teaching/sommer2010/routenplanung/index

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 3: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Vorläufige Termine

Woche Tag Datum Woche Tag Datum1 Montag 12. April 9 Montag 7. Juni2 — — 10 Montag 14. Juni3 Montag 26. April 11 Freitag 25. Juni3 Freitag 30. April 12 Montag 28. Juni4 Montag 3. Mai 13 Montag 5. Juli5 Montag 10. Mai 13 Freitag 9. Juli6 Montag 17. Mai 14 — —7 Freitag 28. Mai8 Montag 31. Mai

Siehe auch Vorlesungswebseite!

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 4: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Weitere Vorlesungen

Algorithmen für planare GraphenDozenten: Robert Görke und Ignaz RutterVorlesung: dienstags 14:00–15:30 Uhr (SR 301)Übung (14-tg): mittwochs 15:45–17:15 Uhr (SR 131)

Algorithmische SpieltheorieDozent: Priv. Doz. Dr. Rob van SteeVorlesung: dienstags 11:30–13:00 (SR -120)

Approximations- und Online-AlgorithmenDozent: Priv. Doz. Dr. Rob van SteeVorlesung: mittwochs 11:30–13:00 Uhr (SR 301)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 5: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Weitere Veranstaltungen

Seminar: Proofs from The BookBetreuer:

Priv. Doz. Rob van SteeMarkus KrugIgnaz Rutter

Termin:mittwochs 9:45–11:15 Uhr, SR 301Vorbesprechung:14. April, 9:45 Uhr, SR 301

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 6: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

0. MotivationWorum geht es bei der Routenplanung?

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 7: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Problemstellung

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Gesucht:finde die beste Verbindung in einemTransportnetzwerk

Idee:Netzwerk als Graphen G = (V , E)

Kantengewichte sind Reisezeitenkürzeste Wege in G entsprechenschnellsten Verbindungenklassisches Problem (Dijkstra)

Probleme:Transportnetzwerke sind großDijkstra zu langsam (> 1 Sekunde)

Page 8: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Problemstellung

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Gesucht:finde die beste Verbindung in einemTransportnetzwerk

Idee:Netzwerk als Graphen G = (V , E)

Kantengewichte sind Reisezeitenkürzeste Wege in G entsprechenschnellsten Verbindungenklassisches Problem (Dijkstra)

Probleme:Transportnetzwerke sind großDijkstra zu langsam (> 1 Sekunde)

Page 9: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Problemstellung

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Gesucht:finde die beste Verbindung in einemTransportnetzwerk

Idee:Netzwerk als Graphen G = (V , E)

Kantengewichte sind Reisezeitenkürzeste Wege in G entsprechenschnellsten Verbindungenklassisches Problem (Dijkstra)

Probleme:Transportnetzwerke sind großDijkstra zu langsam (> 1 Sekunde)

Page 10: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beschleunigungstechniken

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Beobachtungen:viele Anfragen in (statischem) Netzwerkmanche Berechnungen scheinen unnötig

Idee:Zwei-Phasen Algorithmus:

offline: berechne Zusatzinformationwährend Vorberechnungonline: beschleunige Berechung mitdiesen Zusatzinformationen

drei Kriterien:wenig Zusatzinformation O(n)kurze Vorberechnung (im BereichStunden/Minuten)hohe Beschleunigung

Page 11: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beschleunigungstechniken

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Beobachtungen:viele Anfragen in (statischem) Netzwerkmanche Berechnungen scheinen unnötig

Idee:Zwei-Phasen Algorithmus:

offline: berechne Zusatzinformationwährend Vorberechnungonline: beschleunige Berechung mitdiesen Zusatzinformationen

drei Kriterien:wenig Zusatzinformation O(n)kurze Vorberechnung (im BereichStunden/Minuten)hohe Beschleunigung

Page 12: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beschleunigungstechniken

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Beobachtungen:viele Anfragen in (statischem) Netzwerkmanche Berechnungen scheinen unnötig

Idee:Zwei-Phasen Algorithmus:

offline: berechne Zusatzinformationwährend Vorberechnungonline: beschleunige Berechung mitdiesen Zusatzinformationen

drei Kriterien:wenig Zusatzinformation O(n)kurze Vorberechnung (im BereichStunden/Minuten)hohe Beschleunigung

Page 13: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Unterschiede zur IndustrieIndustrie:

Falk, TomTom, bahn.de, usw.alles heuristische Verfahren

betrachte nur noch “wichtige” Kantenwenn mehr als x Kilometer von Start wegKombination mit A∗-Suchelangsam!

Ausnahme: Google Maps

Unser Anspruch:Anfragen sollen beweisbar korrekt sein

⇒ weniger Ausnahmeregelungen⇒ schneller (!)

Verfahren sollen nach und nach in der Industrie eingesetztwerden

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 14: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Ergebnisse

Eingabe: Straßennetzwerk von Westeuropa18 Mio. Knoten42 Mio. Kanten

VORBERECHNUNG ANFRAGE

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

Dijkstra 1959∗ 0:00 0 5 153.0000 0Arc-Flags 2004 17:08 19 1.6000 3 221Highway Hierarchies 2005 0:13 48 0.6100 8 448Transit-Node Routing 2006 1:15 226 0.0043 1.2 Mio.Contraction Hier. 2008 0:29 0 0.1900 27 121CH + Arc-Flags 2008 1:39 12 0.0170 ca. 300 000TNR + AF 2008 3:49 312 0.0019 ca. 3 Mio.

∗ Damalige Variante deutlich langsamer, wir sehen nachher, warum

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 15: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

SchwerpunkteVorlesung

Algorithm Engineering + ein bisschen TheorieBeschleunigungstechnikenImplementierungsdetailsErgebnisse auf Real-Welt Datenaktueller Stand der Forschung (Veröffentlichungen bis 2010)Ansatz übertragbar auf andere Themen (z. B. Flüsse)ideale Grundlage für Studien- und Diplomarbeiten

Übungen:Vertiefende theoretische AufgabenImplementation von (kleinen!) Teilproblemenbestehendes FrameworkStraßendaten von NordamerikaImplementation hilft beim Verständnisaber nicht zwingend nötig für die Vorlesung und Prüfung

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 16: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Was diese Vorlesung nicht ist

keine Algorithmentechnik 2Vertiefung von kürzesten Wegen (Dijkstra)

Grundlagen sind Stoff von Info 2/Algotech;heute nochmal Crashkurs

Grundvorlesung “vereinfachen” Wahrheit oftImplementierungBetonung auf Messergebnisse

keine reine Theorievorlesungrelativ wenig Beweise (wenn doch, eher kurz)reale Leistung vor Asymptotikhinter vielen Optimierungsproblemen stehen NP-schwereProbleme

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 17: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Inhalt der Vorlesung

1. GrundlagenAlgorithm EngineeringGraphen, Modelle, usw.Kürzeste WegeDijkstra’s Algorithmus

2. Beschleunigung von (statischen) Punkt-zu-Punkt Anfragenzielgerichtete Verfahrenhierarchische Technikenmany-to-many-Anfragen und DistanztabellenKombinationen

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 18: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Inhalt der Vorlesung

3. TheorieKomplexität von Beschleunigungstechnikentheoretische Charakterisierung von StraßennetzwerkenOptimalität von BeschleunigungstechnikenStraßengraphengeneratoren (evtl.)

4. Fortgeschrittene Szenarienzeitabhängige RoutenplanungAlternativroutenmulti-modale Routenplanungdynamische Szenarien (evtl.)

5. Offene Probleme

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 19: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Nützliche Vorkenntnisse

Informatik I/II oder Algorithmen IAlgorithmentechnik oder Algorithmen II (muss aber nicht sein)ein bisschen Rechnerarchitekturpassive Kenntnisse von C++/Java

Vertiefungsgebiet: Algorithmentechnik, (Theoretische Grundlagen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 20: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Material

FolienÜbungsblätterwissenschaftliche Aufsätze (siehe Vorlesunghomepage)Basiskenntnisse:

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 21: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

1. Grundlagen

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 22: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Klassischer Ansatz

problem

algorithm

asymptoticbounds

implementationexperiments

theoreticalapplied

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 23: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Lücke Theorie vs. Praxis

Theorie vs. Praxiseinfach Problem-Modell komplexeinfach Maschinenmodell komplexkomplex Algorithmen einfachfortgeschritten Datenstrukturen einfachworst-case Komplexitäts-Messung typische Eingabenasymptotisch Effizienz konstante Faktoren

hier:sehr anwendungsnahes GebietEingaben sind echte Daten

StraßengraphenEisenbahn (Fahrpläne)Flugpläne

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 24: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Lücke Theorie vs. Praxis

Theorie vs. Praxiseinfach Problem-Modell komplexeinfach Maschinenmodell komplexkomplex Algorithmen einfachfortgeschritten Datenstrukturen einfachworst-case Komplexitäts-Messung typische Eingabenasymptotisch Effizienz konstante Faktoren

hier:sehr anwendungsnahes GebietEingaben sind echte Daten

StraßengraphenEisenbahn (Fahrpläne)Flugpläne

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 25: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Algorithm Engineering

realisticmodels

design

implementation

librariesalgorithm−

perf.−guarantees

app

lication

sdeduction

falsifiable

inductionhypothesesanalysis experiments

algorithmengineering real

Inputs

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 26: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Grundbegriffe: Graphen

Graph: Tupel G := (V , E)

endliche Knotenmenge Vendliche Kantenmenge En := |V |, m := |E |

ungerichtet: Kanten sind Knotenpaar, d.h.E ⊆

(V2

)={{u, v} | u 6= v , u, v ∈ V

}Grad: deg(u) =

P{u,v}∈E

gerichtet: Kanten sind geordnete Paare, d.h.E ⊆

{(u, v) | u 6= v , u, v ∈ V

}Ausgangsgrad: degout(u) =

P(u,v)∈E

Eingangsgrad: degin(u) =P

(v,u)∈E

einfach: keine Multi-Kanten (E ist normale Menge)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 27: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Grundbegriffe: Graphen

Graph: Tupel G := (V , E)

endliche Knotenmenge Vendliche Kantenmenge En := |V |, m := |E |

ungerichtet: Kanten sind Knotenpaar, d.h.E ⊆

(V2

)={{u, v} | u 6= v , u, v ∈ V

}Grad: deg(u) =

P{u,v}∈E

gerichtet: Kanten sind geordnete Paare, d.h.E ⊆

{(u, v) | u 6= v , u, v ∈ V

}Ausgangsgrad: degout(u) =

P(u,v)∈E

Eingangsgrad: degin(u) =P

(v,u)∈E

einfach: keine Multi-Kanten (E ist normale Menge)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 28: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Grundbegriffe: Graphen

gewichtet: Kantengewichtsfunktionerstmal len : E → R

+

dünn: m ∈ O(n)

planar: kreuzungsfrei einbettbar

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

23

11 5

212 3

Page 29: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Grundbegriffe: Graphen

gewichtet: Kantengewichtsfunktionerstmal len : E → R

+

dünn: m ∈ O(n)

planar: kreuzungsfrei einbettbar

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

23

11 5

212 3

Page 30: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Grundbegriffe: Graphen

gewichtet: Kantengewichtsfunktionerstmal len : E → R

+

dünn: m ∈ O(n)

planar: kreuzungsfrei einbettbar

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

23

11 5

212 3

Page 31: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Spezielle Graphen

DAG:directed acyclic graphzyklenfrei

Baum:zyklenfreim = n − 1also dünn

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 32: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Spezielle Graphen

DAG:directed acyclic graphzyklenfrei

Baum:zyklenfreim = n − 1also dünn

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 33: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Wege und DistanzenWeg:Zu gegebenen Knoten s, t ∈ V ist P := (v1 = s, v2, . . . , vk = t) eins-t-Weg, g. d. w. für alle vi , vi+1 ∈ P gilt (vi , vi+1) ∈ E .

Länge:Die Länge eines Weges P ist |P| :=

∑(vi ,vi+1)∈P len(vi , vi+1).

kürzester Weg:Der kürzeste s-t-Weg Π(s, t) ist ein s-t-Weg P := (s, . . . , t) mitminimaler Länge |P|.Distanz:Die Distanz d(s, t) für zwei Knoten s, t ∈ V ist definiert als

d(s, t) =

{|Π(s, t)| wenn ∃Weg von s nach t in G∞ sonst

d ist symmetrisch in ungerichteten, und i. A. nicht symmetrisch ingerichteten Graphen.

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 34: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Wege und DistanzenWeg:Zu gegebenen Knoten s, t ∈ V ist P := (v1 = s, v2, . . . , vk = t) eins-t-Weg, g. d. w. für alle vi , vi+1 ∈ P gilt (vi , vi+1) ∈ E .

Länge:Die Länge eines Weges P ist |P| :=

∑(vi ,vi+1)∈P len(vi , vi+1).

kürzester Weg:Der kürzeste s-t-Weg Π(s, t) ist ein s-t-Weg P := (s, . . . , t) mitminimaler Länge |P|.Distanz:Die Distanz d(s, t) für zwei Knoten s, t ∈ V ist definiert als

d(s, t) =

{|Π(s, t)| wenn ∃Weg von s nach t in G∞ sonst

d ist symmetrisch in ungerichteten, und i. A. nicht symmetrisch ingerichteten Graphen.

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 35: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Wege und DistanzenWeg:Zu gegebenen Knoten s, t ∈ V ist P := (v1 = s, v2, . . . , vk = t) eins-t-Weg, g. d. w. für alle vi , vi+1 ∈ P gilt (vi , vi+1) ∈ E .

Länge:Die Länge eines Weges P ist |P| :=

∑(vi ,vi+1)∈P len(vi , vi+1).

kürzester Weg:Der kürzeste s-t-Weg Π(s, t) ist ein s-t-Weg P := (s, . . . , t) mitminimaler Länge |P|.Distanz:Die Distanz d(s, t) für zwei Knoten s, t ∈ V ist definiert als

d(s, t) =

{|Π(s, t)| wenn ∃Weg von s nach t in G∞ sonst

d ist symmetrisch in ungerichteten, und i. A. nicht symmetrisch ingerichteten Graphen.

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 36: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Wege und DistanzenWeg:Zu gegebenen Knoten s, t ∈ V ist P := (v1 = s, v2, . . . , vk = t) eins-t-Weg, g. d. w. für alle vi , vi+1 ∈ P gilt (vi , vi+1) ∈ E .

Länge:Die Länge eines Weges P ist |P| :=

∑(vi ,vi+1)∈P len(vi , vi+1).

kürzester Weg:Der kürzeste s-t-Weg Π(s, t) ist ein s-t-Weg P := (s, . . . , t) mitminimaler Länge |P|.Distanz:Die Distanz d(s, t) für zwei Knoten s, t ∈ V ist definiert als

d(s, t) =

{|Π(s, t)| wenn ∃Weg von s nach t in G∞ sonst

d ist symmetrisch in ungerichteten, und i. A. nicht symmetrisch ingerichteten Graphen.

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 37: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Graph-Repräsentationen

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Drei klassische Ansätze:AdjazenzmatrixAdjazenzlistenAdjazenzarray

2

3 11

1

2

0

1 2

3

Page 38: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Graph-Repräsentationen

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

1

2

3

3

1

1 1

2

20

0 1 2 3

−−−−

−− −− −−

Drei klassische Ansätze:AdjazenzmatrixAdjazenzlistenAdjazenzarray

2

3 11

1

2

0

1 2

3

Page 39: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Graph-Repräsentationen

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

0 1 2 3

1

3

2 3 0

2

3 1 1

1

2

2

Drei klassische Ansätze:AdjazenzmatrixAdjazenzlistenAdjazenzarray

2

3 11

1

2

0

1 2

3

Page 40: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Graph-Repräsentationen

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

firstEdge

targetNode

weight

0

1

3

3

2

2

2

3

1

2

1

0

1

2 3 4 6

Drei klassische Ansätze:AdjazenzmatrixAdjazenzlistenAdjazenzarray

2

3 11

1

2

0

1 2

3

Page 41: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Was brauchen wir?

Eigenschaften: Matrix Liste ArraySpeicher O(n2) O(n + m) O(n + m)Ausgehende Kanten iterieren O(n) O(deg u) O(deg u)Kantenzugriff (u, v) O(1) O(deg u) O(deg u)

Effizienz + − +Updates (topologisch) + + −Updates (Gewicht) + + +

Fragen:Was brauchen wir?Was muss nich supereffizient sein?erstmal Modelle anschauen!

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 42: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Was brauchen wir?

Eigenschaften: Matrix Liste ArraySpeicher O(n2) O(n + m) O(n + m)Ausgehende Kanten iterieren O(n) O(deg u) O(deg u)Kantenzugriff (u, v) O(1) O(deg u) O(deg u)

Effizienz + − +Updates (topologisch) + + −Updates (Gewicht) + + +

Fragen:Was brauchen wir?Was muss nich supereffizient sein?erstmal Modelle anschauen!

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 43: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Straßengraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 44: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Straßengraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 45: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Straßengraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Knoten sind KreuzungenKanten sind StraßenEinbahnstraßenMetrik ist Reisezeit

Page 46: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Straßengraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Knoten sind KreuzungenKanten sind StraßenEinbahnstraßenMetrik ist Reisezeit

Page 47: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Straßengraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Knoten sind KreuzungenKanten sind StraßenEinbahnstraßenMetrik ist Reisezeit

53

2

21

12

1

3

2

1

5

2

2

13

8

8

2

2

5

Page 48: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Straßengraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Eigenschaften (sammeln):

53

2

21

12

1

3

2

1

5

2

2

13

8

8

2

2

5

Page 49: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Straßengraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Eigenschaften:dünn(fast) ungerichtetgeringer KnotengradKantenzügeHierarchie (Autobahnen!) 53

2

21

12

1

3

2

1

5

2

2

13

8

8

2

2

5

Page 50: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Eisenbahngraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Eingabe:4 Stationen (A,B,C,D)Zug 1: Station A→ B→ C→ AZug 2: Station A→ B→ D→ C→ AZüge operieren alle 10 Minuten

Page 51: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Eisenbahngraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

A B D

C

Eingabe:4 Stationen (A,B,C,D)Zug 1: Station A→ B→ C→ AZug 2: Station A→ B→ D→ C→ AZüge operieren alle 10 Minuten

Page 52: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Eisenbahngraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

A B D

C

Eingabe:4 Stationen (A,B,C,D)Zug 1: Station A→ B→ C→ AZug 2: Station A→ B→ D→ C→ AZüge operieren alle 10 Minuten

Page 53: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Eisenbahngraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

A B D

C

Eingabe:4 Stationen (A,B,C,D)Zug 1: Station A→ B→ C→ AZug 2: Station A→ B→ D→ C→ AZüge operieren alle 10 Minuten

Page 54: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Eisenbahngraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Kanten sind zeitabhängig!

A B D

C

Eingabe:4 Stationen (A,B,C,D)Zug 1: Station A→ B→ C→ AZug 2: Station A→ B→ D→ C→ AZüge operieren alle 10 Minuten

Page 55: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Eisenbahngraphen)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

oder roll die Zeit ausKanten sind zeitabhängig!

A B D

C

Eingabe:4 Stationen (A,B,C,D)Zug 1: Station A→ B→ C→ AZug 2: Station A→ B→ D→ C→ AZüge operieren alle 10 Minuten

Page 56: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Zeitexpandiertes Modell

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Diskussion:+ keine zeitabhängigen Kanten− Graph größer

Station B:Vorgehen:Knoten sind “Events”KantenElementarverbindungenWartekanten an denStationen

Page 57: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Zeitexpandiertes Modell

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Diskussion:+ keine zeitabhängigen Kanten− Graph größer

Station B:Vorgehen:Knoten sind “Events”KantenElementarverbindungenWartekanten an denStationen

Page 58: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Problem der Modellierung

A B D

C

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Problem:

Page 59: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Problem der Modellierung

A B D

C

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Problem:Umstiegszeiten?

⇒ erweitere das Modell

Page 60: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Problem der Modellierung

A B D

C

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Problem:Umstiegszeiten?

⇒ erweitere das Modell

Page 61: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Modellierung (Flugdaten)

s

s

o

o

o

s

s

o

s o os

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 62: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Eigenschaften der Graphendünn (!)gerichtetgeringer Knotengradmeist verborgene Hierarchie (Autobahnen, ICE,Langstreckenflüge)Einbettung vorhanden (fast planar?)teilweise zeitabhängigKantengewichte nicht-negativzusammenhängend

Diskussion:berechnen beste Verbindungen in solchen Netzwerkenzeitabhängigkeit (war lange) ein Problemab jetzt: zeitunabhängige Netze (Straßen)später: zeitabhängig

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 63: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Eigenschaften der Graphendünn (!)gerichtetgeringer Knotengradmeist verborgene Hierarchie (Autobahnen, ICE,Langstreckenflüge)Einbettung vorhanden (fast planar?)teilweise zeitabhängigKantengewichte nicht-negativzusammenhängend

Diskussion:berechnen beste Verbindungen in solchen Netzwerkenzeitabhängigkeit (war lange) ein Problemab jetzt: zeitunabhängige Netze (Straßen)später: zeitabhängig

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 64: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Datenstruktur

Eigenschaften auf dünnen Graphen:Matrix Liste Array

Speicher O(n2) O(n + m) O(n + m)= O(n) = O(n)

Ausgehende Kanten iterieren O(n) O(deg u) O(deg u)Kantenzugriff (u, v) O(1) O(deg u) O(deg u)Effizienz + − +Updates (topologisch) + + −Updates (Gewicht) + + +

Also: Adjazenzarray!

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 65: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Datenstruktur

Eigenschaften auf dünnen Graphen:Matrix Liste Array

Speicher O(n2) O(n + m) O(n + m)= O(n) = O(n)

Ausgehende Kanten iterieren O(n) O(deg u) O(deg u)Kantenzugriff (u, v) O(1) O(deg u) O(deg u)Effizienz + − +Updates (topologisch) + + −Updates (Gewicht) + + +

Also: Adjazenzarray!

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 66: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Datenstruktur

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

2

3 11

1

2

0

1 2

3

Problem:ein- und ausgehende Kanten(fast) ungerichtet

Page 67: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Datenstruktur

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

firstEdge

targetNode

weight

isIncoming

isOutgoing

0 3 5 7 10

1

3

3 3

2 1

0 2 1 3 0 0 2

3 2 2 1 1 2 1

√ √√ √

√√√

√√

√√√− −

− −−−

−−

2

3 11

1

2

0

1 2

3

Problem:ein- und ausgehende Kanten(fast) ungerichtet

Page 68: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Kürzeste Wege

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Gegeben:Graph G = (V , E) mit positiver Kantenfunktionlen : E → R+, zwei Knoten s und t

Finde:Pfad P := (s, . . . , t) mit d(s, t) minimal

51

2 1

2

8

2

3

2

s

td(s,t) =1

Page 69: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Kürzeste Wege

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Gegeben:Graph G = (V , E) mit positiver Kantenfunktionlen : E → R+, zwei Knoten s und t

Finde:Pfad P := (s, . . . , t) mit d(s, t) minimal

51

2 1

2

8

2

3

2

s

9d(s,t) = ttd(s,t) =1

Page 70: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Kürzeste Wege

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Gegeben:Graph G = (V , E) mit positiver Kantenfunktionlen : E → R+, zwei Knoten s und t

Finde:Pfad P := (s, . . . , t) mit d(s, t) minimal

51

2 1

2

8

2

3

2

s

9d(s,t) = ttd(s,t) =1

Page 71: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Kürzeste Wege

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Gegeben:Graph G = (V , E) mit positiver Kantenfunktionlen : E → R+, zwei Knoten s und t

Finde:Pfad P := (s, . . . , t) mit d(s, t) minimal

51

2 1

2

8

2

3

2

s

7d(s,t) = ttd(s,t) =1

Page 72: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Eigenschaften von kürzesten Wegen

Beobachtungen:kürzeste Wege sind zyklenfreiSubpfade sind auch kürzeste Wegealle kürzesten Wege von s aus spanneneinen DAG bzw. Baum aufsteigender Abstand von Wurzel zu Blätternd(u, s) analog über “eingehende” Kantenkönnen mit Dijkstra berechnet werden

Anmerkungen:längste Wege: NP-schwernegative Kantengewichte, keine negative Zyklen: Bellmann-Fordnegative Kantengewichte, negative Zyklen: NP-schwer

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

51

2 1

2

8

2

3

2

s

1

Page 73: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Eigenschaften von kürzesten Wegen

Beobachtungen:kürzeste Wege sind zyklenfreiSubpfade sind auch kürzeste Wegealle kürzesten Wege von s aus spanneneinen DAG bzw. Baum aufsteigender Abstand von Wurzel zu Blätternd(u, s) analog über “eingehende” Kantenkönnen mit Dijkstra berechnet werden

Anmerkungen:längste Wege: NP-schwernegative Kantengewichte, keine negative Zyklen: Bellmann-Fordnegative Kantengewichte, negative Zyklen: NP-schwer

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

51

2 1

2

8

2

3

2

s

1

Page 74: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Eigenschaften von kürzesten Wegen

Beobachtungen:kürzeste Wege sind zyklenfreiSubpfade sind auch kürzeste Wegealle kürzesten Wege von s aus spanneneinen DAG bzw. Baum aufsteigender Abstand von Wurzel zu Blätternd(u, s) analog über “eingehende” Kantenkönnen mit Dijkstra berechnet werden

Anmerkungen:längste Wege: NP-schwernegative Kantengewichte, keine negative Zyklen: Bellmann-Fordnegative Kantengewichte, negative Zyklen: NP-schwer

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

51

2 1

2

8

2

3

2

s

1

Page 75: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Eigenschaften von kürzesten Wegen

Beobachtungen:kürzeste Wege sind zyklenfreiSubpfade sind auch kürzeste Wegealle kürzesten Wege von s aus spanneneinen DAG bzw. Baum aufsteigender Abstand von Wurzel zu Blätternd(u, s) analog über “eingehende” Kantenkönnen mit Dijkstra berechnet werden

Anmerkungen:längste Wege: NP-schwernegative Kantengewichte, keine negative Zyklen: Bellmann-Fordnegative Kantengewichte, negative Zyklen: NP-schwer

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

51

2 1

2

8

2

3

2

s

1

Page 76: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

DijkstraDIJKSTRA(G = (V , E), s)

forall nodes v ∈ V do1

d [v ] =∞, p[v ] = NULL ; // distances, parents2

d [s] = 03

Q.clear(), Q.add(s, 0); // container4

while !Q.empty() do5

u ← Q.deleteMin(); // settling node u6

forall edges e = (u, v) ∈ E do7

// relaxing edgesif d [u] + len(e) < d [v ] then8

d [v ]← d [u] + len(e)9

p[v ]← u10

if v ∈ Q then Q.decreaseKey(v , d [v ])11

else Q.insert(v , d [v ])12

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 77: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beispiel

0

51

2 1

2

8

2

3

2

1

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 78: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beispiel

0

51

2 1

2

8

2

3

2

5

11

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 79: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beispiel

0

51

2 1

2

8

2

3

24 9

1

3

1

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 80: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beispiel

0

51

2 1

2

8

2

3

24 9

1

3 5

1

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 81: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beispiel

0

51

2 1

2

8

2

3

24 9

1

3 5

1

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 82: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beispiel

0

51

2 1

2

8

2

3

2

5

4

1

3

7

1

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 83: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beispiel

0

51

2 1

2

8

2

3

2

5

4

1

3

7

1

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 84: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Beispiel

0

51

2 1

2

8

2

3

2

5

4

1

3

7

1

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 85: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

KorrektheitBeh.: Dijkstra terminiert mit d [v ] = d(s, v) für alle v ∈ V

zwei Schritte:(i) alle erreichbaren Knoten werden abgearbeitet(ii) wenn v abgearbeitet wird, ist d [v ] = d(s, v)

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 86: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

KorrektheitBeh.: Dijkstra terminiert mit d [v ] = d(s, v) für alle v ∈ V

zwei Schritte:(i) alle erreichbaren Knoten werden abgearbeitet(ii) wenn v abgearbeitet wird, ist d [v ] = d(s, v)

Beweis (i):Beh.: v wird nicht bearbeitet, ist aber erreichbar

⇒ es gibt kürzesten Weg Π(s, t) = (v1, . . . , vk ), s = v1, v = vk

⇒ es gibt vi mit vi−1 abgearbeitet und vi nicht⇒ vi wird in die Queue eingefügt⇒ Widerspruch

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 87: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

KorrektheitBeh.: Dijkstra terminiert mit d [v ] = d(s, v) für alle v ∈ V

zwei Schritte:(i) alle erreichbaren Knoten werden abgearbeitet(ii) wenn v abgearbeitet wird, ist d [v ] = d(s, v)

Beweis (ii):Beh.: v wird abgearbeitet mit d [v ] > d(s, v)

⇒ es gibt vi , dass noch nicht abgearbeitet wurde, und für das giltd [vi ] + len(vi , v) < d [v ]

⇒ d [vi ] < d [v ]

⇒ vi wird vor v abgearbeitet⇒ Widerspruch

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 88: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Dijkstra

forall nodes v ∈ V do1

d [v ] =∞, p[v ] = NULL ; // n Mal2

d [s] = 0, Q.clear(), Q.add(s, 0); // 1 Mal3

while !Q.empty() do4

u ← Q.deleteMin(); // n Mal5

forall edges e = (u, v) ∈ E do6

// relaxing edgesif d [u] + len(e) < d [v ] then7

d [v ]← d [u] + len(e)8

p[v ]← u9

if v ∈ Q then Q.decreaseKey(v , d [v ]); // m Mal10

else Q.insert(v , d [v ]); // n Mal11

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 89: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

Dijkstra

forall nodes v ∈ V do1

d [v ] =∞, p[v ] = NULL ; // n Mal2

d [s] = 0, Q.clear(), Q.add(s, 0); // 1 Mal3

while !Q.empty() do4

u ← Q.deleteMin(); // n Mal5

forall edges e = (u, v) ∈ E do6

// relaxing edgesif d [u] + len(e) < d [v ] then7

d [v ]← d [u] + len(e)8

p[v ]← u9

if v ∈ Q then Q.decreaseKey(v , d [v ]); // m Mal10

else Q.insert(v , d [v ]); // n Mal11

TDIJKSTRA = Tinit + n · TdeleteMin + m · TdecreaseKey + n · Tinsert

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 90: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

LaufzeitTDIJKSTRA = Tinit + n · TdeleteMin + m · TdecreaseKey + n · Tinsert

Liste Binary Heap Binomial heap Fibonacci heapOperation (worst-case) (worst-case) (worst-case) (amortized)Init Θ(1) Θ(1) Θ(1) Θ(1)

Insert Θ(1) Θ(lg k) O(lg k) Θ(1)

Minimum Θ(n) Θ(1) O(lg k) Θ(1)

DeleteMin Θ(n) Θ(lg k) Θ(lg k) O(lg k)

Union Θ(1) Θ(k) O(lg k) Θ(1)

DecreaseKey Θ(1) Θ(lg k) Θ(lg k) Θ(1)

Delete Θ(1) Θ(lg k) Θ(lg k) O(lg k)

Dijkstra O(n2 + m) O((n + m) lg n) O((n + m) lg n) O(m + n lg n)

Dij (m ∈ Θ(n2)) O(n2) O(n2 lg n) O(n2 lg n) O(n2)

Dij (m ∈ O(n)) O(n2) O(n lg n) O(n lg n) O(n lg n)

Transportnetzwerke sind dünn⇒ Binary Heaps

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 91: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

LaufzeitTDIJKSTRA = Tinit + n · TdeleteMin + m · TdecreaseKey + n · Tinsert

Liste Binary Heap Binomial heap Fibonacci heapOperation (worst-case) (worst-case) (worst-case) (amortized)Init Θ(1) Θ(1) Θ(1) Θ(1)

Insert Θ(1) Θ(lg k) O(lg k) Θ(1)

Minimum Θ(n) Θ(1) O(lg k) Θ(1)

DeleteMin Θ(n) Θ(lg k) Θ(lg k) O(lg k)

Union Θ(1) Θ(k) O(lg k) Θ(1)

DecreaseKey Θ(1) Θ(lg k) Θ(lg k) Θ(1)

Delete Θ(1) Θ(lg k) Θ(lg k) O(lg k)

Dijkstra O(n2 + m) O((n + m) lg n) O((n + m) lg n) O(m + n lg n)

Dij (m ∈ Θ(n2)) O(n2) O(n2 lg n) O(n2 lg n) O(n2)

Dij (m ∈ O(n)) O(n2) O(n lg n) O(n lg n) O(n lg n)

Transportnetzwerke sind dünn⇒ Binary Heaps

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 92: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

LaufzeitTDIJKSTRA = Tinit + n · TdeleteMin + m · TdecreaseKey + n · Tinsert

Liste Binary Heap Binomial heap Fibonacci heapOperation (worst-case) (worst-case) (worst-case) (amortized)Init Θ(1) Θ(1) Θ(1) Θ(1)

Insert Θ(1) Θ(lg k) O(lg k) Θ(1)

Minimum Θ(n) Θ(1) O(lg k) Θ(1)

DeleteMin Θ(n) Θ(lg k) Θ(lg k) O(lg k)

Union Θ(1) Θ(k) O(lg k) Θ(1)

DecreaseKey Θ(1) Θ(lg k) Θ(lg k) Θ(1)

Delete Θ(1) Θ(lg k) Θ(lg k) O(lg k)

Dijkstra O(n2 + m) O((n + m) lg n) O((n + m) lg n) O(m + n lg n)

Dij (m ∈ Θ(n2)) O(n2) O(n2 lg n) O(n2 lg n) O(n2)

Dij (m ∈ O(n)) O(n2) O(n lg n) O(n lg n) O(n lg n)

Transportnetzwerke sind dünn⇒ Binary Heaps

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 93: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

LaufzeitTDIJKSTRA = Tinit + n · TdeleteMin + m · TdecreaseKey + n · Tinsert

Liste Binary Heap Binomial heap Fibonacci heapOperation (worst-case) (worst-case) (worst-case) (amortized)Init Θ(1) Θ(1) Θ(1) Θ(1)

Insert Θ(1) Θ(lg k) O(lg k) Θ(1)

Minimum Θ(n) Θ(1) O(lg k) Θ(1)

DeleteMin Θ(n) Θ(lg k) Θ(lg k) O(lg k)

Union Θ(1) Θ(k) O(lg k) Θ(1)

DecreaseKey Θ(1) Θ(lg k) Θ(lg k) Θ(1)

Delete Θ(1) Θ(lg k) Θ(lg k) O(lg k)

Dijkstra O(n2 + m) O((n + m) lg n) O((n + m) lg n) O(m + n lg n)

Dij (m ∈ Θ(n2)) O(n2) O(n2 lg n) O(n2 lg n) O(n2)

Dij (m ∈ O(n)) O(n2) O(n lg n) O(n lg n) O(n lg n)

Transportnetzwerke sind dünn⇒ Binary Heaps

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010

Page 94: Algorithmen für Routenplanung · sommer2010/routenplanung/index Thomas Pajor – Algorithmen für Routenplanung 12. April 2010. Vorläufige Termine WocheTagDatum WocheTagDatum 1

LaufzeitTDIJKSTRA = Tinit + n · TdeleteMin + m · TdecreaseKey + n · Tinsert

Liste Binary Heap Binomial heap Fibonacci heapOperation (worst-case) (worst-case) (worst-case) (amortized)Init Θ(1) Θ(1) Θ(1) Θ(1)

Insert Θ(1) Θ(lg k) O(lg k) Θ(1)

Minimum Θ(n) Θ(1) O(lg k) Θ(1)

DeleteMin Θ(n) Θ(lg k) Θ(lg k) O(lg k)

Union Θ(1) Θ(k) O(lg k) Θ(1)

DecreaseKey Θ(1) Θ(lg k) Θ(lg k) Θ(1)

Delete Θ(1) Θ(lg k) Θ(lg k) O(lg k)

Dijkstra O(n2 + m) O((n + m) lg n) O((n + m) lg n) O(m + n lg n)

Dij (m ∈ Θ(n2)) O(n2) O(n2 lg n) O(n2 lg n) O(n2)

Dij (m ∈ O(n)) O(n2) O(n lg n) O(n lg n) O(n lg n)

Transportnetzwerke sind dünn⇒ Binary Heaps

Thomas Pajor – Algorithmen für Routenplanung 12. April 2010