Graphentheorie. Maximale Flüsse. Maximale Flüsse. Maximale Flüsse. Rainer Schrader. 31. Oktober Gliederung. sei G = (V, A) ein gerichteter Graph

Ähnliche Dokumente
Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung.

6 Flüsse und Matchings

6. Flüsse und Zuordnungen

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

Wiederholung zu Flüssen

KAPITEL 4 FLÜSSE IN NETZWERKEN

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

Flüsse und Zuordnungen. Kapitel 6. Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/ / 296

1.Aufgabe: Minimal aufspannender Baum

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

4.7 Der Algorithmus von Dinic für maximalen Fluss

Algorithmische Graphentheorie

Bipartite Graphen. Beispiele

6. Flüsse und Zuordnungen

VU Algorithmen auf Graphen Übungsblatt 2 - Aufgabe 2 Transformation einer MaxFlow- in eine MinCost Circulation Instanz

Algorithmen und Datenstrukturen Kapitel 10

Optimierung auf Netzwerken

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Kürzeste-Wege-Algorithmen und Datenstrukturen

Flüsse in Netzwerken

Kapitel 1: Flussalgorithmen

Effiziente Algorithmen und Datenstrukturen II

EDM, Algorithmen und Graphenspeicherung

3.6 Branch-and-Bound-Verfahren

maximaler Fluss & minimaler Schnitt

Mathematische Modelle in den Naturwissenschaften Proseminar

Graphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007

Flüsse in Netzwerken. Seminar über Algorithmen SoSe Mike Rohland & Julia Schenk

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

ADS: Algorithmen und Datenstrukturen 2

Algorithmische Graphentheorie

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin

Vorlesung Kombinatorische Optimierung (Wintersemester 2016/17)

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

Wir gewichten die Kanten von G wie folgt: Kante e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d(e i )

Maximale s t-flüsse in Planaren Graphen

Der Preow-push-Algorithmus

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

Gliederung. Kapitel 4. Lokale Suchverfahren. Meta-Heuristiken. Simulated Annealing. Lokale Suchverfahren. Optimierungsalgorithmen

Anwendungen von Netzwerkfluss

Effiziente Algorithmen I 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin:

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

Effiziente Algorithmen I

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Statistik und Graphentheorie

Datenstrukturen & Algorithmen

Klausur zum Modul Einführung in die Diskrete Mathematik

Übung 5 Algorithmen II

Vorlesung Datenstrukturen

Algorithmen zur Visualisierung von Graphen

Flüsse, Schnitte, bipartite Graphen

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Algorithmentheorie Maximale Flüsse

Kombinatorische Optimierung

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

Graphentheorie. Zufallsgraphen. Zufallsgraphen. Zufallsgraphen. Rainer Schrader. 23. Januar 2008

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Minimum Cost Flow Grundlagen und erste Algorithmen. Philip Ralph Weber

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Univ.-Prof. Dr. Goulnara ARZHANTSEVA

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Flüsse, Schnitte, bipartite Graphen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Überblick. Kap. 1.4: Minimum Weight Perfect Matching. 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

Trennender Schnitt. Wie groß kann der Fluss in dem folgenden Flussnetzwerk höchstens sein?

Lösungshinweise 3 Vorlesung Algorithmentechnik im WS 08/09

Tutoraufgabe 1 (Suchen in Graphen):

ij. , d (k 1) + d (k 1)

Flüsse und Schnitte von Graphen

WS 2015/16 Diskrete Strukturen Kapitel 4: Graphen (Matchings)

Algorithmische Graphentheorie

Effiziente Algorithmen (SS2014)

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

Flüsse, Schnitte, Bipartite Graphen

Algorithmen II Vorlesung am

Einführung in die Mathematik des Operations Research

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Effiziente Algorithmen I

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005

Algorithmen zur Berechnung von Matchings

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

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

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

Kapitel 9: Lineare Programmierung Gliederung

Theoretische Informatik 1

Vorlesung Lineare Optimierung (Sommersemester 2007)

