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



Ähnliche Dokumente
Flüsse in Netzwerken

8 Das Flussproblem für Netzwerke

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

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

Flüsse, Schnitte, bipartite Graphen

Flüsse in Netzwerken

Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen Kapitel 10

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

3.4 Maximale Flüsse und der Algorithmus von Ford Fulkerson

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

4.7 Der Algorithmus von Dinic für maximalen Fluss

Algorithmische Graphentheorie

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Algorithmen und Datenstrukturen 2-2. Seminar -

Algorithmentheorie Maximale Flüsse

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Flüsse, Schnitte, bipartite Graphen

Algorithmen und Datenstrukturen 2

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

6. Flüsse und Zuordnungen

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

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

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

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

Flüsse, Schnitte, bipartite Graphen

6 Flüsse und Matchings

Vorlesung Diskrete Strukturen Transportnetze

Wiederholung zu Flüssen

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

Zählen perfekter Matchings in planaren Graphen

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

Kapitel 1: Flussalgorithmen

ADS: Algorithmen und Datenstrukturen 2

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Klausurvorbereitung. 1 Zentrale Begriffe. 2 Bipartite Graphen. 2.1 Begriffe. Vorlesung Graphen und Optimierung Sommersemester 2011 Prof. S.

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

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

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

ADS: Algorithmen und Datenstrukturen 2

KAPITEL 4 FLÜSSE IN NETZWERKEN

Bipartite Graphen. Beispiele

Maximaler Fluss = minimaler Schnitt

Flüsse, Schnitte, Bipartite Graphen

6. Flüsse und Zuordnungen

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

Gemischt-ganzzahlige und Kombinatorische Optimierung

Formale Grundlagen der Informatik

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

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

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Flüsse und Schnitte von Graphen

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

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

15. Elementare Graphalgorithmen

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

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

Statistik und Graphentheorie

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

Effiziente Algorithmen (SS2014)

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

Der Preow-push-Algorithmus

KAPITEL 6 GANZZAHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULARE MATRIZEN

Anwendungen von Netzwerkfluss

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Algorithmische Graphentheorie

Very simple methods for all pairs network flow analysis

WS 2008/09. Diskrete Strukturen

Very simple methods for all pairs network flow analysis

Proseminar Graphentheorie Vortrag 3 Matching. Inhalt: 1. Grundlagen 2. Matchings in bipatiten Graphen 3. Matchings in allgemeinen Graphen

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

Effiziente Algorithmen I

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009

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

Algorithmen & Komplexität

Maximale s t-flüsse in Planaren Graphen

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

EDM, Algorithmen und Graphenspeicherung

Algorithmen II Vorlesung am

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

Effiziente Algorithmen und Datenstrukturen II

Flüsse, Schnitte, Bipartite Graphen II

Kapitel 1: Fallstudie Bipartite Graphen Gliederung der Vorlesung

Kombinatorische Optimierung

6. Übung zur Linearen Optimierung SS08

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

Kombinatorische Optimierung

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

Maximale s t-flüsse in Planaren Graphen

Ausarbeitung über den Satz von Menger und den Satz von König

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

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

Kürzeste-Wege-Algorithmen und Datenstrukturen

1.Aufgabe: Minimal aufspannender Baum

Univ.-Prof. Dr. Goulnara ARZHANTSEVA

Kombinatorische Algorithmen zur Berechnung von Marktequilibria

Mathematische Modelle in den Naturwissenschaften Proseminar

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

Transkript:

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

Inhalt Einführung Definition Maximale Flüsse Schnitte Restgraphen Zunehmende Wege Max-Fluss Min-Schnitt Theorem Ford-Fulkerson Methode Edmonds-Karp Algorithmus Maximale Bipartite Matchings

Problemstellungen Welchen Verkehrsfluss (in Fahrzeugen pro Minute) kann ich höchstens durch eine Stadt leiten, deren Straßennetz gegeben ist? Welche Wassermenge kann ich durch die Kanalisation höchstens abtransportieren? Wir betrachten dabei das Problem der maximalen Flüsse!

