Flüsse in Netzwerken

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

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

Algorithmen und Datenstrukturen Kapitel 10

Flüsse, Schnitte, bipartite Graphen

Wiederholung zu Flüssen

6. Flüsse und Zuordnungen

KAPITEL 4 FLÜSSE IN NETZWERKEN

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

Flüsse, Schnitte, Bipartite Graphen

Flüsse, Schnitte, bipartite Graphen

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

6 Flüsse und Matchings

Flüsse, Schnitte, bipartite Graphen

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

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

Effiziente Algorithmen und Datenstrukturen II

Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt;

4.7 Der Algorithmus von Dinic für maximalen Fluss

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

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

15. Elementare Graphalgorithmen

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

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

6. Flüsse und Zuordnungen

Flüsse und Schnitte von Graphen

Algorithmen und Datenstrukturen 2

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

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

Tutoraufgabe 1 (Floyd-Warshall):

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Kombinatorische Optimierung

Maximale s t-flüsse in Planaren Graphen

1.Aufgabe: Minimal aufspannender Baum

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

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

Bipartite Graphen. Beispiele

Effiziente Algorithmen Übung 2 Lösungen

Algorithmentheorie Maximale Flüsse

Algorithmische Graphentheorie

2.6.1 Definition und Darstellung Ausspähen von Graphen Minimal spannende Bäume Kürzeste Pfade 2.6.

FLÜSSE, SCHNITTE UND - TEIL 2 - BIPARTITE GRAPHEN. Vortrag im Seminar Hallo Welt Für Fortgeschrittene Dozenten: Werth, T. & Brinkers, D.

Effiziente Algorithmen (SS2014)

Netzwerkfluß. Gegeben ist ein System von Wasserrohren: Die Kapazität jedes Rohres ist 3, 5 oder 8 l/s.

Algorithmen II Vorlesung am

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

Systems of Distinct Representatives

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

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

9 Minimum Spanning Trees

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.

Wintersemester 2004/ Februar 2005

Kürzeste Wegealgorithmen

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

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

Vorlesung 2 KÜRZESTE WEGE

Tutoraufgabe 1 (Suchen in Graphen):

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

3.6 Branch-and-Bound-Verfahren

5. Bäume und Minimalgerüste

Klausur zum Modul Einführung in die Diskrete Mathematik

8 Diskrete Optimierung

ADS: Algorithmen und Datenstrukturen 2

3.4 Maximale Flüsse und der Algorithmus von Ford Fulkerson

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

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

Algorithmen und Datenstrukturen

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen zur Berechnung von Matchings

Das Briefträgerproblem

25. Flüsse in Netzen. Motivation. Fluss. Flussnetzwerk

Algorithmische Bioinformatik 1

Nachklausur Grundlagen der Algorithmik (Niedermeier/Froese/Chen/Fluschnik, Wintersemester 2015/16)

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

8 Das Flussproblem für Netzwerke

Algorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor

Algorithmen und Datenstrukturen

Very simple methods for all pairs network flow analysis

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

10. Übungsblatt zu Algorithmen I im SS 2010

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Effiziente Algorithmen I

Algorithmen & Komplexität

Algorithmen zur Berechnung von Matchings

Algorithmische Bioinformatik 1

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2)

Kap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS

WS 2009/10. Diskrete Strukturen

Lineare Programmierung (2)

Kap. 6.6: Kürzeste Wege

Maximale s t-flüsse in Planaren Graphen

Flüsse in Netzwerken

16. All Pairs Shortest Path (ASPS)

Vorlesung 2 KÜRZESTE WEGE

6. Flüsse in Netzwerken Berechnung maximaler Flüsse. dann berechnet der Markierungsalgorithmus für beliebige Kapazitätsfunktionen

Transkript:

