Graphendurchlauf
-
Upload
lukas-masuch -
Category
Technology
-
view
243 -
download
0
Transcript of Graphendurchlauf
Lukas Masuch
GRAPHEN DURCHLAUF
© Lukas Masuch – 05.06.2012
Gliederung
Historische Probleme Königsberger Brückenproblem
Problem des Handlungsreisenden
Tiefensuche Prinzip
Dijkstra-Algorithmus Prinzip
Ausblicke A*-Algorithmus
2
Prinzip und Implementierung
Tiefensuche 6
© Lukas Masuch – 05.06.2012
Tiefensuche 7
Uninformierter Suchalgorithmus
Anwendungen:
Vielseitige Anwendungsmöglichkeit in
verschiedenen Algorithmen
Bearbeitung aller Knoten eines Graphen (auch
Knotensuche möglich)
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 8
A
B
F
C
E
D
G
Ausgangsgraph – Markierung aller Knoten als unbesucht
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 9
A
B
F
C
E
D
G
Auswahl eines beliebigen Knotens als Startknoten – Markierung als besucht
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 10
A
B
F
C
E
D
G
Rekursiver Durchgang aller unbesuchter Knoten
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 11
A
B
F
C
E
D
G
Rekursiver Durchgang aller unbesuchter Knoten
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 12
A
B
F
C
E
D
G
Rekursiver Durchgang aller unbesuchter Knoten
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 13
A
B
F
C
E
D
G
Rekursiver Durchgang aller unbesuchter Knoten
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 14
A
B
F
C
E
D
G
Rekursiver Durchgang aller unbesuchter Knoten
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 15
A
B
F
C
E
D
G
Rekursiver Durchgang aller unbesuchter Knoten
© Lukas Masuch – 05.06.2012
Tiefensuche - Prinzip 16
A
B
F
C
E
D
G
Ende: Alle Knoten wurden besucht
Prinzip und Implementierung
Dijkstra-Algorithmus 18
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus 19
Entwickelt von Edsger W. Dijkstra (1959)
Greedy-Algorithmus (optimal)
Anwendungen:
Routenplaner für ein Straßennetz
Routing-Algorithmus im Internet
…
Berechnung des kürzesten Pfades zwischen einem
Startknoten und einem Zielknoten in einem
kantengewichteten Graphen
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus - Prinzip 20
Knoten A B C D E F G
Gewichtung 0 ∞ ∞ ∞ ∞ ∞ ∞
© Lukas Masuch – 05.06.2012
A
B
F
C
E
D
3
3
3
1
1
7
1 6
8
G 11
3
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus - Prinzip 21
0
A
1 - A
B
7 - A
F
C
E
D
3
3
3
1
1
7
1 6
8
Knoten B F D E C G
Gewichtung 1 7 ∞ ∞ ∞ ∞
G 11
3
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus - Prinzip 22
0
A
1 - A
B
7 - A
F
4 - B
C
E
D
3
3
3
1
1
7
1 6
8
Knoten C F E D G
Gewichtung 4 7 ∞ ∞ ∞
G 11
3
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus - Prinzip 23
0
A
1 - A
B
7 - A
F
4 - B
C
10-C
E
12-C
D
3
3
3
1
1
7
1 6
8
Knoten F E D G
Gewichtung 7 10 12 15
15-C
G
11
3
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus - Prinzip 24
0
A
1 - A
B
7 - A
F
4 - B
C
10-C
8 - F
E
12-C
D
3
3
3
1
1
7
1 6
8
Knoten E D G
Gewichtung 8 12 15
15-C
G
11
3
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus - Prinzip 25
0
A
1 - A
B
7 - A
F
4 - B
C
10-C
8 - F
E
12-C
11-E
D
3
3
3
1
1
7
1 6
8
Knoten D G
Gewichtung 11 15
15-C
G
11
3
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus - Prinzip 26
0
A
1 - A
B
7 - A
F
4 - B
C
10-C
8 - F
E
12-C
11-E
D
3
3
3
1
1
7
1 6
8
15-C
G
11
3
Knoten G
Gewichtung 15
© Lukas Masuch – 05.06.2012
Dijkstra-Algorithmus - Prinzip 27
0
A
1 - A
B
7 - A
F
4 - B
C
10-C
8 - F
E
12-C
11-E
D
3
3
3
1
1
7
1 6
8
15-C
G
11
3
Kürzester Weg: A-F-E-D = 11
A*-Algorithmus
Ausblick 29
© Lukas Masuch – 05.06.2012
A*-Algorithmus - Prinzip 30
Knoten A B C D E F G
Gewichtung 0 ∞ ∞ ∞ ∞ ∞ ∞
h=10
A
h=9
B
h=4
F
h=8
C
h=2
E
h=0
D
3
3
3
1
1
7
1 6
8
h=1
G
11
3
© Lukas Masuch – 05.06.2012
A*-Algorithmus - Prinzip 31
Knoten B F D E C G
Gewichtung 10 11 ∞ ∞ ∞ ∞
A
0+1+9
=10
1-A
B
0+7+4
=11
7-A
F
h=8
C
h=2
E
h=0
D
3
3
3
1
1
7
1 6
8
h=1
G
11
3
© Lukas Masuch – 05.06.2012
A*-Algorithmus - Prinzip 32
Knoten F C E D G
Gewichtung 11 12 ∞ ∞ ∞
A
1-A
B
F=11
7-A
F
F=12
4-B
C
h=2
E
h=0
D
3
3
3
1
1
7
1 6
8
h=1
G
11
3
© Lukas Masuch – 05.06.2012
A*-Algorithmus - Prinzip 33
Knoten E C D G
Gewichtung 10 12 ∞ ∞
A
1-A
B
7-A
F
F=12
4-B
C
F=10
8-F
E
h=0
D
3
3
3
1
1
7
1 6
8
h=1
G
11
3
© Lukas Masuch – 05.06.2012
A*-Algorithmus - Prinzip 34
Knoten D C G
Gewichtung 11 12 ∞
A
1-A
B
7-A
F
F=12
4-B
C
8-F
E
F=11
11-E
D
3
3
3
1
1
7
1 6
8
h=1
G
11
3
© Lukas Masuch – 05.06.2012
A*-Algorithmus - Prinzip 35
Knoten C G
Gewichtung 12 ∞
A
1-A
B
7-A
F
F=12
4-B
C
8-F
E
F=11
11-E
D
3
3
3
1
1
7
1 6
8
h=1
G
11
3
© Lukas Masuch – 05.06.2012
A*-Algorithmus - Prinzip 36
0
A
1 - A
B
7 - A
F
8 - F
E
11-E
D
3
3
3
1
1
7
1 6
8
11
3
Kürzester Weg: A-F-E-D = 11
F=12
4-B
C
h=1
G
FRAGEN?
Lukas Masuch