1.Aufgabe: Minimal aufspannender Baum v1 3 4 7 6 v7 v2 1 6 9 6 v4 v3 11+4+8 Punkte v5 v6 4 7 3 5 4 1 8 6 v8 v9 3 7 2 v10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus von Prim einen MST im Graphen G aus Abbildung 1. Starte dabei mit dem Knoten v1 und gib die Knoten in der Reihenfolge an, in der sie in den Baum aufgenommen werden, sowie den berechneten MST. R (b) Gegeben sei ein ungerichteter Graph G mit Kantengewichten c : E(G) 7→ und ein ausgezeichneter Knoten v ∈ V (G). Gesucht wird ein minimaler aufspannender Baum, in dem v kein Blatt ist. Angenommen, wir lassen den Algorithmus von Kruskal oder Prim auf G laufen und erhalten einen MST T , in dem v ein Blatt ist. Beweise oder widerlege: Hinzufügen der nächst billigen Kante e, die zu v inzident ist und Entfernen der teuersten Kante f im entstehenden Kreis in T ∪ {e} liefert das gewünschte Ergebnis (als Baum T ∪ {e}\{f }). R (c) Gegeben sei ein ungerichteter Graph G mit Kantengewichten c : E(G) 7→ . Gesucht wird ein aufspannender Baum, in dem die schwerste Kante so leicht wie möglich ist. Wir bezeichnen diesen Baum als Bottleneck-Spannbaum. Zeige, dass ein minimaler aufspannender Baum ein Bottleneck-Spannbaum ist. 1 2.Aufgabe: Kürzester Weg 8+5 Punkte v1 4 e1 e2 3 1 v2 s e6 2 3e t e4 e5 3 e7 3 5 v3 Abbildung 2: Der Graph G mit Kantenlängen (a) Bestimme im Graphen aus Abbildung 2 mit Hilfe des Algorithmus von Moore, Bellman und Ford einen kürzesten Weg von s nach t. Gib für jeden Schleifendurchlauf die Längen und die Vorgänger, die sich ändern, an. Durchlaufe die Kanten immer in der Reihenfolge e1 , e 2 , . . . , e 7 . (b) Sei G ein gerichteter Graph mit Kantengewichten c : E(G) 7→ ist. Zeige oder widerlege die folgende Aussage: R, wobei c(e) < 0 möglich Wir definieren c(e) = c(e) + K, wobei K so gewählt wird, dass c(e) ≥ 0 ∀ e ∈ E . Nun bestimmen wir einen kürzesten Weg in G mit Kantengewichten c. Behauptung: Dieser Weg ist auch ein kürzester Weg in G mit Kantengewichten c. 3.Aufgabe: Maximaler Fluss 7+7 Punkte (a) Gib den Residualgraphen und die Residualkapazitäten zum Netzwerk (G, u, s, t) aus Abbildung 3 an. (b) Führe eine Iteration des Algorithmus von Edmonds und Karp aus. Gib dazu den augmentierenden Pfad und das Netzwerk mit den neuen Flusswerten an. 2 v1 8, 4 4, 2 v2 2, 2 5, 2 2, 0 v3 1, 1 s v4 2, 2 t 3, 1 3, 3 1, 1 v5 5, 3 7, 3 v6 Abbildung 3: Das Netzwerk (G, u, s, t). Die Tupel an den Kanten haben die Form (Kapazität, Flusswert). 4.Aufgabe: Maximales Matching 3+7+5+2 Punkte v2 v1 v3 v5 v3 v2 v1 v4 v6 v7 v4 v8 v5 v10 v9 v11 v6 v12 (a) v7 v8 (b) Abbildung 4: (a) Graph G1 , (a) Graph G2 (a) Betrachten den Graphen G1 mit Matching M1 = {{v1 , v5 }, {v2 , v8 }, {v3 , v4 }, {v9 , v10 }, {v11 , v12 }} in Abbildung 4(a) und den Graphen G2 mit Matching M2 = {{v1 , v2 }, {v4 , v5 }} in Abbildung 4(b). Bestimme Matchings maximaler Größe für G1 und G2 durch Verbesserungen der aktuellen Matchings mittels augmentierender Pfade. (b) Das Problem ein kardinalitätsmaximales Matching in einem bipartiten Graphen lässt sich durch Formulierung als Flußproblem lösen. Beschreibe das Vorgehen. (c) Betrachte den bipartiten Graphen G aus Abbildung 5. Es soll mit Hilfe der Flussformulierung ein kardinalitätsmaximales Matching in G bestimmt werden. 3 v1 v6 v2 v7 v3 v8 v4 v9 v5 v10 Abbildung 5: Graph G. Zeichne das Netzwerk, in dem ein maximaler Fluss bestimmt werden muss. (d) Trage einen Fluss mit Wert 4 in das Netzwerk aus (c) ein. (Hinweis: Dazu braucht kein Algorithmus angewendet zu werden.) 5.Aufgabe: Perfektes Matching 5+2+10 Punkte (a) Hat der Graph G aus Abbildung 6 ein perfektes Matching? Begründe deine Aussage. (b) Ist der Graph G aus Abbildung 7 bipartit? Begründe deine Aussage. (c) Gegeben sei der Graph G aus Abbildung 7 und das Matching M = {e5 , e6 }. Entscheide mit Hilfe von Algorithmus 5.15 (Blossom-Algorithmus) aus der Vorlesung, ob G ein perfektes Matching hat oder nicht. Starte dabei mit dem Matching M . Gib nach jeder · Augmentierung das neue Matching · Baum-erweitern-Operation den neuen Baum · Schrumpfung den neuen Baum und den Graphen G′ an. Wähle dabei immer den ungematchten Knoten mit dem kleinsten Index als Startknoten für den Baum. Kommen bei der Auswahl der Kante in Schritt 3 von Algorithmus 5.15 mehrere Kanten in Frage, wähle die mit dem kleinsten Kantenindex. 6.Aufgabe: Fragen 3+3+3+4+3 Punkte Alle Antworten bitte mit Begründung. 4 v2 v1 v7 v6 v5 v4 v9 v8 v3 v10 v11 v12 v15 v13 v14 v17 v16 v18 Abbildung 6: Graph G. 5 v6 e7 v4 v5 e3 e5 e1 v1 e2 e6 e4 v2 v3 Abbildung 7: Graph G. (a) Vergleiche den Moore-Bellman-Ford-Algorithmus mit dem Algorithmus von Dijkstra. Nenne einen Vorteil und einen Nachteil des ersten gegenüber dem zweiten. (b) Gib eine möglichst große Klasse von Graphen an, für die der Blossom-Algorithmus ein perfektes Matching findet. (c) Ist das Problem, einen minimalen s-t-Cut in einem Netzwerk (G, u, s, t) zu finden, in polynomieller Zeit lösbar? Warum? (d) Welche Schlüsseleigenschaft muss ein Problem aufweisen, wenn es mit Dynamischer Programmierung gelöst werden soll? (e) Nenne einen Greedy-Algorithmus für das Problem der Bestimmung eines MSTs. Viel Erfolg!!! 6