Proseminar Theoretische Informatik, Prof. Wolfgang Mulzer, SS 17 Flüsse in Netzwerken Zusammenfassung Gesa Behrends 24.06.2017 1 Einleitung Unterschiedliche technische Phänomene wie der Flüssigkeitsdurchfluss durch ein Röhrensystem, elektrischer Strom in einem Leitungsnetz oder Datenverkehr über das Internet lassen sich durch Flüsse in Netzwerken modellieren. In den hier vorgestellten Algorithmen geht es darum, den Gesamtfluss, den das jeweilige Netzwerk aufnehmen kann, zu maximieren. Dieser Gesamtfluss entspricht dem Fluss, der im Einflusspunkt, der Quelle (source), in das Netzwerk eintritt und es am Abflusspunkt, der Senke (sink), wieder verlässt. 2 Modellierung eines Flussnetzwerkes Für dieses Berechnungen wird das Netzwerk durch einen gerichteten Graphen G = (V, E) mit einer Quelle s V und einer Senke t V modelliert, wobei jede Kante eine Kapazität c(u, v) 0 hat (die in der Realität dem maximalen Fluss, der diesen Streckenabschnitt passieren kann, entspricht). Dies wird zusammengefasst als Netzwerk N = (G, s, t) Wenn keine Kante vorhanden ist ((u, v) / E) ist die Kapazität c(u, v) = 0. Ein Fluss durch das Netzwerk G ist eine Funktion f : V V R, die folgende Bedingungen erfüllt: Kapazitätsbedingung: u, v V : f(u, v) c(u, v) Schiefsymmetrie: u, v V : f(u, v) = f(v, u) Flusserhaltung: u V \ {s, t} : v V f(u, v) = 0 Zur Vereinfachung wird im Folgenden gelegentlich die Einsteinsche Summennotation verwendet, es gilt: f(x, Y ) = f(x, y) x X y Y Beispielhaft lässt sich damit die eben genannte Flusserhaltung schreiben als: u V \ {s, t} : f(u, V ) = 0 Der Gesamtfluss, den das System aufnimmt, der Wert des Flusses f errechnet sich als die Summe aller Flüsse, die die Quelle s verlassen: f = v V f(s, v) Dieser Flusswert soll mit den hier vorgestellten Verfahren maximiert werden. 1

3 Die Ford-Fulkerson-Methode Diese Methode sucht iterativ Wege durch das Netzwerk von der Quelle bis zur Senke, die den Flusswert erhöhen ohne die Kapazitätsbedingung zu verletzen. Solche Wege heißen augmentierende Pfade (augmenting paths). Algorithm 1 Ford-Fulkerson-Methode 1: Fluss f(u,v) 0 2: while es gibt einen augmentierenden Pfad p do 3: erhöhe f entlang p 4: return f 3.1 Restnetze Nachdem der Fluss erhöht wurde, müssen die Kapazitäten neu errechnet werden, da der Fluss den eine Kante nun aufnehmen kann, sich verändert hat. Für die Restkapazität c f entlang einer Kante (u,v) gilt: c f (u, v) = c(u, v) f(u, v) Aufgrund der Schiefymmetrie gibt es auch negative Flüsse, (nämlich die Rückrichtung), diese Rückrichtungen, die zunächst die Kapazität 0 hatten, erhalten im Restnetz nun eine positive Kapazität. Für das Restnetz G f = (V, E f ) gilt: E f = {(u, v) V : c f (u, v) 0} Lemma 1. Sei G = (V,E) ein Flussnetzwerk mit Quelle s und Senke t und f ein Fluss in G. G f sei das durch f induzierte Restnetz und f ein Fluss in G f. Es gilt dann: (f + f )(u, v) = f(u, v) + f (u, v) ist ein Fluss in G mit dem Wert: f + f = f + f Zum Beweis von Lemma 1 muss überprüft werden, dass die 3 Bedingungen eines Flusses (Kapazitätsbedingung, Schiefsymmetrie, Flusserhaltung) erfüllt sind. 3.2 Augmentierende Pfade Ein augmentierender Pfad ist ein Weg von s nach t durch das Restnetz G f. Die sogenannte Restkapazität des Pfades c f (p) wird definiert durch: c f (p) = min{c f (u, v) : (u, v)liegt auf p} Der Fluss entlang des definierenden Pfades ergibt sich dann wie folgt: Lemma 2. Sei G = (V,E) ein Flussnetzwerk und f ein Fluss in G. Für den Fluss f p entlang eines augmentierenden Pfades in G f gilt dann: c f (p) für (u, v) p f p (u, v) = c f (p) für (v, u) p 0 andernfalls 2

