Algorithmische Graphentheorie Sommersemester 204 4. Vorlesung Matchings / Paarungen Kombinatorische Anwendungen des Max-Flow-Min-Cut-Theorems Prof. Dr. Alexander Wolff
2 Paarungen (Matchings) Def. Sei G = (V, E) ein ungerichteter Graph. M E ist eine Paarung (engl. matching), wenn je zwei Kanten in M keinen gleichen Endpunkt haben. Falls für jede Kante e M gilt, dass M {e} keine Paarung ist, so ist M nicht erweiterbar (engl. maximal). Falls für alle Paarungen M in G gilt, dass M M, so ist M eine größte Paarung (engl. maximum). Falls jeder Knoten in G durch M gepaart ist, so ist M eine perfekte Paarung (engl. perfect).
4 Ganzzahligkeitssatz s 2 2 / / 2 / u v {}}{ + 2 2 / G t Nebenbemerkung: Sei E = {e,..., e m }. Dann ist {( f (e ),..., f (e m ) ) f zulässig } ein konvexer Unterraum. (wovon?) Gibt es noch einen maximalen s t Fluss? Ja! Wenn es mind. zwei verschiedene maximale Flüsse gibt, so gibt es ein ganzes Kontinuum maximaler Flüsse. Aber: Korollar. Sind alle Kapazitäten ganzzahlig, d.h. c : E N, so existiert ein maximaler Fluss, der ganzzahlig ist. Beweis. Wende FordFulkerson oder EdmondsKarp an!
Kantendisjunkte Wege card(s, T ) = S T Raus(S) = 3 5 Satz. Menger, 927 Beweis. Sei G = (V, E) ein gerichteter Graph und s, t V. Dann ist die maximale Anz. kantendisjunkter s-t-wege gleich der minimalen Kardinalität eines s-t-schnittes. Wähle c. Sei f max. s-t-fluss. obda. f : E {0, }. Folge einer Kante mit Fluss, die s verlässt: s Ganzz.-Satz S T e t da c(e) = und Flusserhaltung Karl Menger Wien 902 Illinois 985 A := max. Anz. kantendisj. s-t-wege f Sei (S, T ) ein minimaler s-t-schnitt. jeder s-t-weg trägt Kante zu Raus(S) bei. card(s, T ) = c(raus(s)) = c(s) A f
Satz von Menger max. Anz. kantendisjunkter s-t-wege 6 Wir wissen nun card(s, T ) = c(raus(s)) = c(s) A f card(s, T ) = c(s) = A = f. Kapazität eines = min. Schnittes Wert eines max. Flusses Max-Flow-Min-Cut-Theorem Minimale Kardinalität eines s-t-schnitts = maximale Anzahl kantendisjunkter s-t-wege Satz. Sei G = (V, E) gerichteter Graph, s, t V, st E. Dann ist die max. Anzahl knotendisjunkter s-t-wege gleich der Kardinalität einer kleinsten Knotenmenge, die s und t trennt. [Menger, 927]
7 Perfekte Paarungen Gegeben: eine Menge D = {d,..., d n } von n Damen und eine Menge H = {h,..., h n } von n Herren mit D H =, sowie ein unger. Sympathiegraph G = (D H, E). Gesucht: eine Massenhochzeit, d.h. eine perfekte Paarung: jede Dame wird mit genau einem Herren gepaart, den sie sympatisch findet und umgekehrt. Modell. d V d n G h N(V ) h n Nachbarschaft von v V ist N(v) := {u V uv E} Nachbarschaft von V V ist N(V ) := v V N(v )
8 Der Heiratssatz Aufgabe. Finden Sie eine notwendige Bedingung für die Existenz einer perfekten Paarung! Lösung. Für jedes D D muss gelten: D N(D ). Satz. Modell. d Dies ist auch hinreichend. Das heißt: G hat eine perfekte Paarung für jedes D D gilt D N(D ). h Beweis später! [Hall 935] D N(D ) d n G h n Philip Hall 904 London 982 Cambridge
9 Größte Paarungen in bipartiten Graphen s t Aufgabe. Beob. G G, c : E {} Geben Sie eine effiziente Methode an, die in bipartiten Graphen größte Paarungen berechnet. größter Ganzzahliger Fluss in G -zu- größte Paarung in G größte Menge kantendisjunkter s-t-wege in G größte Menge unabhängiger Kanten in G
0 Ergebnis Wir haben das Problem größte Paarungen in bipartiten Graphen in O(V ) Zeit reduziert auf das Problem maximale Flüsse in gerichteten Graphen. {}}{{}}{ sehr speziellen mit Kap. Satz. Sei G = (V, E) ein bipartiter Graph. Dann lässt sich eine größte Paarung in G in O(V E 2 ) Zeit bestimmen. ausnutzen! Laufzeit Beweis. Konstruktion von G : O(V ) Aufruf von EdmondsKarp (o.ä.) für G : Berechne V s-t-wege in je O(E ) Zeit O(V (E ) 2 ) = O(V E 2 ) O(V E 2 )
Anmerkungen Bem. Satz. Der Fluss-Algorithmus von Dinic berechnet maximale Flüsse in allg. Graphen in O(V 2 E) Zeit Matchings in bipartiten Graphen in O( V E) Zeit. [KN, Kapitel 9.6] Selbst in einem beliebigen Graphen G = (V, E) lässt sich eine größte Paarung in O( V E) Zeit berechnen. [Micali & Vazirani, FOCS 80]
2-7 Beweis des Heiratssatzes s H D G G V V = V {s, t} c : E {} Satz. Beweis. S T H S D S t H T D T G hat eine perfekte Paarung für jedes D D gilt D N(D ). G hat eine perfekte Paarung G hat Fluss f mit f = D = H für jeden s-t-schnitt (S, T ) in G gilt c(s) D }{{} zu zeigen!
2-22 Beweis des Heiratssatzes s H D G G V V = V {s, t} c : E {} Satz. S T H S D S t H T D T G hat eine perfekte Paarung für jedes D D gilt D N(D ). Beweis. z.z.: (S, T ) s-t-schnitt in G c(s) D Es gilt c(s) = c(raus(s)) = e Raus(S) c(e) = Raus(S) H T + D S + N G (D T ) H S N G (D T ) H T + D S + N G (D T ) H S = D S + N G (D T ) H = D S + N G (D T ) D S + D T = D