Abteilung Algorithmik Institut für Betriebssysteme und Rechnerverbund TU Braunschweig Sommer ’17 Dr. Christian Scheffer Christian Rieck Netzwerkalgorithmen Übungsblatt 1 vom 17. 04. 2017 Die Abgabe der Lösungen zu Blatt 1 ist bis Dienstag, den 02. 05. 2017 um 13:15 Uhr im Hausaufgabenrückgabeschrank der Algorithmik möglich. Luft (Atrium) Bitte die Blätter vorne deutlich mit eigenem Namen sowie Matrikelnummer versehen und zusammenheften! 3. Stock Informatikzentrum WICHTIG: Um die Studienleistung zu erhalten, müssen am Ende des Semesters insgesamt mindestens 50% der Hausaufgabenpunkte erreicht worden sein. Es wird insgesamt fünf Aufgabenblätter mit je 60 möglichen Punkten geben. Aufgabe 1: Sei G = (V, E) ein Graph und sei das Gewicht w(ei ) = 1, ∀ei ∈ E. Gib einen Algorithmus an, der für G einen MST T berechnet. Dein Algorithmus soll eine Laufzeit von O(|E| + |V |) haben. (6 Punkte) Aufgabe 2: Sei G = (V, E) ein Graph und sei e ∈ E eine Kante mit minimalem Gewicht. Zeige, e ist Teil eines MST T von G. (7 Punkte) Aufgabe 3: Sei G = (V, E) ein zusammenhängender Graph, C ein Kreis in G und e ∈ E die Kante aus C mit dem größten Gewicht. Definiere G0 := G − e, dass heißt, G0 besitzt alle Kanten und Knoten von G mit Ausnahme der Kante e. a) Zeige oder widerlege: G0 ist zusammenhängend. b) Zeige oder widerlege: Ist T 0 ein MST von G0 , dann ist T 0 auch ein MST von G. (5+10 Punkte) Aufgabe 4: Betrachte den folgenden Algorithmus. Sei G = (V, E) ein Graph. Teile die Knoten des Graphen G in zwei disjunkte Teilmengen V1 und V2 mit V = V1 ∪ V2 auf, so dass sich die Mengen um höchstens einen Knoten unterscheiden. Seien E1 und E2 die Kantenmengen die jeweils nur zu Knoten aus V1 und V2 inzident sind. Nun wird das MST-Problem rekursiv für die beiden Teilgraphen G1 = (V1 , E1 ) und G2 = (V2 , E2 ) gelöst. Seite 1 / 2 Schließlich wird eine Kante von E mit minimalem Gewicht gewählt, die einen Endknoten in V1 und V2 besitzt, um die beiden Teilbäume zu verbinden. Zeige oder widerlege: der Algorithmus ist korrekt und berechnet einen MST. (7 Punkte) Aufgabe 5: Bestimme den MST mit dem Algorithmus von Kruskal. Gib dazu die Kanten in der Reihenfolge an, in der sie in den Baum aufgenommen werden und zeichne den gefundenen MST. Kommen in einem Schritt mehrere Kanten in Frage, wähle die bei dem der konkatenierte Index der Endknoten am kleinsten ist (der konkatenierte Index der Kante {v4 , v9 } ist 49). Die Kanten haben die folgenden Gewichte: v4 v1 v7 v0 v2 v9 v5 v3 {v0 , v1 } = 7, {v1 , v4 } = 2, {v4 , v5 } = 6, {v5 , v9 } = 4, {v0 , v3 } = 2, {v2 , v3 } = 3, {v4 , v9 } = 3, {v6 , v8 } = 5, v6 {v0 , v6 } = 7, {v2 , v5 } = 6, {v5 , v6 } = 3, {v7 , v8 } = 8, v8 {v1 , v2 } = 4, {v3 , v4 } = 1, {v5 , v7 } = 8, {v7 , v9 } = 7, {v8 , v9 } = 4 (15 Punkte) Aufgabe 6: Sei das Gewicht w(T ) eines aufspannenden Baumes T das Gewicht w(e) der größten Kante e ∈ T . Gib einen Algorithmus an, der einen MST unter dieser Gewichtsdefinition berechnet und begründe kurz seine Korrektheit. (10 Punkte) Seite 2 / 2