Wiederholung zu Flüssen

Ähnliche Dokumente
Algorithmische Graphentheorie

6. Flüsse und Zuordnungen

6 Flüsse und Matchings

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

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

Flüsse, Schnitte, Bipartite Graphen

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

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

Bäume und Wälder. Definition 1

Bäume und Wälder. Definition 1

Datenstrukturen & Algorithmen

Flüsse, Schnitte, bipartite Graphen

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

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

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

WS 2008/09. Diskrete Strukturen

Bipartite Graphen. Beispiele

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

Flüsse in Netzwerken

Algorithmentheorie Maximale Flüsse

Das Heiratsproblem. Definition Matching

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

Lösungshinweise 3 Vorlesung Algorithmentechnik im WS 08/09

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

Algorithmische Graphentheorie

ADS: Algorithmen und Datenstrukturen 2

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

Univ.-Prof. Dr. Goulnara ARZHANTSEVA

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

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

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

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

1.Aufgabe: Minimal aufspannender Baum

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

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

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Matching. Organisatorisches. VL-18: Matching. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger. Tanzabend

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

Algorithmen II Vorlesung am

Formale Grundlagen der Informatik

Flüsse, Schnitte, bipartite Graphen

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

Mathematische Modelle in den Naturwissenschaften Proseminar

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

Flüsse, Schnitte, bipartite Graphen

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

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

Algorithmen zur Berechnung von Matchings

Algorithmen II Vorlesung am

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

Effiziente Algorithmen und Datenstrukturen II

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

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

Diskrete Mathematik Graphentheorie (Übersicht)

Kapitel IV Minimale Spannbäume

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Kapitel 1: Flussalgorithmen

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

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007

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

Kombinatorische Optimierung

Kürzeste-Wege-Algorithmen und Datenstrukturen

Der Preow-push-Algorithmus

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

KAPITEL 4 FLÜSSE IN NETZWERKEN

Nachbarschaft, Grad, regulär, Inzidenz

Algorithmische Graphentheorie (SS2013)

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

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

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

Theoretische Informatik 1

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

Algorithmen und Datenstrukturen Kapitel 10

Übung 5 Algorithmen II

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

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

Tutoraufgabe 1 (Suchen in Graphen):

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

4.7 Der Algorithmus von Dinic für maximalen Fluss

Algorithmen und Datenstrukturen 2

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Anwendungen von Netzwerkfluss

15. Elementare Graphalgorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen zur Berechnung von Matchings

6. Übung zur Linearen Optimierung SS08

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Effiziente Algorithmen I

Maximale s t-flüsse in Planaren Graphen

Systems of Distinct Representatives

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Algorithmen und Datenstrukturen

Transkript:

Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken: Wieviel kann man in einem Netzwerk maximal von einer Quelle s zu einer Senke t transportieren, wenn die Kapazitäten der einzelnen Verbindungen gegeben sind? 1 Definitionen Definition (Fluss) Sei D = (V, E) ein einfacher gerichteter Graph mit Kantenkapazitäten c : E R + 0 und ausgezeichneten Knoten s, t V. Man bezeichnet das Tupel (D; s, t; c) als Netzwerk mit Quelle s (engl.: source) und Senke t (engl.: target). Eine Abbildung f : E R + 0 heißt Fluss, wenn sie die folgenden beiden Eigenschaften hat: 1. Für alle (i, j) E ist die Kapazitätsbedingung erfüllt. 0 f(i, j) c(i, j) 2. Für alle i V \ {s, t} ist die Flusserhaltungsbedingung f(j, i) = 0 erfüllt. {j } {j (j,i) E} Die Kapazitätsbedingung besagt also, dass durch jede Kante ein nicht-negativer Fluss, der durch die Kapazität der Kante beschränkt ist, fließt. Die Flusserhaltungsbedingung besagt, dass in jeden Knoten (abgesehen von Quelle und Senke) genau so viel hinein fließt wie heraus. Anschaulich ist klar, dass der Gesamtfluss aus s heraus gleich dem Gesamtfluss nach t sein sollte. Das folgende Lemma bestätigt dies: Lemma 1 Für einen Fluss f in einem Netzwerk (D; s, t; c) gilt f(s, i) f(i, s) = (s,i) E (i,s) E (i,t) E f(i, t) (t,i) E f(t, i). Beweis. Es gilt f(i, j) = (i,s) E = (s,s) E f(i, s) + (i,t) E f(s, i) + (t,i) E Wegen der Flusserhaltung folgt die Behauptung. 1 f(i, t) + f(t, i) + j V \{s,t} j V \{s,t} (j,i) E f(i, j) f(j, i).