Aus den Lemmata 1 und 2 ergibt sich, dass es in G einen Fluss f gibt, für den folgendes gilt: f = f + f p > f 3.3 Max-Flow-Min-Cut-Theorem Um zu zeigen, dass die Ford-Fulkerson-Methode tatsächlich einen maximalen Flusswert findet, wenn keine augmentierenden Pfade mehr zu finden sind, müssen wir zunächst Schnitte in Netzwerken einführen. Hier interessieren wir uns nur für Schnitte, deren eine Partition die Quelle s und deren andere die Senke t enthält. Diese werden Schnitt(S,T) genannt. Der Fluss f(s,t) über den Schnitt summiert sich über alle Flüsse von S nach T (diese gehen mit positivem Vorzeichen ein) und von T nach S (diese gehen mit negativem Vorzeichen ein). Hingegen werden für die Kapazität c(s,t) nur die Kanten von S nach T berücksichtigt. Für alle Schnitte(S,T) im Netzwerk gilt: Lemma 3. Sei N = (G,s,t) ein Flussnetzwerk und f ein Fluss in N. Sei weiterhin (S,T) ein Schnitt von G. Es gilt dann für den Fluss zwischen (S,T) das f(s, T ) = f Der Beweis erfolgt durch einige einfache Umformungen: f(s, T ) = f(s, V ) f(s, S) = f(s, V ) = f(s, V ) + f(s s, V ) = f(s, V ) = f Aus Lemma 3 folgt, dass der Fluss in einem Netzwerk von oben durch die Kapazität von jedem Schnitt von G begrenzt ist, da: f = f(s, T ) = f(u, v) c(u, v) = c(s, T ) u S v T u S v T Der maximal mögliche Fluss ist also von oben durch die Kapazität eines minimalen Schnittes über G (also eines Schnittes mit minimaler Kapazität) begrenzt. Genauer gilt sogar folgendes Theorem: Satz 1. Sei f ein Fluss im Flussnetzwerk N = (G,s,t), dann seien die folgenden Bedingungen äquivalent: 1. f ist ein maximaler Fluss in G 2. Das Restnetzwerk G f enthält keine augmentierenden Pfade. 3. f = c(s, T ) für einen Schnitt(S,T) von G Wir zeigen (1) = (2) mit einem Widerspruchsbeweis: Wenn es noch einen augmentierenden Pfad f p gäbe, dann gäbe es die Flussumme f + f p, die einen Fluss in G darstellte mit einem Wert, der größer wäre als f, womit f kein maximaler Fluss wäre. (2) = (3): Das Restnetz G f enthält keine augmentierenden Pfade mehr. Wir definieren S als: S = {v V : ein Pfad von s nach v in G f } und T als T = V \ S. Da es keinen Pfad mehr von s nach t gibt, muss t T. Es handelt sich somit um einen Schnitt(S,T). Es muss weiterhin gelten: u S v T : f(u, v) = c(u, v) 3

