Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der Dijkstra-Algorithmus

Ähnliche Präsentationen


Präsentation zum Thema: "Der Dijkstra-Algorithmus"—  Präsentation transkript:

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.

33


Herunterladen ppt "Der Dijkstra-Algorithmus"

Ähnliche Präsentationen


Google-Anzeigen