8. Übungsblatt
Kombinatorische Optimierung
Jens M. Schmidt
Aufgabe 1: Kleine Integer-Gewichte
Wie schnell kann das kürzeste Pfad-Problem gelöst werden, wenn jedes Kantenge- wicht in {0, . . . , c} für eine Konstantec ist?
Aufgabe 2: Zertifikate
Sei G ein gerichteter stark zusammenhängender Graph mit konservativen Kanten- gewichten und Knotens.
i) Sei für jeden Knoten ein Wertd(v) gegeben. Wie schnell kann für allev getestet werden, ob d(v) =dist(s, v) gilt?
ii) Statt derd-Werte sei nun für jeden Knotenv 6=sein Verweis auf einen anderen Knoten p(v) gegeben. Wie schnell kann getestet werden, ob die p-Werte einen Kürzesten-Pfade-Baum von Gbeschreiben?
Aufgabe 3: Negative Kantengewichte
i) Finden Sie einen ungerichteten Graphen und einen kürzesten PfadP =s, . . . , u, t, für den Ps...u kein kürzester Pfad ist.
ii) Finden Sie einen gerichteten Graphen mit genau einem negativen Kantenge- wicht, für den der Algorithmus von Dijkstra nicht korrekt läuft.
iii) Sei ein gerichteter Graph mit konservativen Kantengewichten gegeben. Erläu- tern Sie eine Modifikation des Dijkstra-Algorithmus, der auf diesem Graphen korrekt arbeitet (achten Sie nicht auf Effizienz). Tipp: Dijkstra besucht keinen Knoten zweimal.
Aufgabe 4: Bellmand-Ford und Negative Kreise Betrachten Sie den Bellman-Ford-Algorithmus.
i) Laut Vorlesung gilt nach der i-ten Iteration d(v) ≤ disti(s, v) für alle v ∈ V. Gilt auch d(v) = disti(s, v)?
ii) Eine Kante uv ∈ E mit d(u) +c(uv) < d(v) heiße verringernd. Finden Sie für allgemeine Kantengewichte ausRein notwendiges und hinreichendes Kriterium nach Ausführung des Bellman-Ford-Algorithmus, das angibt, ob ein negativer Kreis existiert. Benutzen Sie dieses Kriterium, um effizient einen negativen Kreis zu berechnen, falls ein solcher existiert.