Flüsse und Schnitte von Graphen

Ähnliche Dokumente
KAPITEL 4 FLÜSSE IN NETZWERKEN

Flüsse, Schnitte, bipartite Graphen

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

Wiederholung zu Flüssen

Bipartite Graphen. Beispiele

Flüsse, Schnitte, Bipartite Graphen II

6. Flüsse und Zuordnungen

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

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Kombinatorische Optimierung

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

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

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

Algorithmen und Datenstrukturen Kapitel 10

Formale Grundlagen der Informatik

15. Elementare Graphalgorithmen

Klausur Theoretische Informatik I WS 2004/2005

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

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

Algorithmen und Datenstrukturen 2

Very simple methods for all pairs network flow analysis

ADS: Algorithmen und Datenstrukturen 2

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

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

Effiziente Algorithmen Übung 2 Lösungen

Praktikum Planare Graphen

4.7 Der Algorithmus von Dinic für maximalen Fluss

Informatik II, SS 2014

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

maximaler Fluss & minimaler Schnitt

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

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

Algorithmen II Vorlesung am

Algorithmische Graphentheorie

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

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

Vorlesung Kombinatorische Optimierung (Wintersemester 2016/17)

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

D I P L O M A R B E I T

6. Übung zur Linearen Optimierung SS08

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

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

Algorithmen und Datenstrukturen

1 topologisches Sortieren

9. Übung Algorithmen I

2 Tiefen- und Breitensuche

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

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung

Universität des Saarlandes

Datenstrukturen. einfach verkettete Liste

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Minimal spannende Bäume

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

Effiziente Algorithmen I

Wie findet das Navi den Weg?

Algorithmen & Komplexität

Peg-Solitaire. Florian Ehmke. 29. März / 28

Algorithmen & Datenstrukturen 1. Klausur

3. Musterlösung. Problem 1: Boruvka MST

entheoretische Konzepte und Algorithmen

Quicksort ist ein Divide-and-Conquer-Verfahren.

Punkt-in-Polygon-Suche Übersicht

Übungsblatt 2 - Lösung

Algorithmen zur Berechnung von Matchings

3.4 Maximale Flüsse und der Algorithmus von Ford Fulkerson

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

Effiziente Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen 2

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

Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche

Wie komme ich von hier zum Hauptbahnhof?

Vorlesung 4 BETWEENNESS CENTRALITY

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

Bayes-Netze (1) Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

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

Algorithmentheorie Maximale Flüsse

8 Diskrete Optimierung

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Klausur. Diskrete Mathematik I. Donnerstag, den um 14 Uhr

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

Toleranzbasierte Algorithmen für das Travelling Salesman Problem. Gerold Jäger

Prüfungsklausur Operations Research,

Algorithmen und Datenstrukturen

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen und Datenstrukturen 2-2. Seminar -

Christian Schulz und Johannes Singler

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Angewandte Informatik

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Durchschnitt von Matroiden

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

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Effiziente Algorithmen

Datenstrukturen & Algorithmen

4. Kreis- und Wegeprobleme Abstände in Graphen

Transkript:

Flüsse und Schnitte von Graphen Christian Koch Friedrich-Alexander-Universität Erlangen-Nürnberg 2. Juni 27 Christian Koch Flüsse und Schnitte 2. Juni 27 / 29

Gliederung Flüsse Allgemeines Maximaler Fluss Wissenswertes(für ICPC) 2 Schnitte Theorem Konnektivitäten 3 Quellen Christian Koch Flüsse und Schnitte 2. Juni 27 2 / 29

Wo kommen Flüsse vor? Fluss Gibt es in gerichteten Netzwerken mit einer Quelle und einer Senke Jede Kante hat eine Kapazität Wie viele Einheiten kommen pro Zeiteinheit von der Quelle (s) zur Senke (t) Christian Koch Flüsse und Schnitte 2. Juni 27 3 / 29

Anwendungsbeispiele Rohrnetzwerke (Flucht-)wege Bahn-/Bussysteme Stromverteilung Netzwerke mit Start und Ziel bzw. Verteiler und Verbraucher Christian Koch Flüsse und Schnitte 2. Juni 27 4 / 29

Residualgraphen s t Christian Koch Flüsse und Schnitte 2. Juni 27 5 / 29

Residualgraphen s t Hinkante: Potential Rückkante: aktueller Fluss Summe beider Kanten = Kapazität Christian Koch Flüsse und Schnitte 2. Juni 27 6 / 29

Ford-Fulkerson-Algorithmus Idee: Bilde das Residualnetzwerk mit Fluss = Suche solange Wege von s nach t bis es keinen mehr gibt: Bei gefundenem Weg Fluss erhöhen und Graph anpassen Der maximale Fluss wurde erreicht Pseudocode später Christian Koch Flüsse und Schnitte 2. Juni 27 7 / 29

Beispiel s t Christian Koch Flüsse und Schnitte 2. Juni 27 8 / 29

Beispiel s t Christian Koch Flüsse und Schnitte 2. Juni 27 9 / 29

Beispiel 99 s t 99 Christian Koch Flüsse und Schnitte 2. Juni 27 / 29

Beispiel 99 s t 99 Christian Koch Flüsse und Schnitte 2. Juni 27 / 29

Beispiel 99 99 s t 99 99 Christian Koch Flüsse und Schnitte 2. Juni 27 2 / 29

Beispiel 2 98 99 s t 99 98 2 Christian Koch Flüsse und Schnitte 2. Juni 27 3 / 29

Beispiel s t Christian Koch Flüsse und Schnitte 2. Juni 27 4 / 29

