Sie sind auf Seite 1von 45

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
Es gibt keinen
C Rundweg, weil alle
Ecken ungeraden
Grad haben!

A D

Satz vonBEuler:
Es gibt genau dann einen Rundweg, wenn G
Ein Graph
zsh. bestehtsind.
und alle Eckengrade gerade aus einer
Leonhard Euler
• Menge von Ecken
• Menge von Kanten
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 es gibt Euler-Kreis

Betrachte längsten Kreis K in G

Fall 1: K ist eulersch


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 es gibt Euler-Kreis

Betrachte längsten Kreis K in G

Fall 1: K ist eulersch


Fall 2: K ist nicht eulersch
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 es gibt Euler-Kreis

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!
Graphen
C C

A D A D

B B
ungerichteter Graph 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
• Kantengewichte (target)

Gesucht: ein kürzester s-t-Weg

s 2
(start) B C
4
6
A 2 8

1 D 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
B C
4
6
A 2 8

1 D E
3

Gesucht: Kürzester Weg von A nach C


Der Algorithmus von Dijkstra
∞ ∞
2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken
∞ ∞

„unendlich“
Der Algorithmus von Dijkstra
∞ ∞
2
B C
4
0
6
A 2 8

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

1 D E
3
Permanent markierte Ecken 1
∞ ∞
A

0
Der Algorithmus von Dijkstra
4 7

2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken 1 4

A

0
Der Algorithmus von Dijkstra
4
3 7

2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken 1 4

A D

0 1
Der Algorithmus von Dijkstra
3 7
2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken 1 4

A D

0 1
Der Algorithmus von Dijkstra
3 5
7
2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken 1 4

A D B

0 1 3
Der Algorithmus von Dijkstra
3 5
2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken 1 4

A D B

0 1 3
Der Algorithmus von Dijkstra
3 5
2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken 1 4

A D B E

0 1 3 4
Der Algorithmus von Dijkstra
3 5
2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken 1 4

A D B E

0 1 3 4
Der Algorithmus von Dijkstra
3 5
2
B C
4
0
6
A 2 8

1 D E
3
Permanent markierte Ecken 1 4

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

Laufzeit des Algorithmus von Dijkstra

Ecke Schlüsselwert

A 5
B 3 2
C 2

Rechenzeit Rechenzeit

5000

n 4500

4000

20 1s 0,0004s 3500

3000

30 17,9 min 0,0009s 2500

2000

40 12,7 Tage 0,0016s 1500

50 37,7 Jahre 0,0025s 1000

500

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

Jahrhunderte Das muss doch


… noch besser gehen!
100.0000 1.5 h
n mal Haufenweise Haufen
Minimum
Das Problem liegt
hier!

Ein Heap (Haufen) hilft:


„Höhe“ log n 2
Kleinstes
5 3 Element
(=Minimum)
9 9 7 7

4
10 14 11 9 14

Minimum: Zeit 1
Verringern: ???????
Laufzeit „reloaded“

Rechenzeit

1800
Ecke Schlüsselwert
A 5
B1600 3
C 2
1400


1200

1000
Reihe2
Reihe1
800

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