Algorithmen II Vorlesung am

Ähnliche Dokumente
Algorithmen II Vorlesung am

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Maximale s t-flüsse in Planaren Graphen

Kombinatorische Optimierung

Algorithmen für Planare Graphen

Maximale s t-flüsse in Planaren Graphen

3. Musterlösung. Problem 1: Boruvka MST

Maximale s t-flüsse in Planaren Graphen

Kürzeste-Wege-Algorithmen und Datenstrukturen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

5. Bäume und Minimalgerüste

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Wiederholung zu Flüssen

Effizienter Planaritätstest Vorlesung am

Kombinatorische Optimierung

Minimale Schnitte und Schnittbäume

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode.

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Algorithmische Methoden zur Netzwerkanalyse

Algorithmen und Datenstrukturen 2

Algorithmen II Vorlesung am

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Algorithmen & Komplexität

10. Übung Algorithmen I

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität.

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

9 Minimum Spanning Trees

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens

Berechnung von Abständen

Betriebswirtschaftliche Optimierung

Übung 5 Algorithmen II

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Naiver Algorithmus für Hamiltonkreis

9. Übung Algorithmen I

Betriebliche Optimierung

2. Das single-source-shortest-path-problem

Effiziente Algorithmen I

3.2 Generischer minimaler Spannbaum-Algorithmus

Datenstrukturen und Algorithmen

Relationen und DAGs, starker Zusammenhang

Vorlesung 2 KÜRZESTE WEGE

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Vorlesungstermin 2: Graphentheorie II. Markus Püschel David Steurer. Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Theoretische Grundlagen der Informatik

Algorithmische Methoden zur Netzwerkanalyse

Lernmodul 7 Algorithmus von Dijkstra

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Breitensuche BFS (Breadth First Search)

durch Einfügen von Knoten konstruiert werden kann.

Algorithmische Methoden zur Netzwerkanalyse

Vorlesung Datenstrukturen

3 Klassifikation wichtiger Optimierungsprobleme

15. Elementare Graphalgorithmen

Polygontriangulierung

6. Musterlösung. Problem 1: Abgeschlossenheit der Addition *

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Fortgeschrittene Netzwerk- und Graph-Algorithmen

4. Kreis- und Wegeprobleme

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Bäume und Wälder. Definition 1

Algorithmische Graphentheorie

1 Kürzeste Pfade in Graphen

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Freie Bäume und Wälder

Datenstrukturen und Algorithmen SS07

Transkript:

Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum II Wintersemester 0/0 in der Helmholtz-Gemeinschaft www.kit.edu

Schnitte minimalen Gewichts: MinCut Algorithmen II Wintersemester 0/0

Problem MINCUT Problem: MINCUT Gegeben sei ein Graph G = (V, E) mit Kantengewichtsfunktion c : E R + 0. Finde einen nichttrivialen Schnitt (S, V \ S) minimalen Gewichts in G, d.h. finde S V mit S V, sodass c(s, V \ S) := c({u, v}) {u, v} E, u S, v V \ S minimal wird. (S, V\S) wird minimaler Schnitt genannt. 5 7 8 Algorithmen II Wintersemester 0/0

Problem MINCUT Problem: MINCUT Gegeben sei ein Graph G = (V, E) mit Kantengewichtsfunktion c : E R + 0. Finde einen nichttrivialen Schnitt (S, V \ S) minimalen Gewichts in G, d.h. finde S V mit S V, sodass c(s, V \ S) := c({u, v}) {u, v} E, u S, v V \ S minimal wird. (S, V\S) wird minimaler Schnitt genannt. S V \ S 5 7 8 c(s, V \ S) = Algorithmen II Wintersemester 0/0

Schnittberechnung mittels Flussalgorithmus Bemerkung: Dualität zu maximalem Fluss (Bemerkung.) Zu gegebenen s, t V kann ein minimaler s-t-schnitt mit einem Flussalgorithmus (z.b. Ford & Fulkerson, Goldberg & Tarjan) berechnet werden. Das Minimum über alle Paare s, t V liefert einen global minimalen Schnitt. ( ) V Θ( V ) Flussberechnungen. Da im minimalen Schnitt jeder Knoten von irgendeinem anderen getrennt wird, kann man stattdessen s V auch festhalten und t V \ {s} wähle. V Flussberechnungen. Heute: Effizientere Berechnung eines minimalen Schnittes ohne Flussalgorithmus. Algorithmen II Wintersemester 0/0

