Flüsse, Schnitte, Bipartite Graphen

Ähnliche Dokumente
Wiederholung zu Flüssen

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

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

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

Bipartite Graphen. Beispiele

Flüsse, Schnitte, Bipartite Graphen II

KAPITEL 4 FLÜSSE IN NETZWERKEN

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

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen Kapitel 10

6. Flüsse und Zuordnungen

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

Flüsse, Schnitte, bipartite Graphen

Effiziente Algorithmen und Datenstrukturen II

Formale Grundlagen der Informatik

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Effiziente Algorithmen I

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

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

ADS: Algorithmen und Datenstrukturen 2

Algorithmentheorie Maximale Flüsse

Algorithmen II Vorlesung am

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

maximaler Fluss & minimaler Schnitt

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Kombinatorische Optimierung

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Very simple methods for all pairs network flow analysis

Durchschnitt von Matroiden

4.7 Der Algorithmus von Dinic für maximalen Fluss

Effiziente Algorithmen Übung 2 Lösungen

Kombinatorische Optimierung

Algorithmische Graphentheorie

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

Kombinatorische Optimierung

Algorithmen zur Berechnung von Matchings

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

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

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Bäume und Wälder. Definition 1

15. Elementare Graphalgorithmen

Graphen: Datenstrukturen und Algorithmen

4. Kreis- und Wegeprobleme Abstände in Graphen

Graphen. Leonhard Euler ( )

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

Längen-beschränkte Schnitte und Flüsse