Definition (Wert des Flusses) Der Ausdruck w(f) := heißt Wert des Flusses f. (s,i) E f(s, i) (i,s) E f(i, s) Definition (Maximalfluss) Ein Fluss f, für den w(f) maximal ist, d.h. w(f ) w(f) für alle Flüsse f in einem Netzwerk (D; s, t; c), heißt Maximalfluss in (D; s, t; c). Definition (Schnitt, Kapazität eines Schnittes) Eine Menge S V induziert eine Partition (S, V \ S) der Knotenmenge V, die wir Schnitt im Graphen D = (V, E) nennen. In einem Netzwerk (D; s, t; c) heißt (S, V \ S) ein s-t-schnitt, wenn s S und t V \ S. Die Kapazität eine Schnittes (S, V \ S) ist definiert als c(s, V \ S) := c(i, j) Definition (minimaler Schnitt) Ein Schnitt (S, V \ S) heißt minimal, wenn c(s, V \ S) minimalen Wert unter allen Schnitten (S, V \ S ) hat, d.h. c(s, V \ S ) c(s, V \ S) für alle S V mit S V. Lemma (Schnittlemma) Sei (S, V \ S) ein s-t-schnitt im Netzwerk (D; s, t; c). Für jeden Fluss f gilt, dass w(f) = Insbesondere ist w(f) c(s, V \ S). j S i V \S f(i, j). Beweis. Es gilt w(f) = = i,j S ( (j,i) E i,j S (j,i) E f(j, i) + c(i, j) = c(s, V \ S). ) f(j, i) (j,i) E f(j, i) 2