Das Matching Polytop

Netzwerk-Simplex. MinCostFlow als Lineares Programm. 1 of 12 Netzwerksimplex

Transkript:

Graphentheorie Rainer Schrader Zentrum ür Angewandte Inormatik Köln 31. Oktober 2007 1 / 30 2 / 30 Gliederung maximale Flüsse Schnitte Edmonds-Karp-Variante sei G = (V, A) ein gerichteter Graph sei c eine Abbildung von E R wir interpretieren c(e) als die Kapazität der Kante e alls (u, v ) / A, so sei c(u, v ) := 0 seien wiederum s und t zwei Knoten als Quelle und Senke der Graph repräsentiert ein Netzwerk (Leitungen, Kanäle, usw.) durch das Netzwerk sollen Flüssigkeiten oder Güter gepumpt werden wir wollen so viel wie möglich von s nach t pumpen 3 / 30 4 / 30

ein Fluss ist eine Abbildung x : E R x(e) gibt die Quantität an, die über die Kante e = (u, v ) ließt der Nettozuluss im Knoten v V ist: δ v (x) = x (e) e δ (v ) e δ + (v ) d.h. die Dierenz aus eingehendem und ausgehendem Fluss Zur Modellierung unseres Fluss-Problems: wir ügen eine Rückkante = (t, s) mit unbeschränkter Kapazität hinzu ein Fluss x heißt Zirkulation, wenn gilt: 0 x(e) c(e) x erüllt die Flusserhaltung in allen Knoten v V der Wert der Zirkulation ist gegeben durch x ( ) x erüllt die Flusserhaltungs-Bedingung in einem Knoten v, alls δ v (x) = 0 d.h. alles, was nach v hineinließt, ließt auch wieder heraus 5 / 30 6 / 30 Beispiel: im olgenden Graph sei c e = 1 ür alle e A sei nun x 0 eine zulässiger Fluss wir wollen versuchen, diesen zu verbessern sei dazu G(x) = (V, A(x)) ein Hilsgraph au V eine mögliche Zirkulation x mit x( ) = 1 ist: ür eine Kante e = (v, w ) A enthält G(x) bis zu zwei Kanten: (v, w ), alls x e < c e (Vorwärtskante) (w, v ), alls x e > 0 (Rückwärtskante) sei ε > 0 so, dass x(e) + ε c(e), ε 0, ür alle Vorwärtskanten e ür alle Rückwärtskanten e x ist nicht maximal, kann aber nicht einach erhöht werden. 7 / 30 8 / 30

die aktuelle Zirkulation x: sei P ein Weg von s nach t im Hilsgraphen G(x) dann kann x um mindestens ε > 0 erhöht werden: erhöhe x um ε au Vorwärtskanten von P und au = (t, s) erniedrige x um ε au den Rückwärtskanten von P der zugehörige Hilsgraph G(x): oensichtlich ist der resultierende Fluss nichtnegativ respektiert die Kapazitätsgrenzen und genügt der Flusserhaltung G(x) kann Kanten enthalten, die in G nicht vorkommen P heißt augmentierender Weg 9 / 30 10 / 30 der Hilsgraph G(x) mit einem augmentierendem Weg sei S die Menge aller Knoten, die in G(x) von s aus au einem gerichteten Weg erreicht werden können dann wissen wir also: alls t S, so kann x verbessert werden der verbesserte Fluss x : aus den vorangegangenen Überlegungen ergibt sich der olgende Algorithmus: 11 / 30 12 / 30

