Kap. 1.4: Minimum Weight Perfect Matching 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 3 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching 1. 2. Wende Algorithmus für Perfektes Matching an 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 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 T1,…,Tk die frustrierten Bäume, jeder Baum Ti hat genau einen M´-exp. Knoten (Wurzel ri) • ⇒ Matching am Ende besitzt genau k M-exp. Knoten. Sei A=υA(Ti) ⇒ • Entferne A aus G: jeder Knoten von B(Ti) 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 Analyse: Laufzeit Lemma: Der Algorithmus terminiert nach O(n) Augmentierungen, nach maximal O(n2) Schrumpfungsoperationen, nach O(n2) BaumErweiterungsschritten. 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 Bem.: Micali und Vazirani, 1980: O(√n m): Idee: finde kürzeste augmentierende Wege, davon jeweils viele 7 1.4 Perfektes Matching kleinsten Gewichts für bipartite Graphen „Minimum Weight Perfect Matching“ (MWPM) Idee: Primal-dual Algorithmus mit Methoden der linearen Programmierung. Ausflug: Lineare Programmierung → Übung 8 ILP-Formulierung für Min-Weight Perfect Matching Formulierung als Ganzzahliges Lineares Programm: 9 ILP-Formulierung für Min-Weight Perfect Matching Formulierung als Ganzzahliges Lineares Programm: Relaxierung: Lineares Programm: (P) 10 Theorem von Birkhoff Sei G ein bipartiter Graph, und sei c∈RE. 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 11 Primal-dualer Algorithmus für MWPM in bipartiten Graphen Duales Programm zu (P): (D) Geg. sei ein Vektor y∈RV und eine Kante e=(u,v). Wir def.: • • ce´ := ce´(y) := ce-(yu+yv) E= := E=(y) := {e∈E: ce´=0} „Gleichheits-Kantenmenge“ 12 Dualität der Linearen Programmierung Primales Programm (P): Duales Programm (D): Schwacher Dualitätssatz: Sei x´ein zulässiger Punkt für (P) und y´ zulässig für (D). Dann gilt: y´T b ≤ cT x´ 13 Dualität der Linearen Programmierung Primales Programm (P): Duales Programm (D): Starker Dualitätssatz: Sei x* ein zulässiger Punkt für (P) und y* zulässig für (D). Dann gilt: y*Tb=cTx* ⇔ beide Lösungen x* und y* sind optimal 14 Complementary Slackness Theorem Primales Programm (P): Duales Programm (D): 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: 15 Complementary Slackness für MWPM Geg. sei ein Vektor y∈RV und eine Kante e=(u,v). Wir def.: • • ce´ := ce´(y) := ce-(yu+yv) E= := E=(y) := {e∈E: ce´=0} „Gleichheits-Menge“ Komplementäre Schlupfbedingungen: • Für alle e∈E gilt: aus xe>0 folgt: ce´= ce-(yu+yv) = 0 • Falls x der charakteristische Vektor für ein perfektes Matching M ist, dann ist dies äquivalent zu M⊆E= . 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: • 17 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 yv durch ε>0 für alle v∈B(T), und erniedrige yv 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 18 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 { cvw´: v∈B(T), w∉V(T) } 19 (14) Ersetze yv durch yv+ε für v∈B(T), yv-ε für v∈A(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“ 20 Laufzeit des Primal-Dualen Algorithmus für MWPM für bipartite Graphen • Im Worst Case ist ein duale Änderung für jeden einzelnen Baumerweiterungsschritt notwendig, O(n2) Baumerweiterungsschritte • Zeit für eine duale Änderung: naiv: überprüfe jede Kante um ε zu berechnen → insgesamt: O(n2 m) • Realisierung in Zeit O(n3) möglich (Übung) 21 1.5 Perfektes Matching kleinsten Gewichts in allgemeinen Graphen Idee: Primal-dualer Algorithmus in Verbindung mit Blossom-Shrinking des ungewichteten Falls Problem: Birkhoffs Theorem gilt hier nicht mehr 22 ILP-Formulierung für Min-Weight Perfect Matching Relaxierung: Lineares Programm: (P) kann für allgemeine Graphen nicht ganzzahlige Werte annehmen 23 ILP-Formulierung für Min-Weight Perfect Matching Relaxierung: Lineares Programm: (P) kann für allgemeine Graphen nicht ganzzahlige Werte annehmen Lösung (Edmonds): füge zusätzliche Ungleichungen ein 24 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