Der kürzeste Weg zum Ziel

(die Mathematik im Routenplaner)
Sven O. Krumke, 13. Oktober 2005

krumke@mathematik.uni-kl.de

Reiseplanung
Wie komme ich nach Halver?

Anforderungen
Wir wollen eine Antwort, die • richtig • schnell • praktikabel ist.

Überblick
• Kürzeste Wege • Navigationsysteme • Graphen und Netzwerke • Algorithmen und Datenstrukturen

Kürzeste Wege I

Tell: Nennt mir den nächsten Weg nach Arth und Küssnacht Fischer: Die offne Straße zieht sich über Steinen, doch einen kürzern Weg und heimlichern kann Euch mein Knabe über Lowerz führen.

Kürzeste Wege II

Wege überhaupt

Theseus fand den Weg aus den Labyrinth dank eines Fadens von Ariadne.

Navigationssysteme

Navigation mit System

Routenplanung

Lokalisation

Lokalisation und Routenplanung
Lokalisation ist „einfach“ …

Bei der Routenplanung haben wir • ca. 5 022 028 Kreuzungen • ca. 6 169 904 Straßen • ca. 10100 potentielle Reiserouten

Das Problem
Wie zum #!?*$!} können wir in 1 Sekunde einen kürzesten Weg finden? Vielleicht sollten wir mal die Mathematiker fragen?

Historisches
1736 suchten die Menschen in Königsberg einen Rundweg, der über alle 7 Brücken genau einmal führte.

Historisches
1736 suchten die Menschen in Königsberg einen Rundweg, der über alle 7 Brücken genau einmal führte.

Irgendwie geht das nicht!

Euler und die Graphentheorie
C

A

D

B

Leonhard Euler

Euler und die Graphentheorie
C Es gibt keinen Rundweg, weil alle Ecken ungeraden Grad haben! D

A

B Satz von Euler: Es gibt genau dann einen Rundweg, wenn G Ein und alle besteht aus zsh. Graph Eckengrade gerade sind. einer • Menge • Menge von Ecken von Kanten Leonhard Euler

Der Satz von Euler
Satz von Euler: Es gibt genau dann einen Rundweg, wenn G zsh. und alle Eckengrade gerade sind. Zeige: Alle Eckengrade gerade Betrachte längsten Kreis K in G Fall 1: K ist eulersch es gibt Euler-Kreis

Der Satz von Euler
Satz von Euler: Es gibt genau dann einen Rundweg, wenn G zsh. und alle Eckengrade gerade sind. Zeige: Alle Eckengrade gerade Betrachte längsten Kreis K in G Fall 1: K ist eulersch Fall 2: K ist nicht eulersch es gibt Euler-Kreis

Der Satz von Euler
Satz von Euler: Es gibt genau dann einen Rundweg, wenn G zsh. und alle Eckengrade gerade sind. Zeige: Alle Eckengrade gerade Betrachte längsten Kreis K in G Fall 1: K ist eulersch Fall 2: K ist nicht eulersch Neuer Kreis W Es gibt einen längeren Kreis als K! es gibt Euler-Kreis

Graphen
C C

A

D

A

D

B ungerichteter Graph

B gerichteter Graph

In einem gerichteten Graphen G=(V,E) hat jede Kante (u,v) eine Richtung. u v

Unser Problem in neuem Gewand
Gegeben: Gerichteter Graph G=(V,E) • Start s, Ziel t t (target) • Kantengewichte Gesucht: ein kürzester s-t-Weg
s (start) A 1 2 4 2 D B 6 C 8 E

3

Mr. Bruteforce
Hahahaha! Mit meinem schnellen Computer probiere ich einfach alle Wege aus!

Ich weiss ja nicht …

Auf den Spuren des Zufalls
Wie viele s-t-Wege gibt es in einem zufälligen Graphen? n Ecken für jede der n(n-1) möglichen Kanten werfen wir eine Münze ? ?

? ? ?

?

Auf den Spuren des Zufalls
Wie viele s-t-Wege gibt es in einem zufälligen Graphen? n Ecken für jede der n(n-1) möglichen Kanten werfen wir eine Münze Mögliche #Wege mit n-1 Kanten: W‘keit, dass ein fester Weg existiert: Erwartete Anzahl von Wegen:

