Kap. 1.4: Minimum Weight Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 4. VO 6. November 2006 Überblick kurze Wiederholung: 1.2 Blüten-Schrumpf-Algorithmus für Perfektes Matching und 1.3 Maximum Matching 1.4 Perfektes Matching kleinsten Gewichts für bipartite Graphen 2 Aussois Workshop on Combinatorial Optimization 2001: Eureka, You Shrink! Video-Ausschnitte: William Pulleyblank: Einordnung in das Zeitgeschehen Jack Edmonds: Präsentation im RAND Workshop 1963 mit Dantzig, Gomory, etc. im Publikum 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching 1. Wende Algorithmus für Perfektes Matching an 2. Falls Perfektes Matching gefunden auch Maximum Matching 3. Sonst: 1. Entferne V(T) aus G [Denn: es ex. kein augm. Weg zu r] 2. Wende Algorithmus auf nächsten M -exp. Knoten an 3 4 Korrektheit für Blüten-Schrumpf Algorithmus für Maximum Matching Lemma: Der Algorithmus ist korrekt! Beweis: Ann.: k Mal gestartet: mit M -exp. Knoten. Seien T 1,,T k die frustrierten Bäume, jeder Baum T i hat genau einen M -exp. Knoten (Wurzel r i ) Matching am Ende besitzt genau k M-exp. Knoten. Sei A=υA(T i ) Entferne A aus G: jeder Knoten von B(T i ) ergibt eine ungerade Komponente, die Anzahl der ungeraden Komponenten von G\A ist A +k (gilt sogar = ) M ist Maximum Matching von G 5 Tutte s Matching Theorem, 1947 Theorem: Ein Graph G=(V,E) besitzt ein Perfektes Matching Für jede Teilmenge A von Knoten gilt: oc(g\a) A Bw.: : G besitzt Perfektes Matching Indirekt: es ex. A mit oc(g\a) > A Argumentation wie immer (s. Alg.) es ex. kein Perfektes Matching. : Für alle A gilt: oc(g\a) A Indirekt: G besitzt kein Perfektes Matching Algorithmus bleibt stecken, d.h. für alle Kanten vw E mit v B(T) gilt: w A(T) Betrachte: G \ A: oc(g\a) < A (wegen Baum) für diese A. 6 1
Analyse: Laufzeit Lemma: Der Algorithmus terminiert nach O(n) Augmentierungen, nach maximal O(n 2 ) Schrumpfungsoperationen, nach O(n 2 ) Baum- Erweiterungsschritten. Lemma: Ein Augmentierungsschritt kann in Zeit O(m log n) realisiert werden. Damit erhält man als Laufzeit für den Algorithmus O(nm log n). Bw.: Idee: nicht explizite Graph-Schrumpfung, sondern implizite Repräsentation der Menge B Übung 1.4 Perfektes Matching kleinsten Gewichts für bipartite Graphen Minimum Weight (MWPM) Idee: Primal-dual Algorithmus mit Methoden der linearen Programmierung. Ausflug: Lineare Programmierung Übung Bem.: Micali und Vazirani, 1980: O( n m): Idee: finde kürzeste augmentierende Wege, davon jeweils viele 7 8 Formulierung als Ganzzahliges Lineares Programm: Formulierung als Ganzzahliges Lineares Programm: Relaxierung: Lineares Programm: (P) 9 10 Theorem von Birkhoff Sei G ein bipartiter Graph, und sei c R E. Dann besitzt G ein perfektes Matching (P) besitzt eine zulässige Lösung. Weiterhin gilt: Falls G ein perfektes Matching besitzt, dann ist der Wert eines perfekten Matchings kleinsten Gewichts gleich des optimalen Werts von (P). Beweis: über primal-dualen Algorithmus für MWPM, alternativ: s. Übung Primal-dualer Algorithmus für MWPM in bipartiten Graphen Duales Programm zu (P): (D) Geg. sei ein Vektor y R V und eine Kante e=(u,v). Wir def.: c e := c e (y) := c e -(y u +y v ) E = := E = (y) := {e E: c e =0} Gleichheits-Kantenmenge 11 12 2
Dualität der Linearen Programmierung Dualität der Linearen Programmierung Schwacher Dualitätssatz: Sei x ein zulässiger Punkt für (P) und y zulässig für (D). Dann gilt: y T b c T x 13 Starker Dualitätssatz: Sei x* ein zulässiger Punkt für (P) und y* zulässig für (D). Dann gilt: y* T b=c T x* beide Lösungen x* und y* sind optimal 14 Complementary Slackness Theorem Complementary Slackness für MWPM Geg. sei ein Vektor y R V und eine Kante e=(u,v). Wir def.: c e := c e (y) := c e -(y u +y v ) E = := E = (y) := {e E: c e =0} Gleichheits-Menge Satz vom komplementären Schlupf: Seien x eine zulässige Lösung für (P) und y zulässig für (D). Dann sind beide Lösungen optimal für alle j gilt: Komplementäre Schlupfbedingungen: Für alle e E gilt: aus x e >0 folgt: c e = c e -(y u +y v ) = 0 Falls x der charakteristische Vektor für ein perfektes Matching M ist, dann ist dies äquivalent zu M E =. 15 16 Primal-Dualer Algorithmus für MWPM Idee: Geg. eine zul. Lösung für (D): Bestimme ein Perfektes Matching in G = :=(V,E = ). Falls eines in G = existiert, dann Optimallösung Denn: x P und y D zulässig und komplementäre Schlupfbedingungen erfüllt. Sonst: gibt uns Algorithmus für PM ein Matching M in G = und einen M-alternierenden Baum in dem Knoten in B(T) höchstens Kanten zur Menge A(T) besitzen. Idee: Primal-Dualer Algorithmus für MWPM für bipartite Graphen Idee: Ändere y, so dass weiterhin Kanten in M und T in E = bleiben und zusätzlich neue Kanten (von B(T) nach nicht A(T)) zu E = hinzukommen. Idee: Erhöhe y v durch ε>0 für alle v B(T), und erniedrige y v durch ε>0 für alle v A(T). Wähle größtes ε>0, so dass y zulässig bleibt. eine neue Kante kommt zu E = hinzu (falls PM ex.) Weil G bipartit ist, kann T nun auf der neuen Menge E = erweitert oder augmentiert werden 17 18 3
Algorithmus für MWPM in bipartiten Graphen (1) Sei y zul. Lösung für (D), M ein Matching in G = (2) Sei T=({r}, ), wobei r M-exponiert ist (3) Wiederhole (4) Solange ein vw E = exist. mit v B(T), w V(T): (5) Falls w ist M-exponiert, dann: (6) Augmentiere M durch Weg (w,r) (7) Falls kein M-exp. Knoten in G existiert, dann: (8) Return M ist Perfektes Matching, STOP (9) Sonst Ersetze T durch ({r}, ), r ist neuer M-exp. Knoten (10) Sonst: Erweitere T durch vw (11) Falls jedes (v,w) E mit v B(T) nur w A(T) hat, dann (12) STOP: G besitzt kein Perfektes Matching. (13) Sonst: Sei ε = min { c vw : v B(T), w V(T) } Korrektheit des Primal-Dualen Algorithmus für MWPM in bipartiten Graphen Die Korrektheit des Algorithmus folgt aus dem Complementary Slackness Theorem: x und y sind zulässige Lösungen für (P) und (D), und die complementary slackness Bedingungen sind erfüllt. Algorithmus heißt auch: ungarische Methode (14) Ersetze y 19 v durch y v +ε für v B(T), y v -ε für v A(T) 20 Laufzeit des Primal-Dualen Algorithmus für MWPM für bipartite Graphen 1.5 Perfektes Matching kleinsten Gewichts in allgemeinen Graphen Im Worst Case ist ein duale Änderung für jeden einzelnen Baumerweiterungsschritt notwendig, O(n 2 ) Baumerweiterungsschritte Zeit für eine duale Änderung: naiv: überprüfe jede Kante um ε zu berechnen insgesamt: O(n 2 m) Realisierung in Zeit O(n 3 ) möglich (Übung) Idee: Primal-dualer Algorithmus in Verbindung mit Blossom-Shrinking des ungewichteten Falls Problem: Birkhoffs Theorem gilt hier nicht mehr 21 22 Relaxierung: Lineares Programm: (P) kann für allgemeine Graphen nicht ganzzahlige Werte annehmen Relaxierung: Lineares Programm: (P) kann für allgemeine Graphen nicht ganzzahlige Werte annehmen 23 Lösung (Edmonds): füge zusätzliche Ungleichungen ein 24 4
1.5 Perfektes Matching kleinsten Gewichts in allgemeinen Graphen Idee: Primal-dualer Algorithmus in Verbindung mit Blossom-Shrinking des ungewichteten Falls Details: s. Cook, Cunningham, Pulleyblank, Schrijver: Combinatorial Optimization, Wiley, 1998 25 5