Definition (erhöhender Weg) Zu einem Fluss f im Netzwerk (D; s, t; c) betrachten wir einen ungerichteten Weg von s nach t. Alle Kanten auf diesem Weg, die von s in Richtung t gerichtet sind, heißen Vorwärtskanten (VwK), alle anderen Rückwärtskanten (RwK). Ein solcher Weg heißt erhöhender Weg bezüglich f, wenn für jede Vorwärtskante (i, j) des Weges f(i, j) < c(i, j) gilt und wenn für jede Rückwärtskante f(i, j) > 0. Satz (Satz vom erhöhenden Weg) Ein Fluss f in einem Netzwerk (D; s, t; c) ist genau dann ein Maximalfluss, wenn es bezüglich f keinen erhöhenden Weg gibt. Beweis. = : Sei f ein Maximalfluss. Angenommen, es existiere bezüglich f ein erhöhender Weg. Sei für Kanten (i, j) dieses Weges { c(i, j) f(i, j) falls (i, j) Vorwärtskante (i, j) := f(i, j) falls (i, j) Rückwärtskante und := min{ (i, j) (i, j) auf erhöhendem Weg W }. Dann ist > 0. Sei nun f : E R + 0 definiert als f(i, j) + falls (i, j) Vorwärtskante auf W f := falls (i, j) Rückwärtskante auf W f(i, j) sonst. Dann ist f wieder ein Fluss und w(f ) > w(f) im Widerspruch zur Annahme, dass f ein Maximalfluss ist. =: Das Netzwerk (D; s, t; c) habe keinen bezüglich f erhöhenden Weg. Sei S die Menge aller Knoten in V, zu denen ein erhöhender Weg von s aus bezüglich f existiert. Es gilt S, weil s S und S V, weil t / S. Dann induziert s einen s-t-schnitt und es muss gelten, dass f(i, j) = c(i, j) für alle (i, j) mit i S, j V \ S und dass f(i, j) = 0 für alle (i, j) mit i V \ S, j S (d.h. alle Kanten (i, j) mit i S, j V \ S sind saturiert und alle Kanten (i, j) mit i V \ S, j S sind leer). Nach dem Schnittlemma ergibt sich w(f) = c(s, V \ S). Es muss also w(f) maximal sein. Satz (Max-Flow Min-Cut Theorem, Ford und Fulkerson, 1956) In einem Netzwerk (D; s, t; c) ist der Wert eines Maximalflusses gleich der minimalen Kapazität eines s-t-schnittes. Beweis. Die Behauptung folgt direkt aus dem Satz vom erhöhenden Weg. Denn ist f ein Maximalfluss, dann existiert ein Schnitt (S, V \ S) mit s S und t V \ S, wobei S die Menge aller auf einem erhöhenden Weg von s erreichbaren Knoten ist. Für (S, V \ S) gilt, dass w(f) = c(s, V \ S) und c(s, V \ S) = min =S V s S t V \S c(s, V \ S). 3

2 Der Algorithmus von Edmonds und Karp Der Algorithmus von Edmonds und Karp (1972) berechnet in O( V E 2 ) einen maximalen Fluss entsprechend dem Beweis des Satzes vom erhöhenden Weg. Hierbei wird systematisch mittels Breitensuche ein erhöhender Weg kürzester Länge gesucht (siehe Abbildung 1). 1) Setze f(i, j) := 0 für alle Kanten (i, j) E. 2) Solange es einen erhöhenden Weg bezüglich f gibt, führe aus: 3) Sei e 1, e 2,..., e k mit e 1, e 2,..., e k E ein erhöhender Weg kürzester Länge. 4) Setze := min({c(e i ) f(e i ) e i VwK} {f(e i ) e i RwK}). 5) Setze f(e i ) := f(e i ) +, falls e i VwK ist und f(e i ) := f(e i ), falls e i RwK ist. Im Algorithmus von Edmonds und Karp wird der Fluss maximal O( V E ) oft erhöht und eine Erhöhung kostet jeweils höchstens O( E ), was zu einer Laufzeit von O( V E 2 ) führt. Für Implementationsdetails und weitere Flussalgorithmen, siehe Skript über Flussprobleme und Dualität oder [2]. 3 Bipartites Matching 3.1 Definitionen Definition (bipartiter Graph) Sei G = (V, E) ein ungerichteter Graph. G heißt bipartit, falls die Knotenmenge V in zwei disjunkte Teilmengen X und Y partitioniert werden kann, so dass jede Kante aus E genau einen Endknoten in X und genau einen Endknoten in Y hat, d.h. für {v, w} E gilt v X und w Y oder v Y und w X. Definition (Matching, maximales Matching) Ein Matching von G ist eine Teilmenge M der Kantenmenge E, die keine gemeinsamen Endknoten besitzt. Ein maximales Matching ist ein Matching maximaler Mächtigkeit (siehe Abbildung 2(b)), d.h. G enthält kein Matching M mit M < M. Definition (das maximale bipartite Matching-Problem) Das maximale bipartite Matching-Problem besteht darin, ein maximales Matching zu finden. 3.2 Reduktion auf ein Flussproblem Sei G ein bipartiter Graphen, dessen Knoten in zwei disjunkte Mengen X und Y partitioniert sind. Wir erzeugen ein Flussnetzwerk D, so dass der maximale Fluss in D in ein maximales Matching umgerechnet werden kann (siehe Abbildung 3). Alle Knoten in G werden zu Knoten in D. Füge zwei weitere Knoten s bzw. t als Quelle bzw. Senke hinzu. Füge jede Kante von G zu D hinzu, richte die Kante so, dass sie von X nach Y orientiert ist. Füge gerichtete Kanten von s zu jedem Knoten aus X hinzu und Kanten von jedem Knoten aus Y zu t. Alle Kanten bekommen jeweils die Kapazität 1. Sei f ein Fluss in D. Sei e M E, falls f(e) = 1. Wir zeigen nun, dass M ein Matching ist. Da in D alle Kapazitäten 1 sind, trägt jede Kante den Fluss 0 oder 1. Weiterhin hat 4

(a) (b) (c) (d) (e) (f) (g) (h) (i) (j) Abbildung 1: Beispiel des Algorithmus von Edmonds und Karp. 5