Stark verbundene Knoten Definition: Am stärksten verbundene Knoten (Definition.) Zu S V und v V \ S sei c(s, v) = {u, v} E u S c({u, v}). Den Knoten v V \ S, für den c(s, v) maximal wird, nennen wir auch den am stärksten mit S verbundenen Knoten. S 5 7 8 c(s, ) = + = 5 c(s, ) = c(s, 8) = Knoten ist am stärksten mit S verbunden. Algorithmen II Wintersemester 0/0

Verschmelzen zweier Knoten Definition: Verschmelzen zweier Knoten (Definition.) Seien s, t V. Dann können s und t wie folgt verschmolzen werden. s und t werden durch einen neuen Knoten x s,t ersetzt. Alle Kanten die vorher zu s oder t inzident waren sind jetzt zu x s,t inzident (abgesehen von {s, t}, falls s und t adjazent waren). Mehrfachkanten werden aufgelöst indem Kantengewichte addiert werden. 5 7 8 5, 7 8 Algorithmen II Wintersemester 0/0 Verschmelzen der Knoten und 7. 5, 7 5 8

Algorithmus von Stoer & Wagner Überblick Der Algorithmus von Stoer & Wagner besteht V Phasen. In jeder Phase i wird ein Schnitt in einem Graphen G i = (V i, E i ) berechnet, der Schnitt der Phase i. G i entsteht aus G i durch Verschmelzen geeigneter Knoten, wobei G = G. Ergebnis des Algorithmus ist der minimale Schnitt aller Schnitte der einzelnen Phasen i (für i V ). Ablauf einer Phase i Starte mit S i = {a}, wobei a ein beliebiger Startknoten in G i ist. Füge iterativ den am stärksten zu S i verbundenen Knoten zu S i hinzu. Seien s und t die als vorletztes bzw. als letztes zu S i hinzugefügten Knoten. Der Schnitt der Phase i ist (V i \ {t}, {t}). G i+ entsteht aus G i durch Verschmelzen von s und t. Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} (beliebig gewählter Startknoten) 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} S = {, } (beliebig gewählter Startknoten) ( am stärksten zu {} verbunden) 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} S = {, } (beliebig gewählter Startknoten) ( am stärksten zu {} verbunden) S = {,, } ( am stärksten zu {, } verbunden) 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} S = {, } (beliebig gewählter Startknoten) ( am stärksten zu {} verbunden) S = {,, } ( am stärksten zu {, } verbunden) S = {,,, 7} 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} S = {, } (beliebig gewählter Startknoten) ( am stärksten zu {} verbunden) S = {,, } ( am stärksten zu {, } verbunden) S = {,,, 7} S = {,,, 7, 8} 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} S = {, } (beliebig gewählter Startknoten) ( am stärksten zu {} verbunden) S = {,, } ( am stärksten zu {, } verbunden) S = {,,, 7} S = {,,, 7, 8} S = {,,, 7, 8, } 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} S = {, } (beliebig gewählter Startknoten) ( am stärksten zu {} verbunden) S = {,, } ( am stärksten zu {, } verbunden) S = {,,, 7} S = {,,, 7, 8} S = {,,, 7, 8, } S = {,,, 7, 8,, 5} 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} S = {, } (beliebig gewählter Startknoten) ( am stärksten zu {} verbunden) S = {,, } ( am stärksten zu {, } verbunden) S = {,,, 7} S = {,,, 7, 8} S = {,,, 7, 8, } S = {,,, 7, 8,, 5} S = {,,, 7, 8,, 5, } 5 7 8 Schnitt der Phase: {V \ {}, {}} Gewicht 5 s t Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G S = {} S = {, } (beliebig gewählter Startknoten) ( am stärksten zu {} verbunden) S = {,, } ( am stärksten zu {, } verbunden) S = {,,, 7} S = {,,, 7, 8} S = {,,, 7, 8, } S = {,,, 7, 8,, 5} S = {,,, 7, 8,, 5, } 5 7 8 Schnitt der Phase: {V \ {}, {}} Gewicht 5 Verschmelzen von s und t ergibt G s t, 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G mit und 5 verschmolzen S = {} (beliebig gewählter Startknoten), 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G mit und 5 verschmolzen S = {} S = {, {, 5}} (beliebig gewählter Startknoten), 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G mit und 5 verschmolzen S = {} S = {, {, 5}} S = {, {, 5}, } (beliebig gewählter Startknoten), 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G mit und 5 verschmolzen S = {} S = {, {, 5}} S = {, {, 5}, } S = {, {, 5},, } (beliebig gewählter Startknoten), 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G mit und 5 verschmolzen S = {} S = {, {, 5}} S = {, {, 5}, } S = {, {, 5},, } S = {, {, 5},,, } (beliebig gewählter Startknoten), 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G mit und 5 verschmolzen S = {} S = {, {, 5}} S = {, {, 5}, } S = {, {, 5},, } S = {, {, 5},,, } S = {, {, 5},,,, 7} (beliebig gewählter Startknoten), 5 7 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase G = G mit und 5 verschmolzen S = {} S = {, {, 5}} S = {, {, 5}, } S = {, {, 5},, } S = {, {, 5},,, } S = {, {, 5},,,, 7} S = {, {, 5},,,, 7, 8} (beliebig gewählter Startknoten) s t, 5 7 8 Schnitt der Phase: {V \ {8}, {8}} Gewicht 5 Verschmelzen von s und t ergibt G, 5 7, 8 Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Beispiel Phase Schnitt der Phase: {V \ {}, {}} Gewicht 5 Phase Schnitt der Phase: {V \ {8}, {8}} Gewicht 5 Phase Schnitt der Phase: {V \ {{7, 8}}, {{7, 8}}} Gewicht 7 Phase Schnitt der Phase: {V \ {{, 7, 8}}, {{, 7, 8}}} Gewicht 7 Phase 5 Schnitt der Phase: {V 5 \ {{,, 7, 8}}, {{,, 7, 8}}} Gewicht Phase Schnitt der Phase: {V \ {{, 5}}, {{, 5}}} Gewicht 7 Phase 7 Schnitt der Phase: {V 7 \ {}, {}} Gewicht 9 siehe Skript Der Schnitt aus Phase 5 ist minimal unter den Schnitten der einzelnen Phasen. Der Algorithmus von Stoer & Wagner gibt diesen Schnitt aus. 5 7 8 (Beweis, dass der so bestimmte Schnitt immer ein minimaler Schnitt ist folgt später.) Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Laufzeit MINSCHNITTPHASE(G i, c, a) S {a} t a while S V i do v Knoten aus V i \ S sodass c(s, v) maximal S S {v} s t t v O() O(log V + deg(v)) O() Speichere (V i \ {t}, {t}) als SCHNITT-DER-PHASE Konstruiere aus G i Graph G i+ durch Verschmelzen von s und t Benutze einen FIBONACCI-HEAP um c(s, u) für alle u V i \ S zu speichern. Maximum v entfernen: O(log V ) Nachbarn von v updaten: O(deg(v)) Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Laufzeit MINSCHNITTPHASE(G i, c, a) S {a} t a while S V i do v Knoten aus V i \ S sodass c(s, v) maximal S S {v} s t t v O() O( V log V + E ) O(log V + deg(v)) O() Speichere (V i \ {t}, {t}) als SCHNITT-DER-PHASE Konstruiere aus G i Graph G i+ durch Verschmelzen von s und t Benutze einen FIBONACCI-HEAP um c(s, u) für alle u V i \ S zu speichern. Maximum v entfernen: O(log V ) Nachbarn von v updaten: O(deg(v)) Jeder Knoten wird nur einmal zu S hinzugefügt. deg(v) = E O( E ) v V Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Laufzeit MINSCHNITTPHASE(G i, c, a) S {a} t a while S V i do v Knoten aus V i \ S sodass c(s, v) maximal S S {v} s t t v O( V log V + E ) O() O( V log V + E ) O(log V + deg(v)) O() Speichere (V i \ {t}, {t}) als SCHNITT-DER-PHASE Konstruiere aus G i Graph G i+ durch Verschmelzen von s und t O( E ) Benutze einen FIBONACCI-HEAP um c(s, u) für alle u V i \ S zu speichern. Maximum v entfernen: O(log V ) Nachbarn von v updaten: O(deg(v)) Jeder Knoten wird nur einmal zu S hinzugefügt. deg(v) = E O( E ) v V Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Laufzeit MINSCHNITTPHASE(G i, c, a) O( V log V + E ) MIN-SCHNITT(G, c, a) G G for i = to V do MINSCHNITTPHASE(G i, c, a) if SCHNITT-DER-PHASE ist kleiner als MIN-SCHNITT then speichere SCHNITT-DER-PHASE als MIN-SCHNITT Gib MIN-SCHNITT aus. O( V log V + V E ) O() O( V log V + V E ) O( V log V + E ) O() O() Lemma: Laufzeit des Algorithmus von Stoer & Wagner Der Algorithmus von Stoer & Wagner hat eine Laufzeit von O( V log V + V E ). Zum Vergleich: Der Flussalgorithmus von Goldberg & Tarjan hat eine Laufzeit von O( V E log( V / E )) Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Korrektheit Definition: s-t-schnitt Für s, t V, s t nenne den Schnitt (S, V \ S) mit s S und t V \ S einen s-t-schnitt. Ein s-t-schnitt trennt Knoten u und v, wenn u S und v V \ S. Lemma: SCHNITT-DER-PHASE ist minimaler s-t-schnitt (Lemma.5) Sei (S, V \ S) der SCHNITT-DER-PHASE in einem Graphen G = (V, E) mit Kostenfunktion c : E R + 0 und Startknoten a V. Dann ist (S, V \ S) minimal unter allen s-t-schnitten, wobei s und t vorletzter bzw. letzter betrachteter Knoten ist. Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Korrektheit Definition: s-t-schnitt Für s, t V, s t nenne den Schnitt (S, V \ S) mit s S und t V \ S einen s-t-schnitt. Ein s-t-schnitt trennt Knoten u und v, wenn u S und v V \ S. Lemma: SCHNITT-DER-PHASE ist minimaler s-t-schnitt (Lemma.5) Sei (S, V \ S) der SCHNITT-DER-PHASE in einem Graphen G = (V, E) mit Kostenfunktion c : E R + 0 und Startknoten a V. Dann ist (S, V \ S) minimal unter allen s-t-schnitten, wobei s und t vorletzter bzw. letzter betrachteter Knoten ist. Beweis: Zeige: Für jeden s-t-schnitt (S, V \ S ) gilt: c(s, V \ S) c(s, V \ S ) a s t a s t S V \ S V \ S S Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Korrektheit Beweis: Zeige: Für jeden s-t-schnitt (S, V \ S ) gilt: c(s, V \ S) c(s, V \ S ) Definition: aktive Knoten MINSCHNITTPHASE betrachtet die Knoten aus V gemäß einer linearen Ordnung, die mit a beginnt und mit s und t endet. Ein Knoten v V heißt aktiv (bzgl. S ), wenn {S, V \ S } den Knoten v von seinem Vorgänger trennt. a s t a s t S V \ S V \ S S Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Korrektheit Beweis: Zeige: Für jeden s-t-schnitt (S, V \ S ) gilt: c(s, V \ S) c(s, V \ S ) Definition: aktive Knoten MINSCHNITTPHASE betrachtet die Knoten aus V gemäß einer linearen Ordnung, die mit a beginnt und mit s und t endet. Ein Knoten v V heißt aktiv (bzgl. S ), wenn {S, V \ S } den Knoten v von seinem Vorgänger trennt. a s t a s t S V \ S V \ S Definition: Für v V \ {a} sei S v Menge der Knoten vor v. Sei weiter V v = S v {v} sowie S v = S V v. a v s t a v s t S S V \ S V \ S v {v} V v \ S v Betrachte Einschränkung von G auf V v für aktiven Knoten v. Zeige: c(s V, {v}) c(s v, V v \ S v ) (zeigt genau das gewünschte für v = t) S v S S Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Korrektheit () Satz: Korrektheit des Algorithmus von Stoer & Wagner (Satz.) Der minimale Schnitt von allen Ergebnissen der V Ausführungen von MIN- SCHNITTPHASE ist ein minimaler, nichttrivialer Schnitt in G = (V, E) mit V. Algorithmen II Wintersemester 0/0

Algorithmus von Stoer & Wagner Korrektheit () Satz: Korrektheit des Algorithmus von Stoer & Wagner (Satz.) Der minimale Schnitt von allen Ergebnissen der V Ausführungen von MIN- SCHNITTPHASE ist ein minimaler, nichttrivialer Schnitt in G = (V, E) mit V. Beweis: Induktion über V. Induktionsanfang: V = ist trivial. Induktionsschritt: V Betrachte Phase mit vorletztem bzw. letztem Knoten s und t. Fall : G hat einen nichttrivialen minimalen Schnitt, der s von t trennt. Schnitt der ersten Phase ist ein nichttrivialer minimaler Schnitt. Fall : G hat keinen nichttrivialen minimalen Schnitt, der s von t trennt. In jedem nichttrivialen minimalen Schnitt liegen s und t auf der gleichen Seite. Verschmilzt man s und t, so induziert ein minimaler Schnitt im resultierenden Graph G einen in minimalen Schnitt in G. Laut Induktionsvoraussetzung liefert der Algorithmus einen minimalen Schnitt für G. Algorithmen II Wintersemester 0/0