Kopf gegen Kraft
Mit roher Kraft geht es wohl nicht! Kürzester s-t-Weg = + Kürzester s-z-Weg Kürzester z-t-Weg

Kopf gegen Kraft (II)
• s ist von sich selbst 0 entfernt • alle direkten Nachfolger von s sind 1 entfernt • alle deren Nachfolger, die nicht 1 entfernt sind, sind 2 entfernt •…

0

1

2

Der Algorithmus von Dijkstra
2 4 A 1 2 D B 6 C 8 E

3

Gesucht: Kürzester Weg von A nach C

Der Algorithmus von Dijkstra


0 A 1 Permanent markierte Ecken 4 2 D B

2 6


C 8 E

3


„unendlich“

Der Algorithmus von Dijkstra


0 A 1 Permanent markierte Ecken 4 2 D B

2 6


C 8 E

3

Der Algorithmus von Dijkstra
4 ∞ 0 A 1 Permanent markierte Ecken A 0 4 2 D 1 ∞ B 6 2


C 8 E

3

Der Algorithmus von Dijkstra
4 2 0 A 1 Permanent markierte Ecken A 0 4 2 D 1 B 6 7 ∞ C 8 E 4 ∞

3

Der Algorithmus von Dijkstra
4 3 4 2 1 Permanent markierte Ecken A 0 D 1 D 1 B 6 2 7 ∞ C 8 E 4 ∞

0 A

3

Der Algorithmus von Dijkstra
3 4 2 1 Permanent markierte Ecken A 0 D 1 D 1 B 6 2 7 C 8 E 4 ∞

0 A

3

Der Algorithmus von Dijkstra
3 4 2 1 Permanent markierte Ecken A 0 D 1 B 3 D 1 B 6 2 5 7 C 8 E 4 ∞

0 A

3

Der Algorithmus von Dijkstra
3 4 2 1 Permanent markierte Ecken A 0 D 1 B 3 D 1 B 6 2 5 C 8 E 4 ∞

0 A

3

Der Algorithmus von Dijkstra
3 4 2 1 Permanent markierte Ecken A 0 D 1 B 3 E 4 D 1 B 6 2 5 C 8 E 4 ∞

0 A

3

Der Algorithmus von Dijkstra
3 4 2 1 Permanent markierte Ecken A 0 D 1 B 3 E 4 D 1 B 6 2 5 C 8 E 4 ∞

0 A

3

Der Algorithmus von Dijkstra
3 4 2 1 Permanent markierte Ecken A 0 D 1 B 3 E 4 C 5 D 1 B 6 2 5 C 8 E 4 ∞

0 A

3

Der Algorithmus von Dijkstra
• In jeder Iteration wird die nicht permanent markierte Ecke mit geringstem „Schlüsselwert“ permanent markiert • für alle ihre Nachfolger wird der Schlüsselwert angepasst Gesamtaufwand (n Ecken und m Kanten): 3 4 2 1 D 1 B 6 2 7 C 8 E 4 ∞

0 A

3

Laufzeit des Algorithmus von Dijkstra

Ecke Schlüsselwert A B C … 5 3 2 2

Rechenzeit
Rechenzeit
5000

n 20 30 40 50 60 …
100.0000

4500

4000

1s 17,9 min 12,7 Tage 37,7 Jahre

0,0004s 0,0009s 0,0016s 0,0025s

3500

3000

2500

2000

1500

1000

500

366 0,0036s Jahrhunderte 1.5 h

0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

Das muss doch noch besser gehen!

n mal Minimum

Haufenweise Haufen
Das Problem liegt hier!

Ein Heap (Haufen) hilft: „Höhe“ log n 5 9 4 10 Minimum: Zeit 1 Verringern: ??????? 14 11 9 9 7 14 2 3 7 Kleinstes Element (=Minimum)

Laufzeit „reloaded“
Rechenzeit
1800 Ecke

Schlüsselwert 5 3 2

A
1600 B

C


1200 1000 Reihe2 Reihe1 800

1400

600

400

200

0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

Höhere Mathematik

Mit noch ausgeklügelteren Algorithmen und Datenstrukturen kann man die Laufzeit weiter verringern.

Zusammenfassung
• Hinter dem Routenplaner steckt eine Menge Mathematik • Denken ist besser als rohe Gewalt • Netzwerkoptimierung:

Vielen Dank!

http://www.mathematik.uni-kl.de/~krumke