Prof. Dr. R. Schrader D. Räbiger WS 2004/2005 5. Übung zur Kombinatorischen Optimierung Abgabe in der Übungsgruppe, Montag, 22. November Aufgabe 1: Bellman/Ford mit Matrixmultiplikation 6 Punkte Sei uk ∈ Rn+ ein Vektor, so daß uki die Distanz des Knotens i unter Verwendung eines Kürzesten Weges mit maximal k Kanten ist. Wir indizieren den Startknoten mit 0, so daß anfangs u0 = (0, ∞, . . . , ∞) ist. Außerdem speichern wir die Entfernungen c : E → R+ des gerichteten Graphen G = (V, E) in einer Adjazenzmatrix A mit c(i, j) falls (i, j) ∈ E ∞ falls (i, j) 6∈ E und i 6= j Aij = 0 ansonsten Wir definieren einen Operator ⊗ für zwei quadratische Matrizen wie folgt: P = (pij ) = A ⊗ B mit pij = min{Aik + Bkj } k Der Algorithmus von Bellman/Ford läßt sich durch Matrixmultiplikation anhand der folgenden Rekursion berechnen: uk+1 = uk ⊗ A (i) Wenden Sie das beschriebene Verfahren zur Berechnung aller kürzesten Wege von s = 0 auf den folgenden Graphen an: 3 1 3 5 0 2 2 1 2 2 4 (ii) Welche Laufzeit hat das Verfahren? (iii) Sei Ak die k–te Potenz von A bezüglich ⊗. Zeigen Sie: uk+1 = u0 ⊗ Ak (iv) Geben Sie eine Variante des vorgestellen Verfahrens an, das mit O(log n) Matrixmultiplikationen auskommt. Aufgabe 2: Seilschaften 3 Punkte Betrachten Sie folgendes Seile–Modell zur Lösung des ungerichteten Kürzesten Wege Problems: Für jede Kante benutzen wir ein Seil entsprechend der Länge der Kante. Wir verknüpfen zwei Seile an den Enden, falls die betreffenden Kanten adjazent sind. (Wir sind sehr geschickt und benötigen für das Knüpfen keinerlei Seillänge!) Dann fassen wir den Startknoten und Zielknoten mit jeweils einer Hand und heben sie so weit hoch, bis alle Knoten in der Luft sind. Zeigen Sie, daß dieses Vorgehen genau das Duale des Kürzeste Wege Problems löst und interpretieren Sie die einzelnen Komponenten des Modells sowie die Schritte dieses Algorithmus. Aufgabe 3: Matroide 5 Punkte (i) Für gegebene Elemente e1 , e2 ∈ E enthalte F die Teilmengen von E, die nicht e1 und e2 gleichzeitig enthalten. Ist (E, F ) ein Matroid? (ii) Zwei Graphen G und H heißen isomorph, wenn es Bijektionen φV : V (G) → V (H) und φE : E(G) → E(H) gibt, so daß φE ((v, w)) = (φV (v), φV (w)) für alle (v, w) ∈ E(G). Geben Sie ein einfaches Beispiel an, um zu beweisen, daß zwei nichtisomorphe und ungerichtete Graphen durch das gleiche Matroid beschrieben werden können.