Graphentheoretische Definition G = (V, E) gerichteter Graph G mit c: E R + Kapazitätsfunktion Quelle s, Senke t Fluss f: V x V R Kapazitätsbeschränkung: Für alle u, v V f ( u, v) c( u, v) gilt: Schiefe Symmetrie: Für alle u, v V gilt f ( u, v) = f ( v, u) Flusserhaltung: Für alle u V { s, t} (, ) 0 ist å f u v = v V Größe f(u,v) ist der Fluss von Knoten u zu Knoten v. Wert eines Flusses: f = å f ( s, v) v V Nettofluss in einem Knoten ist die Summe aller den Knoten verlassenden Flüsse minus aller in den Knoten hinein fließenden Flüsse.

Fluss mit mehreren Quellen / Senken hinzufügen einer Superquelle s und einer Supersenke t

Maximale Flüsse Ein maximaler Fluss f in G ist ein Fluss f mit maximalem Wert f unter allen Flüssen in G. Wie groß kann ein maximaler Fluss überhaupt sein? In einem Netzwerk kann nicht mehr fließen, als aus der Quelle hinaus fließt oder in die Senke hineinfließt. Außerdem begrenzt jeder Schnitt durch den Graphen, der s von t trennt den Wert eines max. Flusses

Schnitte in Flussnetzwerken I Zerlegung der Knotenmenge V in S und T s S t T mit und Der Nettofluss in einem Schnitt ist die Summe des positiven Flusses von S nach T minus dem von T nach S Die Kapazität c(s,t) eines Schnittes S,T ist die Summe der Kapazitäten aller Kanten die von S nach T führen Ein Schnitt mit kleinster Kapazität unter allen möglichen Schnitten heißt minimaler Schnitt. Der Nettofluss ist über jeden Schnitt gleich.

Schnitte in Flussnetzwerken II Lemma: Sei f ein Fluss in einem Flussnetzwerk G=(V, E), mit Quelle s und Senke t, und sei (S, T) ein Schnitt von G. Dann ist der Nettofluss über (S, T) f(s, T) = f Korollar: Der Wert eines jeden Flusses f in einem Flussnetzwerk G wird durch die Kapazität eines beliebigen Schnittes (S,T) begrenzt.

Restgraphen Der Restgraph G f zu einem Fluss f beschreibt gerade alle Flussvergrößerungsmöglichkeiten Restgraph G f (V,E f ) mit E f = {( u, v) V V : c f ( u, v) 0} Restkapazität c f (u,v) = c(u,v) f(u,v) Der Restgraph besteht aus Kanten, deren Kapazitäten nicht voll ausgeschöpft sind. Vorwärtskante: f(u,v) < c(u,v) (Restkapazität vorhanden) Rückwärtskante: c f (v,u) = c(u,v) f(u,v) > 0 Jeder Weg von S nach T im Restgraphen ist ein zunehmender Weg Den gesamten Fluss kann man höchstens um das Minimum der gefundenen Restkapazitäten erhöhen.

Zunehmende Wege Jeder Weg von s nach t im Restgraphen ist ein zunehmender Weg. Ein Fluss ist genau dann maximal, wenn es für f keinen zunehmenden Weg gibt. Denn wenn es einen zunehmenden Weg für einen Fluss f gibt, dann könnte man den Fluss entlang dieses Weges vergrößern.

Max. Fluss min. Schnitt Theorem I Sei f ein Fluss in einem Flussnetzwerk G = (V,E), mit Quelle s und Senke t, dann gelten folgende Bedingungen: (1) f ist ein maximaler Fluss in G (2) Der Restgraph G f enthält keine zunehmenden Wege (3) Der Wert des Flusses f entspricht der Kapazität eines Schnittes: f = c(s,t) für einen Schnitt (S,T) in G Beweis (1) (2): Sofern es für einen maximalen Fluss einen zunehmenden Weg gibt, kann dieser Fluss nicht maximal sein

Max. Fluss min. Schnitt Theorem II Beweis (2) (3) S = {v є V, es existiert ein Weg von s nach v in G f } T = V S (S,T) ist Schnitt f = c (S, T) Beweis(3) (1) der Schnitt ist minimal daher muss f maximal sein