Vorlesung 2 KÜRZESTE WEGE

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

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Vorwort. 1 Flüsse in Planaren Graphen. 1.1 Flüssen in Planaren Graphen als Kürzeste-Wege-Problem

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Matchings (Paarungen) in Graphen. PS Algorithmen auf Graphen SS `06 Steven Birr

6. Übung zur Linearen Optimierung SS08

2. Übungsblatt zu Algorithmen II im WS 2016/2017

\ 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.

WS 2008/09. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen

Vorlesung Kombinatorische Optimierung (Wintersemester 2016/17)

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

Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Matching markets Seminar maschinelles Lernen WS 10/11

Algorithmen & Komplexität

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle

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

Algorithmische Mathematik

Klausur Theoretische Informatik I WS 2004/2005

Minimal spannende Bäume

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

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

Teil III. Komplexitätstheorie

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

Maximale s t-flüsse in Planaren Graphen

Das Heiratsproblem. Definition Matching

Verteilen von Bällen auf Urnen

Vorlesung Diskrete Strukturen Transportnetze

1. Übung Graphentheorie WS2016/17

Kürzeste Wegealgorithmen

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

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

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

entheoretische Konzepte und Algorithmen

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

4 Greedy-Algorithmen (gierige Algorithmen)

3. Musterlösung. Problem 1: Boruvka MST

3.4 Maximale Flüsse und der Algorithmus von Ford Fulkerson

Systems of Distinct Representatives

16. All Pairs Shortest Path (ASPS)

Guten Morgen und Willkommen zur Saalübung!

Grundbegriffe der Informatik

Übungsblatt 2 - Lösung

3. Übungsblatt zu Algorithmen II im WS 2011/2012

Einführung in Netzwerk-Fluss-Probleme Das min-cut max-flow Theorem

Flüsse in Netzwerken

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Minimal spannende Bäume

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

1. Einleitung wichtige Begriffe

Grundlagen: Algorithmen und Datenstrukturen

Transkript:

Flüsse, Schnitte, Bipartite Graphen Sebastian Hahn 4. Juni 2013 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 1 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 2 / 48

Netzwerk N Ziel: Material durch Netzwerk transportieren Definition N = (G, u, s, t) mit G = (V, E) gerichteter Graph Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 3 / 48

Netzwerk N Ziel: Material durch Netzwerk transportieren Definition N = (G, u, s, t) mit G = (V, E) gerichteter Graph Kapazitätsfunktion u : E N + weist jeder Kante e E einen ganzzahligen, nichtnegativen Wert zu Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 3 / 48

Netzwerk N Ziel: Material durch Netzwerk transportieren Definition N = (G, u, s, t) mit G = (V, E) gerichteter Graph Kapazitätsfunktion u : E N + weist jeder Kante e E einen ganzzahligen, nichtnegativen Wert zu Quelle s (unendliche Produktion) Senke t (unendlicher Konsum) Kapazität als Einheiten pro Zeitschritt Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 3 / 48

Mate(rial)transport zur OHM Erlangen Frankfurt s 16 13 4 v 1 v 2 Bielefeld Amsterdam 12 9 14 v 3 v 4 7 Emden 20 4 t Alkmaar Kantengewichte beschreiben freie Ladekapazitäten Es gibt keine Zwischenlager Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 4 / 48

Fluss f in einem Netzwerk N Definition f : E N + weist jeder Kante e E einen ganzzahligen, nichtnegativen Flusswert zu e E : f (e) u(e) v V \ {s, t} : e=(x,v) E x V f (e) = "Jede Kante hat eine Kapazitätsfunktion" e=(v,x) E x V f (e) Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 5 / 48

Fluss f in einem Netzwerk N Definition f : E N + weist jeder Kante e E einen ganzzahligen, nichtnegativen Flusswert zu e E : f (e) u(e) v V \ {s, t} : e=(x,v) E x V f (e) = e=(v,x) E x V f (e) "Der Fluss auf einer Kante ist nie größer als die Kapazität der Kante" Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 5 / 48

Fluss f in einem Netzwerk N "Der Fluss in einen Knoten ist gleich dem Fluss aus dem Knoten heraus" Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 5 / 48 Definition f : E N + weist jeder Kante e E einen ganzzahligen, nichtnegativen Flusswert zu e E : f (e) u(e) v V \ {s, t} : e=(x,v) E x V f (e) = e=(v,x) E x V f (e)

Mate(rial)-Fluss zur OHM Frankfurt 11/16 Erlangen s 1/4 8/13 v 1 v 2 Bielefeld Amsterdam 12/12 4/9 11/14 v 3 15/20 7/7 4/4 v 4 Emden t Alkmaar Fluss von 19 Einheiten Richtung Alkmaar Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 6 / 48

Mate(rial)-Fluss zur OHM Erlangen Frankfurt s 11/16 8/13 1/4 v 1 v 2 Bielefeld Amsterdam 12/12 4/9 11/14 v 3 v 4 7/7 Emden 15/20 4/4 t Alkmaar Fluss von 19 Einheiten Richtung Alkmaar Frage: Geht da noch was? Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 6 / 48

Maximaler Fluss Häufiges Ziel: Flussfunktion so einstellen, dass Gesamtfluss maximal Wasser in Wasserleitungen Menschen auf dem Weg in eine Halle Transport von Waren mit der Bahn Gesamtfluss entspricht Produktion an Quelle bzw Konsum an Senke Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 7 / 48

OHM Erlangen Frankfurt 11/16 s 1/4 v 1 Amsterdam 12/12 0/9 v 3 19/20 7/7 t Alkmaar 12/13 v 2 Bielefeld 11/14 4/4 v 4 Emden Jetzt: Fluss von 23 Einheiten Richtung Alkmaar Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 8 / 48

Residualgraph Gibt an, wie ein Fluss verändert werden kann Maximale lokale Flussveränderung als gerichtete Kante in Gegenrichtung 12/12 11/16 15/20 s 8/13 1/4 4/9 7/7 t 4/4 11/14 Berechnungsaufwand O(e)

Residualgraph Gibt an, wie ein Fluss verändert werden kann Maximale lokale Flussveränderung als gerichtete Kante in Gegenrichtung 12/12 5 15/20 11 s 8/13 1/4 4/9 7/7 t 4/4 11/14 Berechnungsaufwand O(e)

Residualgraph Gibt an, wie ein Fluss verändert werden kann Maximale lokale Flussveränderung als gerichtete Kante in Gegenrichtung 12/12 5 15/20 11 s 5 1/4 4/9 7/7 t 8 4/4 11/14 Berechnungsaufwand O(e)

Residualgraph Gibt an, wie ein Fluss verändert werden kann Maximale lokale Flussveränderung als gerichtete Kante in Gegenrichtung 0 5 12 15/20 11 s 5 1/4 4/9 7/7 t 8 4/4 11/14 Berechnungsaufwand O(e)

Residualgraph Gibt an, wie ein Fluss verändert werden kann Maximale lokale Flussveränderung als gerichtete Kante in Gegenrichtung 5 12 15/20 11 s 5 1/4 4/9 7/7 t 8 4/4 Berechnungsaufwand O(e) 11/14

Residualgraph Gibt an, wie ein Fluss verändert werden kann Maximale lokale Flussveränderung als gerichtete Kante in Gegenrichtung 5 12 15/20 11 s 5 3 1 4/9 7/7 t 8 4/4 Berechnungsaufwand O(e) 11/14

Residualgraph Gibt an, wie ein Fluss verändert werden kann Maximale lokale Flussveränderung als gerichtete Kante in Gegenrichtung 5 12 5 s 11 5 3 1 4 5 7 15 4 t 8 3 11 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 9 / 48

Residualgraph Gibt an, wie ein Fluss verändert werden kann Maximale lokale Flussveränderung als gerichtete Kante in Gegenrichtung 5 12 5 s 11 5 3 1 4 5 7 15 4 t 8 3 Berechnungsaufwand O(e) 11 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 9 / 48

Erweiternde Pfade Pfade, die Quelle und Senke verbinden Gesamtfluss kann um das minimale Gewicht der auf dem Pfad liegenden Kanten erhöht werden Danach: Residualgraph aktualisieren Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 10 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 11 / 48

Ford-Fulkerson-Methode Ziel: Maximalen Fluss bestimmen e E setze f (e) = 0 mittels Rückkanten Setze MaxFlow = 0 Tiefensuche nach erweiterndem Pfad p von s nach t setze minc auf minimale Kapazität von p setze MaxFlow auf MaxFlow + minc e p Erhöhe/vermindere f (e) um minc (Hin-/Rückkante) vermindere u(e) um minc falls u(e) = 0 : entferne Kante e Gib MaxFlow zurück Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 12 / 48

Residualgraph: 12 16 20 s 13 4 9 7 4 t Fluss: MaxFlow = 0 0/16 14 0/12 0/20 s 0/13 0/4 0/9 0/7 t 0/14 0/4 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 13 / 48

Residualgraph: 12 8 4 20 s 4 13 4 4 10 5 7 4 t Fluss: MaxFlow = 4 4/16 4 4/12 0/20 s 0/13 0/4 4/9 0/7 t 4/14 4/4 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 13 / 48

Residualgraph: 12 4 8 16 s 4 4 9 4 4 10 5 7 4 4 t Fluss: MaxFlow = 8 4/16 4 8/12 4/20 s 4/13 4/4 4/9 0/7 t 4/14 4/4 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 13 / 48

Residualgraph: 8 4 8 12 s 4 8 9 4 10 9 7 8 4 t Fluss: MaxFlow = 12 8/16 4 8/12 8/20 s 4/13 0/4 0/9 0/7 t 4/14 4/4 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 13 / 48

Residualgraph: 8 4 8 5 s 11 8 2 4 3 9 7 15 4 t Fluss: MaxFlow = 19 8/16 11 8/12 15/20 s 11/13 0/4 0/9 7/7 t 11/14 4/4 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 13 / 48

Residualgraph: 4 12 1 s 11 12 2 4 3 9 7 19 4 t Fluss: MaxFlow = 23 12/16 11 12/12 19/20 s 11/13 0/4 0/9 7/7 t 11/14 4/4 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 13 / 48

Laufzeitüberlegungen 1000 1000 s 1000 1 1000 t Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 14 / 48

Laufzeitüberlegungen 999 1000 s 1000 1 999 t Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 14 / 48

Laufzeitüberlegungen 999 999 s 999 1 999 t Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 14 / 48

Laufzeitüberlegungen 999 999 s 999 1 999 t Oooops Kapazität nimmt pro Durchlauf nur um 1 ab Laufzeit: O(MaxFlow E ) Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 14 / 48

Laufzeitüberlegungen 999 999 s 999 1 999 t Oooops Kapazität nimmt pro Durchlauf nur um 1 ab Laufzeit: O(MaxFlow E ) Tiefensuche manchmal schlecht, gibt es Alternativen? Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 14 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 15 / 48

Edmonds-Karp-Strategie Einfacher Fix Keine Tiefensuche mehr, dafür Breitensuche Laufzeit im schlimmsten Fall: O( V E 2 ) Genauso leicht zu implementieren (siehe Wiki) Es wird immer der Pfad mit minimaler Kantenanzahl ausgewählt Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 16 / 48

Beispiel Edmonds-Karp 1000 1000 s 1000 1 1000 t MaxFlow = 0 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 17 / 48

Beispiel Edmonds-Karp 1000 1000 s 1000 1 1000 t MaxFlow = 0 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 17 / 48

Beispiel Edmonds-Karp 1000 1000 s 1000 1 1000 t MaxFlow = 0 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 17 / 48

Beispiel Edmonds-Karp 1000 1000 s 1000 1 1000 t MaxFlow = 0 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 17 / 48

Beispiel Edmonds-Karp 0 0 s 1000 1 1000 t MaxFlow = 1000 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 17 / 48

Beispiel Edmonds-Karp 0 0 s 1000 1 1000 t MaxFlow = 1000 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 17 / 48

Beispiel Edmonds-Karp 0 0 s 0 1 0 t MaxFlow = 2000 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 17 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 18 / 48

Partition einer Menge Definition A, B sind eine Partition von C A C, B C A B = A B = C Hier kurz: {A, B} Part(C) Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 19 / 48

Schnitt Definition {S, T } Part(V ), mit s S und t T "Partition in zwei Teilmengen, so dass die Quelle in der einen und die Senke in der anderen ist" Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 20 / 48

Schnitt Definition {S, T } Part(V ), mit s S und t T "Partition in zwei Teilmengen, so dass die Quelle in der einen und die Senke in der anderen ist" Kapazität des Schnitts = u(e) e=(a,b) E a S b T Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 20 / 48

Schnitt Definition {S, T } Part(V ), mit s S und t T "Partition in zwei Teilmengen, so dass die Quelle in der einen und die Senke in der anderen ist" Kapazität des Schnitts = u(e) Fluss des Schnitts = e=(a,b) E a S b T e=(a,b) E a S b T f (e) e=(a,b) E a S b T f (e) Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 20 / 48

Beispielschnitt 12/12 11/16 15/20 s 1/4 4/9 7/7 t 8/13 4/4 11/14 Kapazität: 16 + 4 + 7 + 4 = 31 Fluss: 11 + 1 + 7 + 4 4 = 19 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 21 / 48

Eigenschaften von Schnitten Fluss für beliebigen Schnitt = Fluss durch das Gesamtnetzwerk Betrag des Flusses ist von oben beschränkt durch Kapazität jedes Schnittes Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 22 / 48

Eigenschaften von Schnitten Fluss für beliebigen Schnitt = Fluss durch das Gesamtnetzwerk Betrag des Flusses ist von oben beschränkt durch Kapazität jedes Schnittes Also auch: Betrag des Flusses ist von oben beschränkt durch Kapazität des minimalen Schnittes Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 22 / 48

Eigenschaften von Schnitten Fluss für beliebigen Schnitt = Fluss durch das Gesamtnetzwerk Betrag des Flusses ist von oben beschränkt durch Kapazität jedes Schnittes Also auch: Betrag des Flusses ist von oben beschränkt durch Kapazität des minimalen Schnittes Entfernen der Kanten im Schnitt mit minimaler Kapazität trennt s und t mit minimalen Kosten Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 22 / 48

Max-Flow-Min-Cut-Theorem Für Fluss f in einem Netzwerk N sind äquivalent: f ist maximaler Fluss in N Residualgraph für f und N hat keine erweiternden Pfade Es existiert ein Schnitt von N mit Kapazität f Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 23 / 48

Max-Flow-Min-Cut-Theorem Für Fluss f in einem Netzwerk N sind äquivalent: f ist maximaler Fluss in N Residualgraph für f und N hat keine erweiternden Pfade Es existiert ein Schnitt von N mit Kapazität f Daraus folgt: f ist die Kapazität des minimalen Schnitts von N Max-Flow = Min-Cut (Beweis siehe Cormen) Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 23 / 48

Minimalen Schnitt finden Wenn Algorithmus für maximalen Fluss beendet: Alle im Residualgraphen von s aus erreichbaren Knoten bilden S Alle anderen Knoten bilden T Minimaler Schnitt, da die Kapazität voll ausgeschöpft ist Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 24 / 48

Residualgraph: 4 12 1 s 11 12 2 4 3 9 7 19 4 t Fluss: Kapazität = Fluss = 23 11 12/16 12/12 19/20 s 11/13 0/4 0/9 7/7 t 11/14 4/4 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 25 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 26 / 48

Reduktionen Problem Netzwerke oft in ungeeigneter Form... Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 27 / 48

Reduktionen Problem Netzwerke oft in ungeeigneter Form...... aber man kann sie oft transformieren Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 27 / 48

Reduktionen Problem Netzwerke oft in ungeeigneter Form...... aber man kann sie oft transformieren Typisch Ungerichtete Kanten Quelle oder Senke haben keine unendliche Kapazität Die Knoten haben auch Gewichte Es gibt mehrere Quellen oder Senken Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 27 / 48

Ungerichtete Kanten 5 v 1 v 2 Lösung Erzeuge neuen Knoten mit Indirektion Führe zwei gerichtete Kanten ein v 5 5 5 v 1 5 v 2 v 1 v 2 5 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 28 / 48

s/t haben beschränkte Kapazität 5 5 5 s t Lösung Führe zwei gewichtete Kanten ein s 5 5 5 s t t Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 29 / 48

Knoten haben auch Kapazitäten 10 10 s 5 t Lösung Führe neuen Knoten ein und verbinde diesen mit gewichteter Kante s 10 5 10 a b t Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 30 / 48

Es gibt mehrere Quellen oder Senken s 1 t 1 10 10 10 5 10 s 2 a b t 2 s 3 10 10 t 3 Lösung Führe neuen s/t-knoten ein s s 1 s 2 10 10 a 5 b 10 10 t 1 t 2 t s 3 10 10 t 3 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 31 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 32 / 48

Bipartiter Graph Definition: Ungerichteter Graph G = (V, E) heißt bipartit, wenn: {A, B} Part(V ), mit {u, v} E : (u A v B) (u B v A) "Jede Kante verbindet einen Knoten aus A mit einem Knoten aus B" Zum Beispiel: Studenten und Tutoren, Tanzpaare, Schachbretter Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 33 / 48

Bipartiter Graph: Beispiel L 1 V 1 L 2 V 2 L 3 V 3 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 34 / 48

Bipartites Matching Matching: Kantenauswahl, so dass jeder Knoten zu maximal einer Kante inzident ist Anzahl der Kanten maximal: maximales bipartites Matching Damit kann man ausrechnen, wieviele Kanten man sparen kann Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 35 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 36 / 48

Beispielaufgabe: Klausur Folgende Situation: Klausur muss wiederholt werden wegen Feueralarm Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 37 / 48

Beispielaufgabe: Klausur Folgende Situation: Klausur muss wiederholt werden wegen Feueralarm Es gibt eine Facebookseite, auf der sich Studenten als abschreibewillig outen Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 37 / 48

Beispielaufgabe: Klausur Folgende Situation: Klausur muss wiederholt werden wegen Feueralarm Es gibt eine Facebookseite, auf der sich Studenten als abschreibewillig outen Du musst herausfinden, ob genügend Aufsichtskräfte da sind um Betrug zu bemerken Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 37 / 48

Beispielaufgabe: Klausur Folgende Situation: Klausur muss wiederholt werden wegen Feueralarm Es gibt eine Facebookseite, auf der sich Studenten als abschreibewillig outen Du musst herausfinden, ob genügend Aufsichtskräfte da sind um Betrug zu bemerken Jede Aufsichtskraft kann genau zwei direkt nebeneinander oder hintereinander sitzende Studenten überwachen Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 37 / 48

Beispielaufgabe: Klausur Folgende Situation: Klausur muss wiederholt werden wegen Feueralarm Es gibt eine Facebookseite, auf der sich Studenten als abschreibewillig outen Du musst herausfinden, ob genügend Aufsichtskräfte da sind um Betrug zu bemerken Jede Aufsichtskraft kann genau zwei direkt nebeneinander oder hintereinander sitzende Studenten überwachen Jeder potenzielle Abschreiber muss überwacht werden Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 37 / 48

Interpretation: bipartites Matching Auf einem 2d-Grid Schachbrettmuster annehmen Alle weißen Felder bilden die eine Teilmenge, alle schwarzen die andere Alle nicht-abschreibwilligen Studenten ignorieren Neben- oder hintereinander sitzende Studenten haben eine Kante zwischen sich Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 38 / 48

Visualisierung Tafel Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 39 / 48

Interpretation als Flussproblem Vorgehensweise Füge Quelle hinzu für weiße Felder Füge Senke hinzu für schwarze Felder Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 40 / 48

Interpretation als Flussproblem Vorgehensweise Füge Quelle hinzu für weiße Felder Füge Senke hinzu für schwarze Felder Ändere die ungerichteten Kanten in gerichtete Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 40 / 48

Interpretation als Flussproblem Vorgehensweise Füge Quelle hinzu für weiße Felder Füge Senke hinzu für schwarze Felder Ändere die ungerichteten Kanten in gerichtete Jede Kante hat Gewicht 1 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 40 / 48

Interpretation als Flussproblem Vorgehensweise Füge Quelle hinzu für weiße Felder Füge Senke hinzu für schwarze Felder Ändere die ungerichteten Kanten in gerichtete Jede Kante hat Gewicht 1 Maximalen Fluss ergibt maximales bipartites Matching Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 40 / 48

Interpretation als Flussproblem Vorgehensweise Füge Quelle hinzu für weiße Felder Füge Senke hinzu für schwarze Felder Ändere die ungerichteten Kanten in gerichtete Jede Kante hat Gewicht 1 Maximalen Fluss ergibt maximales bipartites Matching Lösung: Anzahl Abschreiber - Fluss Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 40 / 48

Interpretation als Flussproblem Vorgehensweise Füge Quelle hinzu für weiße Felder Füge Senke hinzu für schwarze Felder Ändere die ungerichteten Kanten in gerichtete Jede Kante hat Gewicht 1 Maximalen Fluss ergibt maximales bipartites Matching Lösung: Anzahl Abschreiber - Fluss Laufzeit schlimmster Fall: O( V E ) Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 40 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 41 / 48

http://wallpaper-gallery.com/downloads/animals-penguins-wallpaper-0004.jpg Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 42 / 48

Wählerische Pinguine Es gibt n weibliche und n männliche Pinguine Pinguine haben eine Prioritätsliste für die Paarung Pinguine leben monogam Jeder möchte einen Partner mit möglichst hoher Priorität Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 43 / 48

Wählerische Pinguine Lösung: Es gibt n weibliche und n männliche Pinguine Pinguine haben eine Prioritätsliste für die Paarung Pinguine leben monogam Jeder möchte einen Partner mit möglichst hoher Priorität Stabiles Heiraten Stabilität: Am Ende gibt es keine unglücklichen Paare Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 43 / 48

Algorithmus Alle Pinguine sind ungebunden, mit Prioritätslisten p Solange es ungebundenes Weibchen w gibt { } curm = take(p(w)) Wenn curm ungebunden: w und curm sind Paar sonst: (curm ist Teil eines Paares) curwforcurm = Weibchen von curm Wenn curm w lieber mag als curwforcurm: w und curm sind Paar curwforcurm ist wieder ungebunden Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 44 / 48

Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie Dualität Maximaler Fluss / Minimaler Schnitt Reduktionen Bipartite Graphen Anwendungen: Maximales Bipartites Matching Stabiles Heiraten Zusammenfassung Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 45 / 48

Zusammenfassung Viele Probleme lassen sich als Flussnetzwerke modellieren Maximaler Fluss entspricht minimalem Schnitt Probleme auf bipartiten Graphen lassen sich mit Flussnetzwerken lösen Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 46 / 48

Ausblick Weitere Themen Preflow-Push-Algorithmen (Komplexität je nach Implementierung O( V 3 ), O( V 2 E), O( V E log ( V 2 / E )) Ungarische Methode (Maximales gewichtetes bipartites Matching) (Komplexität: O( V 3 ) Knoten/Kanten-Konnektivität Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 47 / 48

Quellen HW-Vorträge der Vorjahre (Thomas Fersch 2010, Christopher Dennl 2011) "Introductions to Algorithms"(Cormen) http://de.wikipedia.org/wiki/flüsse_und_ Schnitte_in_Netzwerken http: //de.wikipedia.org/wiki/bipartiter_graph http://de.wikipedia.org/wiki/matching_ (Graphentheorie) http://de.wikipedia.org/wiki/königspinguin https://ohm2013.org/wiki/faq http://www.openstreetmap.org Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 48 / 48