Kap. 1.4: Minimum Weight Perfect Matching

Werbung
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
Herunterladen