Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1Petra Mutzel DAP2 SS09 Animation von Dijkstra Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund.

Ähnliche Präsentationen


Präsentation zum Thema: "1Petra Mutzel DAP2 SS09 Animation von Dijkstra Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund."—  Präsentation transkript:

1 1Petra Mutzel DAP2 SS09 Animation von Dijkstra Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 21. VO DAP2 SS Juli

2 2Petra Mutzel DAP2 SS09 Algorithmus von Dijkstra Analogien mit BFS und Prim: BFS/Prim läßt einzelnen Baum wachsen: Neue Kante verbindet Baum mit Rest Dijkstra bildet Kürzeste-Wege Baum (SPT) ausgehend von Wurzel s, aber andere Auswahl Greedy, Priority Queue Bezeichnungen Vorgänger von Knoten v im SPT: π[v] Kanten, die Knotenmenge S verlassen: A(S) Min. Abstand vom Startknoten zu Knoten v: d[v]

3 3Petra Mutzel DAP2 SS09 Idee von Dijkstra S := {s} // S Knoten im SPT d[s] := 0; π[s] := nil // s Wurzel while A(S) ø do // erreichbare Knoten // Optimale Substruktur Sei e = (u, v) A(S) mit d[u] + w(e) minimal S := S {v} d[v] := d[u] + w(e) π[v] := u end while Realisierung durch PQ und edge scanning

4 4Petra Mutzel DAP2 SS09 Realisierung von Dijkstra Knotenmenge S: Kürzester Weg mit Länge d[v] bereits ermittelt Knotenmenge V \ S: Speichere vorläufige Werte für den Abstand zu s (obere Schranke (v) d[v]) in Priority Queue, und aktualisiere Priorität, falls günstigerer Weg gefunden wird, (s) = 0 1.Wähle mit E XTRACT M IN Knoten u mit minimalem Abstandswert. Start: (s) = d[s] = 0 2.Aktualisiere für ausgehende Kanten (u, v) Abstandswerte der Endknoten (Relaxieren) mit D ECREASE P RIORITY und Vorgänger π[v]

5 5Petra Mutzel DAP2 SS09 Pseudo-Code: Initialisierung G=(V, A), w: AR 0 + (1) var π[V], PriorityQueue Q, pos[V] (2) for each u V \ {s} do { (3) pos[u] := Q.I NSERT (, u) (4) π[u] := nil (5) } (6) pos[s] := Q.I NSERT (0, s) (7) π[s] := nil

6 6Petra Mutzel DAP2 SS09 Pseudo-Code (8) while not Q.ISEMPTY() do { (9) (d u, u ) := Q.EXTRACTMIN(); // d u Abstand s zu u (10) pos[u] := nil // Minimum entfernt (11)for all e = (u,v) A - (u) do { // Erreichbare Knoten (12) if d u +w(e) < Q.PRIORITY(pos[v]) then { (13)Q.DECREASEPRIORITY(pos[v], d u + w(e)) (14)π[v] := u (15) } (16) } (17) }

7 7Petra Mutzel DAP2 SS09 0 Algorithmus von Dijkstra s Priority Queue PQ: Knoten, Priorität Weglänge Kandidatenmenge K in PQ: Weg von s gefunden Abgeschlossene Knoten: Minimum aus PQ 1

8 8Petra Mutzel DAP2 SS09 Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 12 1

9 9Petra Mutzel DAP2 SS09 Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π

10 10Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1

11 11Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1

12 12Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1

13 13Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1

14 14Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1

15 15Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1

16 16Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1

17 17Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1

18 18Petra Mutzel DAP2 SS Algorithmus von Dijkstra s 0 4 Ausgehende Kanten des gewählten Knoten Erreichte Kandidaten Vorgänger-Kanten: π 1


Herunterladen ppt "1Petra Mutzel DAP2 SS09 Animation von Dijkstra Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund."

Ähnliche Präsentationen


Google-Anzeigen