Algorithmus von Ford-Fulkerson (1) beginne mit x = 0 als Startlösung (2) konstruiere den Hilsgraphen G(x) (3) suche in G(x) einen augmentierenden Weg P von s nach t (4) alls kein solcher Weg existiert, stop, (5) andernalls erhöhe x entlang P zu einem neuen Fluss x mit = x( ) + ε x (6) setze x = x und gehe zu (2) Gliederung maximale Flüsse Schnitte Edmonds-Karp-Variante wir wollen zeigen, dass der Algorithmus optimale Zirkulationen berechnet dazu betrachten wir wieder ein duales Problem 13 / 30 14 / 30 sei S V eine Knotenmenge mit s S dann bestimmt S einen s-schnitt (S, V S) = {(v, w ) E v S, w / S} der Schnitt S hat die Kapazität c(s, V S) = e (S,V S) c e Lemma 1 (Schnittlemma) Sei x eine Zirkulation und S ein Schnitt. Dann gilt: (i) x( ) = P P x(e) e (ii) x( ) c(s, V S) Beweis: s S t (i) wegen der Flusserhaltung ür alle v S gilt: 0 = v S e δ + (v ) e δ (v ) x(e) jede Kante, die innerhalb von S verläut, wird einmal addiert und einmal subtrahiert somit: 0 = x (e) 15 / 30 16 / 30

0 = = x (e) x (e) (ii) olgt aus (i) mit 0 x (e) c(e): x( ) = e x(e) c(e) = c(s, V S) x (e) x (e) x( ) e x(e) sei wie vorher x 0 ein zulässiger Fluss sei S die Menge aller von s aus in G(x) erreichbaren Knoten angenommen t / S dann gilt ür jede Kante e = (v, w ) A: j c(e), wenn v S und w V S x(e) = 0, wenn v V S und w S. weiter olgt mit Lemma 1 x ( ) = somit ist x optimal e x (e) = c(s, V S) 17 / 30 18 / 30 Daraus ergibt sich der olgende Satz: Satz 2 (Ford-Fulkerson) Eine Zirkulation x ist genau dann optimal, wenn es im Hilsgraphen G(x) keinen augmentierenden Weg von s nach t gibt. Als Aussage über primal-duale Probleme: Korollar 3 (max-low-min-cut-theorem) Der Wert einer maximalen Zirkulation ist gleich der Kapazität eines minimalen Schnitts. Bemerkungen: sind die Kapazitäten c(e) ganzzahlig, so ist klar, dass der FF-Algorithmus nur ganzzahlige Lösungen x generiert in jeder Iteration der Flusswert x ( ) um ein ganzzahliges ε 1 verbessert wird eine leichte Modiikation des einührenden Beispiels zeigt, dass der Algorithmus von Ford-Fulkerson keine polynomielle Lauzeit hat von der olgenden Variante jedoch werden wir zeigen, dass wir die Lauzeit polynomiell beschränken können: 19 / 30 20 / 30

Gliederung maximale Flüsse Schnitte Edmonds-Karp-Variante Edmonds-Karp-Verahren (1) beginne mit x = 0 als Startlösung (2) konstruiere den Hilsgraphen G(x) (3) alls kein augmentierender Weg existiert, stop, (4 ) andernalls sei P ein kürzester (in der Zahl der Kanten) augmentierender Weg (5) erhöhe x entlang P zu einer neuen Zirkulation x mit = x( ) + ε x (6) setze x = x und gehe zu (2) bezeichne d (x, v ) die Distanz in G(x) von s nach v dann gilt: 21 / 30 22 / 30 Lemma 4 Bei der Edmonds Karp Variante wachsen mit jeder Augmentierung die Distanzen d (x, v ) ür alle Knoten v V {s, t} monoton. Beweis: angenommen die Aussage ist alsch dann existiert ein v V {s, t} mit d (x, v ) < d (x, v ) bei einer Augmentierung von x zu x wähle ein solches v, ür das d (x, v ) minimal ist sei P ein kürzester (s, v )-Weg in G(x ) sei u unmittelbarer Vorgänger von v au P (insbesondere ist dann (u, v ) A ) dann gilt: d (x, u) d (x, u) = d (x, v ) 1 (i) (u, v ) A(x): d (x, u) d (x, u) = d (x, v ) 1 dann ist d (x, v ) d (x, u) + 1 d (x, v ), Widerspruch (ii) (u, v ) / A(x): dann ist x(u, v ) = c(u, v ) da (u, v ) A(x ), muss der Fluss zwischen u und v reduziert worden sein also war v der direkte Vorgänger von u au dem kürzesten augmentierenden Weg d.h. d (x, v ) = d (x, u) 1 d (x, u) 1 = d (x, v ) 2 < d (x, v ) Widerspruch wir ühren eine Fallunterscheidung durch: 23 / 30 24 / 30