(a) (b) Abbildung 2: (a) Ein nicht erweiterbares Matching, das aber nicht maximal ist. (b) Ein maximales Matching. jeder Knoten aus X genau eine einkommende Kante. Dies impliziert, dass höchstens eine ausgehende Kante von X nicht-leeren Fluss haben kann. Genauso hat jeder Knoten aus Y genau eine ausgehende Kante und somit höchstens eine eingehende Kante mit nicht-leerem Fluss. Daraus folgt, dass jeder Knoten aus X mit maximal einem Knoten aus Y durch eine flusstragende Kante verbunden ist und somit ist M ein Matching. Wir sehen leicht, dass die Mächtigkeit von M gleich dem Wert des Flusses f ist. Die umgekehrte Richtung gilt ebenso. Falls ein Matching M eines Graphen G gegeben ist, können wir daraus einen Fluss f für D folgendermaßen bestimmen: Sei f(e) = 1, falls e M und f(e) = 0, sonst. Weiterhin gilt für alle Kanten e D, die inzident zu s oder t sind: f(e) = 1, falls e Endpunkt einer Kante aus M ist und f(e) = 0, sonst. Dann ist f ein Fluss und der Wert des Flusses gleicht der Mächtigkeit von M. Hieraus folgt, dass jeder Algorithmus zur Bestimmung eines maximalen Flusses auch zur Bestimmung des bipartiten maximalen Matching-Problems benutzt werden kann. Genauer: 1. Konstruiere ein Netzwerk D eines bipartiten Graphen G in O(n + m). Das Netzwerk D hat n + 2 Knoten und n + m Kanten. 2. Berechne einen maximalen Fluss für D zum Beispiel mit dem Algorithmus von Edmonds und Karp. Da die Kanten Einheitsgewicht haben und somit der Wert des Maximalflusses gleich M ist, ist die Laufzeit dieses Schrittes O(nm). Satz Sei G ein bipartiter Graph mit n Knoten und m Kanten. Ein maximales Matching von G kann in O(nm) berechnet werden. 4 Anwendungsbeispiel - ein Tag in der Arbeitsagentur Bei der Arbeitsagentur haben sich viele Leute gemeldet, die noch eine Arbeit suchen. Auf dem Formular für Arbeitssuche haben sie angegeben, für welche Arbeiten sie qualifiziert sind. Die Arbeitsagentur möchte nun so viele Jobs wie möglich vermitteln. Hierbei hilft der Satz von Hall (siehe [3]). Satz (Heiratssatz von Hall, 1935) In einem bipartiten Graphen G mit Knotenpartitionen X und Y existiert genau dann ein Matching M mit M = X, falls für jede Teilmenge S X gilt, dass die Nachbarschaft von 6

(a) (b) Abbildung 3: (a) Ein bipartiter Graph G. (b) Ein von G reduziertes Flussnetzwerk D mit Maximalfluss (dicke Kanten); die dicken Kanten haben Fluss 1, die anderen Kanten haben Fluss 0 (siehe [1]). S mindestens so groß ist, wie S selbst, d.h. N(S) S für alle S X (wobei N(S) := {y Y {x, y} E, x S} die Nachbarschaft der Knotenmenge S heißt). Beweis. = : In dem durch M induzierten Teilgraphen H = (V, M) hat jede Teilmenge S X nach Definition eines Matchings genau S Nachbarn. Wegen M E gilt daher auch N(S) S. =: Beweis durch Widerspruch Annahme: Es gäbe einen Graphen, für den N(S) S für alle S X, aber der kein Matching der Kardinalität X enthält. Wähle ein kardinalitätsmaximales Matching M in G. Dann gilt M < X. Also gibt es mindestens einen Knoten x 0 X, der nicht von M überdeckt wird. Da N(x 0 ) x 0 = 1 nach Voraussetzung, hat x 0 mindestens einen Nachbarn y 0 in Y. Dann können wir eine Folge von Knoten konstruieren: k 0; while y k wird von M überdeckt do x k+1 Nachbar von y k in M; wähle einen beliebigen Knoten y k+1 aus N({x 0,..., x k+1 }) \ {y 0,..., y k }; k k + 1; Wegen der Voraussetzung gibt es in jedem Durchlauf der Schleife Knoten y k+1, denn jeder Knoten ist nach Konstruktion zu mindestens einem Knoten in der Menge {x 0,..., x k+1 } inzident. Somit gibt es einen Pfad von x 0 zu dem letzten gefundenen Knoten, der abwechselnd aus Kanten besteht, die nicht zum Matching M gehören und aus Kanten, die in M enthalten sind. Nach Konstruktion werden x 0 und y k nicht von M überdeckt. Daraus folgt, dass ein neues Matching M konstruiert werden kann. Entferne aus M alle Kanten des Pfades, die zu M gehören und füge statt dessen zu M alle Kanten des Pfades hinzu, die bislang nicht zu M gehört haben. Das so entstandene Matching M enthält dann genau eine Kante mehr als das Matching M. Da M als kardinalitätsmaximal gewählt wurde, haben wir einen Widerspruch zur Annahme. Wann kann nun die Arbeitsagentur allen Bewerbern einen Job vermitteln? Sei hierfür X die Menge die Bewerber und Y die Menge der Jobs. Für jedes S X sei N(S) die Menge der 7

Jobs für die sich die Bewerber S X interessieren. Mit der Konstruktion, die im Beweis vom Satz von Hall benutzt wurde, kann nun auch die Arbeitsagentur genau dann allen Bewerbern einen Job vermitteln, falls N(S) S für alle S X. Literatur [1] M. T. Goodrich, R. Tamassia: Algorithm Design: Foundations, Analysis, and Internet Examples. Wiley, 2002. [2] D. Jungnickel: Graphen, Netzwerke und Algorithmen. BI-Wissenschaftsverlag, 1994. [3] A. Steger: Diskrete Strukturen. Springer, 2007. 8