Universität zu Lübeck Institut für Theoretische Informatik Dr. Andreas Jakoby Dipl.-Inf. Christian Hundt Wintersemester 2006/2007 Übungen Algorithmik 06. November 2006 4. Übung Abgabe: Freitag, 10.11.2006, bis 15 Uhr im Büro 2018, Geb. 64. 1. Wir betrachten den aus der Vorlesung bekannten Algorithmus von Dijkstra für das Single Source Shortest Path Problem. Algorithmus Dijkstra() Eingabe: Eine Kostenmatrix C, die leere Menge S sowie Felder D,W Ergebnis: Lösung des SSSPP im Feld W 1: S := {1} 2: for v ∈ V \ S do 3: D[v] := C[1, v]; 4: W [v] := 1; 5: end for 6: while S 6= V do 7: modify(next-node()) 8: end while (a) Schätzen Sie die Laufzeit des Algorithmus möglichst genau ab. (b) Können Sie die Laufzeit verbessern, indem Sie für die im Algorithmus verwendeten Felder und Mengen (V , S, D, W ) spezielle Datenstrukturen verwenden? Diskutieren Sie diese Fragestellungen ausführlich für Ihnen bekannte Datenstrukturen. 2. Sei G = (V, E) ein Graph. Wir unterscheiden bei Knotenfolgen v1 , v2 , ..., vk mit der Eigenschaft, dass für alle 1 ≤ i < n das Paar (vi , vi+1 ) eine Kante in E ist, zwischen Pfaden und Wegen. Während ein Pfad keinen Knoten zweimal enthält, d.h. für alle 1 ≤ i < j ≤ n gilt vi 6= vj , hat ein Weg diese Eigenschaft nicht zwingend. Der Algorithmus von Dijkstra berechnet für alle 1 ≤ i ≤ |V | den kürzesten Pfad zwischen v1 und vi . (a) Zeigen Sie anhand eines Beispiels, dass der Algorithmus von Dijkstra nicht korrekt ist, wenn für die Kanten auch negative Kosten erlaubt sind. (b) Unter welcher Bedingung ist der kürzeste Pfad zwischen zwei Knoten u, v ∈ V auch der kürzeste Weg zwischen diesen Knoten? (c) Geben Sie eine Beschreibung für einen Algorithmus an, der für gegebene Graphen G = (V, E) mit Kosten w(e) ∈ Z, e ∈ E entscheidet, ob es einen Kreis in G gibt, dessen Kosten negativ sind. (d) Diskutieren Sie Möglichkeiten für einen Algorithmus, dessen Ergebnis für jedes Knotenpaar u, v ∈ V den kürzeste Pfad von u nach v angibt. Bitte wenden! 3. Bestimmen Sie für das folgende Netzwerk den optimalen Fluss. 12 Q 11 3 6 2 4 14 9 10 9 17 12 5 14 5 18 S