Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Netzwerkalgorithmen 16.07.2013 Name:..................................... Vorname:.................................. Matr.-Nr.:................................. Studiengang:............................... Bachelor Master Diplom Andere Mit der Veröffentlichung des Klausurergebnisses nur mit der Matrikelnummer über die Mailingliste und auf der Homepage bin ich einverstanden.... Unterschrift Hinweise: Bitte das Deckblatt ausfüllen. Die Heftung der Blätter darf nicht entfernt werden. Eigenes Papier ist nicht erlaubt. Die Rückseiten dieser Blätter dürfen beschrieben werden. Die Klausur besteht aus 17 Blättern. Hilfsmittel: keine. Die Klausur ist mit 50 von 100 Punkten bestanden. Alle Graphen in dieser Klausur sind einfache Graphen. Mit Bleistift oder in rot geschriebene Klausurteile können nicht gewertet werden. Die Bearbeitungszeit für die Klausur ist 120 Minuten. Bearbeitete Aufgaben bitte unten ankreuzen. Punktzahlen für die Korrektur freilassen! Aufgabe 1 2 3 4 5 6 Σ Bearbeitet ( ) Punkte 20 14 22 12 17 15 100 erzielte Punkte 1
1.Aufgabe: Minimaler aufspannender Baum 10+5+5 Punkte Abbildung 1: Der Graph G. (a) Bestimme mit Hilfe des Algorithmus von Kruskal einen MST im Graphen G aus Abbildung 1. Starte dabei mit dem Knoten v 1 und gib die von Kruskal aufgebaute Datenstruktur nach jedem Einfügen einer Kante ein. Zeichne den berechneten MST. 2
(b) Sei G ein Wald mit n Knoten und m Kanten. Wieviele Zusammenhangskomponenten hat G? 3
(c) Betrachte den Algorithmus von Boruvka zur Berechnung eines MST auf einem zusammenhängenden Graphen G: Boruvka Eingabe: G = (V, E) zusammenhängend, V = {1,..., n}, Gewichtsfunktion w : E R, bei der alle Kanten unterschiedliches Gewicht haben. Ausgabe: MST T (1) FOR i = 1 TO n DO V i = {i} DO (2) T =, M = {V 1,..., V n }; (3) WHILE T < n 1 DO (4) FOR U M DO (5) finde eine Kante e = uv mit u U, v / U und w(e) w(e ) (6) für alle Kanten e = u v mit u U, V / U; (7) Finde die Komponente U, die v enthält; (8) T = T {e}; (9) OD (10) FOR U M DO Merge(U, U ) OD (11) OD Zeige, dass die Bedingung, dass alle Kantengewichte verschieden sein müssen, notwendig ist für die Korrektheit des Algorithmus. 4
2.Aufgabe: Kürzester Weg 7+7 Punkte Abbildung 2: Der Graph G. (a) Bestimme im Graphen aus Abbildung 2 mit Hilfe des Algorithmus von Dijkstra einen kürzesten Weg von s nach t. Gib für jeden Schleifendurchlauf die Längen und die Vorgänger, die sich ändern, an. Kommen mehrere Knoten zur Auswahl in Frage, wähle immer den mit kleinerem Index. 5
(b) Modifiziere den Algorithmus von Moore-Bellman-Ford aus der Vorlesung so, dass er ausgibt, ob der Graph einen negativen Kreis enthält, der vom Startknoten s aus erreichbar ist (und nicht mehr die kürzesten Wege ausgibt). 6
3.Aufgabe: Maximaler Fluss 7+7+4+4 Punkte Abbildung 3: Das Netzwerk (G, u, s, t). Die Tupel an den Kanten haben die Form (Flusswert/ Kapazität). (a) Gib den Residualgraphen und die Residualkapazitäten zum Netzwerk (G, u, s, t) aus Abbildung 3 an. 7
(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. (c) Ist der von Dir gefundene Fluss optimal? Belege Deine Aussage. 8
(d) Gib einen minimalen Cut an. Wie ist dieser aus Deinem maximalen Fluss abzuleiten? 9
4.Aufgabe: Maximales Matching 5+1+3+3 Punkte Abbildung 4: Graph G. (a) Betrachte den bipartiten Graphen G aus Abbildung 4. Es soll mit Hilfe der Flussformulierung ein kardinalitätsmaximales Matching in G bestimmt werden. Zeichne das Netzwerk, in dem ein maximaler Fluss bestimmt werden muss. 10
(b) Trage einen Fluss mit Wert 3 in das Netzwerk aus (a) ein. (Hinweis: Dazu braucht kein Algorithmus angewendet zu werden.) (c) Zeichne einen s-t-cut der Größe 3 in das Netzwerk ein. Gib die Kanten an, die zum Cut gehören. (d) Gib ein minimales Vertex Cover für den Graphen G an. Wie leitest Du dieses Vertex Cover aus Deinem Schnitt in (c) her? 11
5.Aufgabe: Perfektes Matching 6+2+9 Punkte Abbildung 5: Graph G. (a) Hat der Graph G aus Abbildung 5 ein perfektes Matching? Begründe deine Aussage. Gib allen Knoten aus G eindeutige Namen. 12
Abbildung 6: Graph G. (b) Ist der Graph G aus Abbildung 6 bipartit? Begründe deine Aussage. 13
(c) Gegeben sei der Graph G aus Abbildung 6 und das Matching M = {e 2, e 4 }. Entscheide mit Hilfe vom Blossom-Algorithmus aus der Vorlesung, ob G ein perfektes Matching hat oder nicht. Starte dabei mit dem Matching M. Gib nach jeder an. Augmentierung das neue Matching Baum-erweitern-Operation den neuen Baum Schrumpfung den neuen Baum und den Graphen G 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 vom Blossom-Algorithmus mehrere Kanten in Frage, wähle die mit dem kleinsten Kantenindex. 14
15
6.Aufgabe: Fragen 3+3+3+3+3 Punkte Alle Antworten bitte mit Begründung. (a) Warum gilt in bipartiten Graphen max Matching = min VC? (b) Gegeben sei ein Graph mit nichtnegativen, ganzzahligen Kantengewichten. Du möchtest die kürzesten Wege von einem Knoten s zu allen anderen bestimmen. Wie kannst Du Breitensuche verwenden und was ergibt das für eine Laufzeit? (c) Erläutere die Korrektheit von Prims Algorithmus. 16
(d) Gib einen noch zu verbessernden Fluß an, so dass für einen augmentierenden Pfad eine Rückwärtskante im Residualgraphen genutzt wird. (Hinweis: starte mit der Konstruktion des Residualgraphen.) (e) Was berechnest Du, wenn Du einen Steinerbaum minimalen Gesamtgewichts für T = 2 berechnest? (Dabei ist T die Menge der Terminals.) Viel Erfolg!!! 17