Ford-Fulkerson Methode Methode zur Lösung des Problems des Maximalen Flusses Benutzt dazu Restgraphen Zunehmende (augmentierende) Wege iterativ

Ford-Fulkerson Methode - Pseudocode Die Laufzeit des Algorithmus hängt maßgeblich davon ab wie die zunehmenden Wege gefunden werden

Ford-Fulkerson Methode Beispiel I Abbildung 1 Flussnetzwerk Fluss / Kapazität Abbildung 2 Restgraph mit zunehmendem Weg C f (p) = c(v 3,v 2 ) = 4

Ford-Fulkerson Methode Beispiel II Abbildung 3 Flussnetzwerk mit zunehmendem Weg aus 3 Abbildung 4 Restgraph des maximalen Flusses

Ford-Fulkerson Methode - Analyse

Edmonds-Karp Algorithmus Verbesserte Variante der Ford-Fulkerson Methode Hierbei wird der zunehmende Weg durch Breitensuche gefunden Daher muss der jeweils gefundene zunehmende Weg ein kürzester Weg im Restgraphen von s nach t sein In jedem Knoten wird zusätzlich die Entfernung zur Quelle s gespeichert Läuft in O(V E 2 )

Edmonds-Karp Alg. - Lemma Sei G = (V,E) ein Flussnetzwerk mit Quelle s und Senke t. Dann gilt beim Edmonds-Karp Algorithmus für alle Knoten v є V {s,t} das die Entfernung δ f (s,v) (von der Quelle s zu einem Knoten v) im Restgraphen G f mit jeder Flusserhöhung monoton wächst.

Edmonds-Karp Alg. Theorem I Wenn der Edmonds-Karp Algorithmus auf einem Flussnetzwerk G = (V,E) mit Quelle s und Senke t läuft, dann ist die Anzahl der durch den Algorithmus durchgeführten Flusserhöhungen O(V E). Zu zeigen: jede der E Kanten kann höchstens V / 2-1 mal kritisch werden

Edmonds-Karp Alg. Theorem II

Maximale Bipartite Matchings I Bipartiter Graph G = (V, E) V = L U R, L R = ø und Kante (l, r) mit l є L und r є R Bipartites Matching M ÍE, für alle v є V existiert maximal eine Kante in M Maximales Matching M M für alle M Problem finde in einem Bipartitem Graph ein maximales Matching

Maximale Bipartite Matchings II Umwandlung: Hinzufügen von s und t Ausrichten der vorhandenen Kanten von L nach R Neue Kanten von s nach L und R nach t hinzufügen Jeder Kante gleich bleibende Kapazität (1) zuweisen

Finden des Maximalen Matchings I Das dem bipartien Graphen G entsprechende Flussnetzwerk G = (V, E ) ist wie folgt definiert: Quelle s und Senke t sind neue Knoten nicht in V und V = V U {s,t} Wenn die Aufteilung der Knoten von G gleich V = L U R ist, dann sind die gerichteten Kanten von G die Kanten von E, gerichtet von L nach R, mit V neuen Kanten Letztendlich ordnet man jeder Kante von E eine Kapazität von eins zu

Finden des Maximalen Matchings II Lemma Sei G = (V,E) ein bipartiter Graph mit der Knotenaufteilung V= L U R und sei G = (V, E ) das G entsprechende Flussnetzwerk. Wenn M ein Matching in G ist, dann gibt es einen Fluss f in G mit dem Flusswert f = M. Umgekehrt, wenn f ein Fluss in G ist, dann gibt es ein Matching M in G mit der Kardinalität M = f.

Finden des Maximalen Matchings III Korollar Die Kardinalität eines maximalen Matchings M in einem bipartitem Graph G ist der Wert eines maximalen Flusses f in seinem entsprechendem Flussnetzwerk G.

Quellen Introduction to Algorithms Cormen, Leiserson, Rivest, Stein 2nd Edition Algorithmen und Datenstrukturen Ottmann, Widmayer 3. Auflage