da andernfalls (u, v) E f, wodurch v S. (3) = (1): Wie oben gezeigt gilt: f c(s, T ) für alle Schnitte(S,T). Somit folgt aus f = c(s, T ), dass f ein maximaler Fluss sein muss. 4 Ford-Fulkerson-Algorithmus Die als Algorithmus 1 aufgeführt Ford-Fulkerson-Methode lässt sich zum Ford-Fulkerson-Algorithmus erweitern: Algorithm 2 Ford-Fulkerson (G,s,t) 1: for (u,v) E[G] do 2: f(u, v) 0 3: f(v, u) 0 4: while es gibt einen augmentierenden Pfad p im Restnetz G f do 5: c f (p) min{c f (u, v) : (u, v)isinp} 6: for (u,v) p do 7: f(u, v) f(u, v) + c f (p) 8: f(v, u) f(u, v) 4.1 Laufzeitanalyse Davon ausgehend, dass Flüsse und Kapazitäten nur ganze Zahlen annehmen dürfen, kann die while-schleife (Zeile 4, Algorithmus 2) maximal f max mal ausgeführt werden (bei jedem Durchlauf muss f um 1 erhöht werden). Ein augmentierender Pfad kann mit Breiten-oder Tiefensuche in O(E) gefunden werden. Es ergibt sich somit eine Laufzeit von O(E f max ). Diese Laufzeit kann bei großen Flusswerten problematisch werden. Eine Verbesserung beruht darauf, als augmentierende Pfad mittels einer Breitensuche immer den kürzesten Weg auszuwählen, dieses entspricht dem sogenannten Edmonds-Karp-Algorithmus. 4.2 Edmonds-Karp-Algorithmus Der Edmonds-Karp-Algorithmus entspricht Algorithmus 2, wobei als augmentierende Pfade jeweils der kürzeste Weg (shortest path) im Restnetz G f ausgewählt wird. Es gilt: Lemma 4. Sei N = (G,s,t) ein Flussnetzwerk, dann gilt für alle Knoten v V \ s, t, dass der Abstand δ f (s, v) des kürzesten Weges im Restnetz G f monoton mit jeder Flusserhöhung zunimmt. Satz 2. Werde der Edmonds-Karp-Algorithmus auf einem Flussnetzwerk N = (G,s,t) durchgeführt, dann liege die Gesamtzahl an Flusserhöhungen in O(V E). Zum Beweis noch eine Begriffseinführung: Eine Kante wird kritisch genannt, wenn c f (p) = c f (u, v). Wir wollen hier zeigen, dass jede Kante maximal V /2 1 kritisch werden kann. 4

Da der augmentierende Weg ein kürzester Weg ist, muss gelten: δ f (s, v) = δ f (s, u) + 1 Weiterhin muss die Kante (u,v) aus dem Restnetz verschwinden und zwar bis (v,u) auf einem augmentierenden Pfad auftritt. Sei f der Fluss zu diesem augmentierenden Pfad, dann gilt: δ f (s, u) = δ f (s, v) + 1 Gemäß Lemma 4 gilt δ f (s, v) δ f f (s, v), somit: δ f (s, u) = δ f (s, v) + 1 δ f (s, v) + 1 = δ f (s, u) + 2 Somit kann (u,v) erst wieder kritisch werden, nachdem der Abstand von u zur Quelle sich um 2 erhöht hat. Da sich auf dem kritischen Pfad von s nach u weder s noch u noch t befinden können, muss der maximale Abstand bei dem u nicht mehr erreichbar ist V 2 betragen. Somit kann u ( V 2)/2 = V /2 1 mal kritisch werden. Da das betrachtete Netzwerk O(E) Kanten enthält, können insgesamt O(E V ) kritische Kanten auftreten. Jeder augmentierende Pfad weist mindestens einen kritischen Kanten auf, es müssen also O(E V ) augmentierende Pfade untersucht werden. Zusammen mit der Zeit eines Durchlaufes des while-schleife (diese liegt in O(E)) ergibt sich für den Edmonds-Karp-Algorithmus eine Laufzeit von O(V E 2 ). 5 Quellen 1. Cormen, Thomas H. Introduction to algorithms. MIT press, 2009; S. 708ff 2. Schrijver, Alexander. Combinatorial optimization: polyhedra and efficiency. Vol A Springer, 2003; S.148ff 5