Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Der Dijkstra-Algorithmus
Von einem gegebenen Startknoten aus: die kürzesten Wege zu allen anderen Knoten
2
B A B C D E F 4 1 C D 2 3 A 4 5 2 1 F E
3
A B C D E F B C D A F E Vorarbeit 1: setze jeden Knoten als unbesucht
4 1 C D 2 3 A 4 5 2 1 F E Vorarbeit 1: setze jeden Knoten als unbesucht setze jede Distanz auf unendlich setze jeden Vorgänger auf null
4
∞ ∞ ∞ ∞ ∞ ∞ A ∞ B C D E F B C D A F E Vorarbeit 1:
4 1 C D ∞ 2 ∞ 3 ∞ A 4 5 2 ∞ 1 ∞ F E Vorarbeit 1: setze jeden Knoten als unbesucht setze jede Distanz auf unendlich setze jeden Vorgänger auf null
5
∞ ∞ ∞ ∞ ∞ ∞ A ∞ B C D E F B C D A F E Vorarbeit 2:
4 1 C D ∞ 2 ∞ 3 ∞ A 4 5 2 ∞ 1 ∞ F E Vorarbeit 2: setze die Distanz des Startknotens auf 0 setze seinen Vorgänger auf sich selber (hilfreich, aber nicht nötig)
6
∞ ∞ ∞ ∞ ∞ A B ∞ C D E F B C D A F E Vorarbeit 2:
B ∞ C D E F ∞ 4 1 C D 2 ∞ 3 ∞ A 4 5 2 ∞ 1 ∞ F E Vorarbeit 2: setze die Distanz des Startknotens auf 0 setze seinen Vorgänger auf sich selber (hilfreich, aber nicht nötig)
7
B A B ∞ C D E F ∞ 4 1 C D 2 ∞ 3 ∞ A 4 5 2 ∞ 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
8
B A B ∞ C D E F ∞ 4 1 C D 2 ∞ 3 ∞ A 4 5 2 ∞ 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
9
B A B ∞ C D E F ∞ 4 1 C D 2 ∞ 3 ∞ A 4 5 2 ∞ 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
10
B 4 A B ∞ C D E F ∞ 4 1 2 C D 2 ∞ 3 ∞ A 4 5 2 ∞ 1 ∞ 4 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
11
B A B 4 C 2 D ∞ E F 4 4 1 C D 2 2 3 ∞ A 4 5 2 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
12
B A B 4 C 2 D ∞ E F 4 4 1 C D 2 2 3 ∞ A 4 5 2 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
13
B A B 4 C 2 D ∞ E F 4 4 1 C D 2 2 3 ∞ A 4 5 2 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
14
B 3 A B 4 C 2 D ∞ E F 4 4 1 5 C D 2 2 3 ∞ A 4 5 2 7 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
15
B A B 3 C 2 D 5 E 4 F ∞ 3 4 1 C D 2 2 3 5 A 4 5 2 7 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
16
B A B 3 C 2 D 5 E 4 F ∞ 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
17
B A B 3 C 2 D 5 E 4 F ∞ 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
18
B A B 3 C 2 D 5 E 4 F ∞ 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
19
B A B 3 C 2 D 5 E 4 F ∞ 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
20
B A B 3 C 2 D 5 E 4 F ∞ 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 ∞ F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
21
B A B 3 C 2 D 5 E 4 F ∞ 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 ∞ 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
22
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
23
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
24
B A B 3 C 2 D 5 E 4 F 3 bei Gleichstand: beliebig 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
25
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 7 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
26
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 7 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
27
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
28
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
29
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
30
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
31
B A B 3 C 2 D 5 E 4 F 3 4 1 C D 2 2 3 5 A 4 5 2 4 1 5 F E Wiederhole, bis alle Knoten besucht sind: setze den unbesuchten Knoten mit der geringsten Distanz als aktuell und besucht für alle unbesuchten Nachbarn: addiere eigene Distanz und das Kantengewicht wenn Summe geringer ist als deren aktuelle Distanz, dann setze sie und setze dich als seinen Vorgänger
32
Der Dijkstra-Algorithmus
Von einem gegebenen Startknoten aus die kürzesten Wege zu allen anderen Knoten (Single Source Shortest Path SSSP) Angewendet auf alle Knoten im Graphen: liefert alle kürzesten Wege.
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.