sei P ein kürzester Weg sei ε der Betrag, um den der Fluss erhöht wird eine Kante (u, v ) eines kürzesten Weges P heißt kritisch, alls j c(e) x(e), alls (u, v ) Vorwärtskante; ε = x(e), alls (u, v ) Rückwärtskante; d.h. (u, v ) bestimmt den Wert, um den der Fluss erhöht wird wir zeigen damit den olgenden: Satz 5 Die Edmonds Karp Variante ührt höchstens O(mn) Augmentierungen durch. Beweis: wir untersuchen, wie ot eine Kante (u, v ) kritisch sein kann wenn (u, v ) zum ersten Mal kritisch ist, gilt d (x, v ) = d (x, u) + 1 die Kante kann erst dann wieder kritisch werden, wenn die Gegenkante (v, u) au einem späteren augmentierenden Weg gelegen hat sei x der Fluss zu diesem Zeitpunkt dann gilt d (x, u) = d (x, v ) + 1 d (x, v ) + 1 = d (x, u) + 2 die Distanz von u hat sich oenbar um mindestens 2 erhöht die maximale Distanz bei n Knoten ist höchstens n somit kann jede Kante höchstens n -mal kritisch werden 2 da wir m Kanten haben, olgt die Behauptung. 25 / 30 26 / 30 Wenn die kürzesten augmentierenden Wege jeweils mittels depth-irst-search gesucht werden, ergibt sich eine Gesamtlauzeit von O(m 2 n) Das Problem lässt sich verallgemeinern: gegeben Kosten au den Kanten gegeben einen Flusswert bestimme eine Zirkulation x mit x = und minimalen Kosten weiter seien zu jedem e A untere Schranken l(e) 0 gegeben wir ordern also l(e) x(e) c(e) ür jede Zirkulation zusätzlich seien zu jedem v V Werte b(v ) gegeben bestimme eine maximale Zirkulation x mit δ x (v ) = b(v ) bestimme eine kostenminimale Zirkulation mit x ( ) = und δ x (v ) = b(v ) 27 / 30 Untere Schranken können einach au das klassische Problem zurückgeührt werden: wir deinieren ein neues Zirkulationsproblem au einem gerichteten Graphen G = (V, A ) V = V {s, t } mit neuen Knoten s, t A = A {(s, v ) : v V } {(v, t ) : v V } neue untere Schranken l (e) = 0 ür alle e A neue obere Schranken 8 < c(e) l(e), c (e) = l(δ (v )), : l(δ + (v )), l 1 l 2 c l 2 2 l 3 c 3 ür e A ür e = (s, v ), v V ür e = (v, t ), v V c l 1 1 l l 1 + l + l 2 3 3 s s t 28 / 30

Durch einaches Nachrechnen lässt sich dann die olgende Aussage beweisen: Satz 6 In G existiert genau dann eine zulässige Zirkulation bezüglich der Schranken l und c, wenn in G eine Zirkulation mit dem Wert x = P e A l(e) existiert. Satz 7 In G existiert genau dann eine zulässige Zirkulation bezüglich b, wenn in G eine Zirkulation existiert. Ähnlich werden Knotenbedingungen b(v ) behandelt: üge einen neuen Knoten r hinzu ür v V mit b(v ) < 0: üge neue Kante (r, v ) mit l(r, v ) = c(r, v ) = b(v ) hinzu ür v V mit b(v ) < 0: üge neue Kante (v, r ) mit l(v, r ) = c(v, r ) = b(v ) hinzu 29 / 30 30 / 30