Tiefensuche vs. Breitensuche Ford-Fulkerson arbeitet mit der Tiefensuche Dies kann zu unangenehmen Effekten führen (siehe Beispiel) Alternative: Breitensuche Idee stammt von Edmonds und Karp Edmonds-Karp-Algorithmus Christian Koch Flüsse und Schnitte 2. Juni 27 5 / 29

Beispiel s t Christian Koch Flüsse und Schnitte 2. Juni 27 6 / 29

Beispiel s t Christian Koch Flüsse und Schnitte 2. Juni 27 7 / 29

Beispiel s t In 2 Schritten! Christian Koch Flüsse und Schnitte 2. Juni 27 8 / 29

Reduktion Der Algorithmus funktioniert nur mit bestimmten Eigenschaften: Es muss eine Quelle s und eine Senke t geben Kanten sind gerichtet Knoten haben keine Kapazität Wie können wir diese Bedingungen künstlich herbeiführen? Christian Koch Flüsse und Schnitte 2. Juni 27 9 / 29

Reduktionsregeln (siehe Tafel) Regel Bei mehreren Quellen/Senken führen wir eine Superquelle/Supersenke ein Diese ist mit allen Quellen/Senken verbunden Die Kanten haben Kapazität Regel 2 Bei ungerichteten/beidseitigen Kanten erstellen wir einen Hilfsknoten Dreiecksbeziehung Regel 3 Bei Knoten mit Kapazität erstellen wir wieder einen Hilfsknoten Beide sind mit einer Kante der ursprünglichen Kapazität verbunden Alter Knoten: Input Neuer Knoten: Output Christian Koch Flüsse und Schnitte 2. Juni 27 2 / 29

Wissenswertes (ICPC) Graphdarstellung Zur Implementierung des Ford/Fulkerson-Algorithmus eignet sich die Listen-Darstellung des Graphen Laufzeiten! Es kann einen enormen Unterschied machen ob man BFS oder DFS benutzt an Aufgabenstellung anpassen Ford-Fulkerson (Tiefensuche) Worst Case: O( E x flow max ) Edmonds-Karp (Breitensuche) Worst Case: O( E 2 x V ) Christian Koch Flüsse und Schnitte 2. Juni 27 2 / 29

Was ist ein Schnitt? Schnitt Teilt Graph in zwei nicht zusammenhängende Graphen Löscht (=schneidet) eine Menge an Kanten Kapazität = Summe der Kapazitäten dieser Kanten Häufige Anwendung: Trenne Quelle von Senke Christian Koch Flüsse und Schnitte 2. Juni 27 22 / 29

Min. Cut = Max. Flow Theorem (Min. Cut = Max. Flow) Minimaler Schnitt = Maximaler Fluss Vorgehen: Maximalen Fluss berechnen (Ford-Fulkerson / Edmonds-Karp) Finalen Residualgraph auswerten Von s aus erreichbar: Graph G, Rest: Graph H Verbindende Kanten löschen Christian Koch Flüsse und Schnitte 2. Juni 27 23 / 29

(s-t)-kantenkonnektivität Fragestellung Gegeben: Knoten a, Knoten b Wie viele Kanten muss ich mindestens durchschneiden um den Graphen so in G und H zu zerteilen, dass a G und b H? Lösung Jede Kante erhält Kapazität Bestimmung von flow max mit Quelle a und Senke b Christian Koch Flüsse und Schnitte 2. Juni 27 24 / 29

Allgemeine Kantenkonnektivität Fragestellung Wie viele Kanten muss ich mindestens durchschneiden um den Graphen zu zerteilen? Lösung Jede Kante erhält Kapazität Auswahl eines beliebigen Knotens Bestimme alle Kantenkonnektivitäten zu anderen Knoten Das Minimum aller Werte nehmen Christian Koch Flüsse und Schnitte 2. Juni 27 25 / 29

(s-t)knotenkonnektivität Fragestellung Gegeben: Knoten a, Knoten b Wie viele Knoten muss ich entfernen, um den Graph so in G und H zu zerteilen, dass a G und b H? Lösung Jeder Knoten erhält die Kapazität Reduktionsregeln anwenden Bestimmung von flow max mit Quelle a und Senke b Hinweis Die Knoten a und b dürfen nicht verbunden sein! Christian Koch Flüsse und Schnitte 2. Juni 27 26 / 29

Allgemeine Knotenkonnektivität Fragestellung Wie viele Knoten muss ich mindestens entfernen um den Graphen zu zerteilen? Lösung Folgendes muss über jeden Knoten iteriert werden: Berechne alle (s-t)-knotenkonnektivitäten zu allen nicht-verbundenen Knoten Das Minimum aller Werte nehmen Hinweis Konnte kein Wert gefunden werden ist der Graph nicht zu teilen! Christian Koch Flüsse und Schnitte 2. Juni 27 27 / 29

Laufzeiten (s-t)-kantenkonnektivität Worst Case: O( E 2 ) Allgemeine Kantenkonnektivität Worst Case: O( E 2 x V ) (s-t)-knotenkonnektivität Worst Case: O( E x V ) Allgemeine Knotenkonnektivität Worst Case: O( E x V 3 ) Christian Koch Flüsse und Schnitte 2. Juni 27 28 / 29

Quellen Vorträge der Jahre 25 und 26 von Florian Hantke und Jana Martschinke https://www.topcoder.com/community/data-science/data-sciencetutorials/maximum-flow-section-2/ https://www.topcoder.com/community/data-science/data-sciencetutorials/minimum-cost-flow-part-one-key-concepts/ Christian Koch Flüsse und Schnitte 2. Juni 27 29 / 29