Vorlesung
Kombinatorische Optimierung (Wintersemester 2018/19)
Kapitel 3: Matchings
Volker Kaibel
Otto-von-Guericke Universit¨at Magdeburg
(Version vom 20. Dezember 2018)
Matchings
Definition 3.1
EinMatchingin einem Graphen G = (V,E) (mit Kantenmenge E ⊆ V2
) ist eine Kantenteilmenge M ⊆E mit e∩e0=∅
f¨ur allee,e0 ∈M mite 6=e0. Ein MatchingM ⊆E heißt perfekt, wenn
M ∩δ(v)6=∅
f¨ur allev ∈V gilt (oder ¨aquivalent dazu:V = S
e∈M
e).
Bipartite Graphen
Definition 3.2
Ein GraphG = (V,E) heißt bipartit, wenn es eine Bipartition V =X ]Y (mit X ∩Y =∅) gibt mit
e 6⊆X und e 6⊆Y f¨ur allee ∈E.
Bemerkung 3.3
Ein Graph ist genau dann bipartit, wenn er keinen Kreis ungerader (kombinatorischer) L¨ange enth¨alt.
Satz von Hall
Satz 3.4
Ein bipartiter Graph G = (V,E) mit Bipartition V =X ]Y und
|X|=|Y|hat entweder ein perfektes Matching oder es gibt A⊆X mit|N(A)|<|A|(aber nicht beides).
Satz von K¨ onig
Definition 3.5
EineKnoten¨uberdeckung eines GraphenG = (V,E) ist eine KnotenteilmengeW ⊆V mit
e∩W 6=∅ f¨ur allee ∈E.
Satz 3.6
In einem bipartiten Graphen ist die maximale Kardinalit¨at eines Matchings gleich der minimalen Kardinalit¨at einer
Knoten¨uberdeckung.
(Kombinatorische starke Dualit¨at, Min-Max Resultat)
Matchingprobleme
Problem 3.7 (Kardinalit¨ats-Matchingproblem) Instanz: Graph G = (V,E)
Aufgabe: Bestimme ein Matching maximaler Kardinalit¨at in G . Problem 3.8 (Gewichtetes Matchingproblem)
Instanz: Graph G = (V,E), Kantengewichte w ∈QE
Aufgabe: Bestimme ein Matching M ⊆E maximalen Gewichts w(M).
Problem 3.9 (Gewichtetes perfektes Matchingproblem) Instanz: Graph G = (V,E), Kantenkosten c ∈QE
Aufgabe: Bestimme ein perfektes Matching M ⊆E minimaler Kosten c(M) oder stelle fest, dass G kein perfektes Matching hat.
Perfekte Matchings in bipartiten Graphen
Satz 3.10
Das gewichtete perfekte Matchingproblem kann in bipartiten Graphen G = (V,E)in Zeit O(|V||E|+|V|2log|V|))gel¨ost werden.
(Mittels Successive-Shortest-Path Algorithmus in einem Netzwerk, das zwei zus¨atzliche Knoten hat; siehe ¨Ubungen)
Das Lineare Assigment Problem
Definition 3.11
Ein bipartiter GraphKn,m = (V,E) mit BipartitionV =X]Y, n=|X|,m=|Y|und
E ={{x,y} |x∈X,y ∈Y}
heißt einvollst¨andiger bipartiter Graphauf n+mKnoten.
Bemerkung 3.12
Das gewichtete perfekte Matchingproblem im Kn,m (Lineares Assignment-Problem) kann in
O(nm(n+m)) Zeit gel¨ost werden.
(”Ungarische Methode”, Spezialfall des Successive-Shortest-Path Algorithmus.)
Matchings in Bipartiten Graphen
Korollar 3.13
Das gewichtete Matchingproblem in bipartiten Graphen
G = (V,E) kann in O(|V||E|+|V|2log|V|))Zeit gel¨ost werden.
(Siehe ¨Ubungen.)
Alternierende Pfade
Definition 3.14
SeiM ⊆E ein Matching in G = (V,E). Ein Knotenv ∈V heißt M-exponiert, wennv ∈/ e f¨ur alle e ∈M gilt. Die Menge der M-exponierten Knoten istXM ⊆V.
Ein TupelP = (v0,v1, . . . ,v`) von Knoten in V mit` >0 ist ein M-alternierender Pfad, wenn
I ei :={vi−1,vi} ∈E f¨ur alle i ∈[`] und
I |{ei,ei+1} ∩M|= 1 f¨ur alle i ∈[`−1].
gelten; wir bezeichnen seine Kantenmenge mit E(P) ={e1, . . . ,e`}.
Augmentierende Wege
Definition 3.15
EinM-augmentierender Wegist ein M-alternierender Pfad P = (v0,v1, . . . ,v`) mit`≥1 und
I v0 und v` sind M-exponiert und
I v0,v1, . . . ,v` sind paarweise verschieden (E(P)⊆E ist also einv0-v`-Weg inG).
Finden Kardinalit¨ atsmaximaler Matchings
Satz 3.16
Ein Matching M⊆E in G = (V,E) ist genau dann ein Matching maximaler Kardinalit¨at in G , wenn es keinen M-augmentierenden Weg gibt.
(Beweis: ¨Ubungen) Algorithmischer Ansatz:
Starte mit leerem MatchingM und ersetze iteriert M durch M4E(P) mit einemM-augmentierenden WegP, solange ein solcher existiert (h¨ochstens |V2| Iterationen).
Finden augmentierender Wege
I Sei M ⊆E ein Matching inG = (V,E).
I Definiere den Digraphen DM = (V,AM) mit
AM ={(v,w) : Es gibt u∈V mit {v,u} ∈E\M und {u,w} ∈M.}
I F¨urS ⊆V sei
N(S) = [
v∈S
N(v)⊆V.
I Jeder M-augmentierende Weg inG mit Endknoten s 6=t induziert einen s-t0-Weg inDM (mit s ∈XM und
s 6=t∈N(t0), alsot0 ∈N(XM\ {s})).
Finden augmentierender Wege
I Ein s-t0-WegW in DM mits ∈XM und t0 ∈N(XM \ {s}) induziert i. A. aber nur einen alternierenden Pfad in G (vgl.
n¨achste Folie).
I Falls G bipartit ist, kann das nicht passieren (keine ungeraden Kreise in G).
I Also kann man f¨ur bipartiteG durch Breitensuche (von exponierten Knoten aus) in O(|E|) Schritten einen M-augmentierenden Weg finden oder feststellen, dass M maximale Kardinalit¨at hat.
Blumen mit Bl¨ uten und Stielen
Kardinalit¨ atsmaximale Matchings in Bipartiten Graphen
Bemerkung 3.17
Ein kardinalit¨atsmaximales Matching kann in bipartiten Graphen G = (V,E) mittels iterierten Findens augmentierender Wege in ZeitO(|V||E|) bestimmt werden.
I Vergleiche augmentierende Fluss-Algorithmen.
I Die Laufzeitschranke kann sogar auf O(p
|V| · |E|) verbessert werden.
Bl¨ uten
Definition 3.18
IstM ⊆E ein Matching in G = (V,E), so heißt ein
M-alternierender Pfad P = (v0,v1, . . . ,v`) eineM-Blume, wenn
I v0∈XM,
I v0, . . . ,v`−1 paarweise verschieden,
I v`=vi f¨ur ein geradesi ∈ {0, . . . , `−1}.
Das Tupel (vi,vi+1, . . . ,v`−1,v` =vi) heißt dann eineM-Bl¨ute;
der alternierende Weg (v0, . . . ,vi) derM-Stiel der M-Blume.
Kontraktion / Schrumpfen
Definition 3.19
SeiG = (V,E) ein Graph undS ⊆V. Der durch Kontraktion (Schrumpfen) vonS entstehende Graph ist
G/S = (V \S ∪ {S},E/S) mit
E/S =E(V \S)∪ {{v,S} |δ(v)∩δ(S)6=∅}.
F¨urM ⊆E definieren wir analog
M/S :=M∩E(V \S)∪ {{v,S} |δ(v)∩δ(S)∩M 6=∅}.
Bl¨ uten-Schrumpf-Lemma
Lemma 3.20
Seien M⊆E ein Matching in G = (V,E) und(v0,v1, . . . ,v`=v0) eine M-Bl¨ute mit B ={v0,v1, . . . ,v`−1}. Dann ist M genau dann ein kardinalit¨atsmaximales Matching in G , wenn M/B ein
kardinalit¨atsmaximales Matching in G/B ist; aus einem
M/B-aufgnentierenden Weg in G/B kann man in Linearzeit einen M-augmengtiereden Weg in G bestimmen.
(Hier ohne Beweis.)
Vorsicht beim Schrumpfen!
Finden augmentierender Wege
Algorithmus 3.21 (Augment-M)
Eingabe: Matching M ⊆E in G = (V,E)
Ausgabe: M-augmentierender Weg (falls einer existiert)
1: Konstruiere DM
2: Suche einen s-t-Weg W in DM, s ∈XM, t∈N(XM \ {s}).
3: ifkein solcher Weg existiert then
4: Stop (”M kardinalit¨atsmaximal”)
5: ifW induziert WegW in G˜ then
6: Stop (”W M-augmentierend”)˜
7: Sei B ⊆V die Knotenmenge der M-Bl¨ute der M-Blume in W .˜
8: Rufe den Algorithmus rekursiv mit G/B und M/B auf.
9: ifM/B kardinalit¨atsmaximal in G/B then
10: Stop (”M kardinalit¨atsmaximal in G ”)
11: Expandiere den gefundenen M/B-augmentierenden Weg Q in
G/B zu einem M-augmentierenden Weg Q in G .˜
12: STOP (”Q M-augmentierend”)˜
Expandieren augmentierender Wege
I Liegt {B} nicht aufQ, so w¨ahle ˜Q =Q.
I Andernfalls sei (v0,v1, . . . ,v`) die M-Bl¨ute in ˜W (B={v0,v1, . . . ,v`−1}), so dass
{v0,v1},{v`−1,v0} 6∈M sind.
I Sei w ∈V der Knoten, f¨ur den{{B},w} die Nicht-Matching Kante inQ ist; seij so, dass {vj,w} ∈E.
I Falls j gerade: Ersetze{B}durch v0, . . . ,vj
I Falls j ungerade: Ersetze{B} durch vj,vj+1, . . . ,v`
Expandieren augmentierender Wege
v0
v3 v2
v4
v6 v5 v7
v8 v1
w
Analyse des Augmentierungs-Algorithmus
Lemma 3.22
Algorithmus 3.21 kann so implementiert werden, dass seine Laufzeit durch
O(|V||E|) beschr¨ankt ist.
Bestimmung eines kardinalit¨ atsmaximalen Matchings
Algorithmus 3.23 (Edmonds Blossom-Shrink Algorithmus) Eingabe: Graph G = (V,E)
Ausgabe: Matching M ⊆E maximaler Kardinalit¨at in G
1: M ← ∅
2: Rufe Algorithmus 3.21 auf.
3: ifM kardinalit¨atsmaximal then
4: Stop (Ausgabe: M)
5: Sei W ⊆E die Kantenmenge des gefundenen M-augmentierenden Weges
6: M ←M4W
7: Gehe zu Schritt 2.
Analyse des Blossom-Skrink-Algorithmus
Satz 3.24
Edmonds Blossom-Shrink Algorithmus findet in O(|V|2|E|) Schritten ein kardinalit¨atsmaximales Matching in G = (V,E).
Korollar 3.25
Man kann in O(|V|2|E|) Zeit ein perfektes Matching in G = (V,E) finden oder feststellen, dass G kein perfektes Matching hat.
Bemerkungen zu Matching-Algorithmen
I Eine Variante des Blossom-Shrink Algorithmus (”alternierende W¨alder”) braucht nurO(|V|3) Schritte.
I Algorithmus von Micali und Vazirani sogar (ohne explizites Schrumpfen von Bl¨uten): O(p
|V| · |E|)
I Edmonds 1965: Erweiterung des Algorithmus f¨ur
gewichts-maximale Matchings (mit beliebigen Gewichten w ∈QE) mit Laufzeitschranke O(|V|4).
I Laufzeit-Verbesserung (Gabow 1990):
O(|V|(|E|+|V|log|V|))
Matching-Polytope
Definition 3.25
F¨ur einen Graphen G = (V,E) sind
Pmatch(G) := conv{χ(M)∈ {0,1}E|M ⊆E Matching}
dasMatching-Polytopund
Pperfmatch(G) := conv{χ(M)∈ {0,1}E|M ⊆E perfektes Matching}
dasperfekte Matching-PolytopvonG.
Bemerkungen
I Die Ecken von Pmatch(G) bzw. Pperfmatch(G) sind die
charakteristischen Vektoren der Matchings bzw. perfekten Matchings in G.
I Gewichtete (perfekte) Matchingprobleme kann man also l¨osen, indem man optimale Eckenl¨osungen von linearen Optimierungsproblemen ¨uber (perfekten )
Matching-Polytopen bestimmt.
I Um Algorithmen und Strukturtheorie (Dualit¨atssa¨atze) der Linearen Optimierung einsetzen zu k¨onnen, ben¨otigt man Beschreibungen der Polytope Pmatch(G) und Pperfmatch(G) als Schnitte von (endlich vielen) affinen Halbr¨aumen.
I Polyedrische Kombinatorik
Lineare 0/1-Beschreibungen
Bemerkung 3.27
F¨ur G = (V,E) ist x ∈ {0,1}E genau dann enthalten in (und damit Ecke von)Pmatch(G) bzw.Pperfmatch(G), wenn
x(δ(v))≤1 f¨ur alle v ∈V bzw.
x(δ(v)) = 1 f¨ur alle v ∈V gelten.
Lineare Beschreibungen f¨ ur Bipartite Graphen
Satz 3.30
F¨ur bipartite Graphen G = (V,E)gilt:
I Pmatch(G) ={x ∈[0,1]E|x(δ(v))≤1 f¨ur alle v ∈V}
I Pperfmatch(G) ={x ∈[0,1]E|x(δ(v)) = 1f¨ur alle v ∈V} (Beweis: VL Ganzzahlige Lkineare Optimierung, SoSem 19)
Perfekte Matching-Polytope Beliebiger Graphen
Satz 3.31
F¨ur jeden Graphen G = (V,E)ist Pperfmatch(G) das Polyeder, das von den folgenden linearen Bedingungen beschrieben wird:
xe ≥ 0 f¨ur alle e ∈E x(δ(v)) = 1 f¨ur alle v ∈V
x(δ(U)) ≥ 1 f¨ur alle U ⊆V,|U|ungerade
(1)
Beweis Satz 3.31: Kontraktionen
0.3
0.1 0.2
0.1 0.2
0.1
w1 0.3
0.4
0.3
w2
0.4 0.4
0.2
Beweis Satz 3.31: Kontraktionen (K · x )
3
1 2
1 2
1
w1 3
4
3
w2
4 4
2
Eine Umformulierung des Systems
Korollar 3.32
F¨ur G = (V,E) istPperfmatch(G) genau die L¨osungsmenge des folgenden Systems:
xe ≥ 0 f¨ur alle e ∈E x(δ(v)) = 1 f¨ur alle v ∈V
x(E(U)) ≤ |U|−12 f¨ur alle U ⊆V,|U|ungerade
(2)
Satz 3.33 (Edmonds Matching-Polytop Theorem)
F¨ur G = (V,E) istPmatch(G) die L¨osungsmenge des folgenden Ungleichungssystems:
xe ≥ 0 f¨ur alle e ∈E x(δ(v)) ≤ 1 f¨ur alle v ∈V
x(E(U)) ≤ |U|−12 f¨ur alle U ⊆V,|U|ungerade
(3)
Konvexe K¨ orper
Problem 3.34 (Separationsproblem f¨ur K ⊆Rn abgeschlossen und konvex)
Instanz: x?∈Qn
Aufgabe: Entscheide, ob x? ∈K ist; wenn x? ∈/K , bestimme einen Vektor a∈Qn und ein β∈Qmit
ha,xi ≤β f¨ur alle x ∈K und
ha,x?i> β
(die Hyperebene{x ∈Rn:ha,xi=β+ε}trennt f¨ur gen¨ugend kleinesε >0 dann x? von K ).
Ungleichungssysteme
Problem 3.35 (Separationsproblem f¨ur ein System S von linearen Ungleichungen und Gleichungen inRn)
Instanz: x?∈Qn
Aufgabe: Entscheide, ob x? das System S erf¨ullt; wenn nicht, bestimme eine Gleichung oder eine Ungleichung ausS, die von x? verletzt wird.
Ellipsoid-Methode
I Kann man das Separationsproblem f¨ur eine Menge von endlichen Systemen von linearen Ungleichungen und
Gleichungen in polynomialer Zeit l¨osen, so kann man auch die linearen Optimierungsprobleme ¨uber den durch diese Systeme definierten Polyedern in polynomialer Zeit l¨osen.
I “Polynomial”: Polynomial in der Dimension und der gr¨oßten Kodierungsl¨ange einer Zahl im jeweiligen System
I Die Umkehrung gilt auch.
I “¨Aquivalenz von Separieren und Optimieren” (Gr¨otschel, Lovasz, Schrijver)
Praxis: Schnittebenen-Verfahren
I Sei S ein System von linearen Gleichungen und Ungleichungen in Rn und P ={x ∈Rn|x erf¨ullt alle Bedingungen in S}.
I Sei c ∈Qn ein Zielfunktionsvektor.
I W¨ahle ein (einfaches) TeilsystemT vonS.
I Bestimme eine Optimall¨osungx? von max{hc,xi |x erf¨ullt T } (mit irgendeinem LP-Algorithmus). Es gilt
hc,x?i ≥max{hc,xi |x ∈P} (obere Schranke).
I L¨ose das Separationsproblem f¨urx? bzgl.S.
I Fallsx? ganzS erf¨ullt:x? Optimall¨osung von max{hc,xi |x∈P}
I Sonst f¨uge (mindestens) eine vonx? verletzte Gleichung oder Ungleichung (Schnittebene) zuT hinzu und iteriere.
Separationsproblem f¨ ur (3.6)
I Sei x? ∈QE gegeben.
I x?(δ(v)) = 1 (f¨ur alle v ∈V) undx? ≥O kann man leicht
¨
uberpr¨ufen.
I x?(δ(U))≥1 gilt genau dann f¨ur alle U ⊆V,|U|ungerade, wenn das x?-Gewicht jeden ”ungeraden Schnitts” inG mindestens Eins ist.
Definition 3.36
Einungerader Schnittin G = (V,E) ist ein Schnitt δ(U)⊆E mitU ⊆V und |U|ungerade.
I Also: Bestimme ungeraden Schnitt minimalen x?-Gewichts.
Gomory-Hu B¨ aume
Definition 3.37
F¨ur einen Graphen G = (V,E) und c ∈RE+ ist ein
Gomory-Hu-Baumein Baum mit KnotenmengeV, so dass f¨ur jede Baumkante{s,t} gilt: SindS ⊆V und T ⊆V mit
V =S]T die Knotenmengen der beiden Komponenten, in die der Baum durch Wegnehmen von{s,t} zerf¨allt, so istδ(S) =δ(T) ein c-minimaler s-t-Schnitt in G.
Satz 3.38
Ein Gomory-Hu-Baum kann via Berechnung von|V| −1minimalen s-t-Schnitten (maximalen s-t-Fl¨ussen) berechnet werden.
Satz 3.39
Ist B = (V,F) Gomory-Hu-Baum f¨ur G = (V,E) (mit|V| ∈2Z) und c ∈RE+, so ist einer der von den Kanten von B induzierten Schnitte in G ein ungerader Schnitt minimalen c-Gewichts.
Gomory-Hu Baum und ungerade Schnitte
Wf
f
Dualisieren
max hw,xi
x(δ(v)) ≤ 1 (v ∈V) [yv] x(E(U)) ≤ b|U|2 c (U ∈(2V)odd) [zu]
x ≥ OE
(4)
(mit (2V)odd={U ⊆V| |U|ungerade}) ergibt minX
v∈V
yv + X
U∈(2V)odd
b|U|2 c ·zu
yv +yw+ P
U∈(2V)odd v,w∈U
zu ≥ we (e ={v,w} ∈E) y ≥ OV
z ≥ O(2V)odd
(5)
“Total Duale Ganzzahligkeit”
Satz 3.40
F¨ur ganzzahlige w ∈ZE hat (5)stets eine ganzzahlige Optimall¨osung(y?,z?)∈Zv ×Z(2V)odd.
I Hier ohne Beweis
I Das Ungleichungssystem in (4) ist TDI (totally dual
integral); wichtiges Konzept in der Theorie der ganzzahligen linearen Optimierung (siehe VL n¨achstes Semester).
Matchings und Odd-Set Covers
Definition 3.41
Einodd-set cover eines GraphenG = (V,E) besteht aus KnotenteilmengenW0⊆V undW1, . . . ,Wk ∈(2V)odd, so dass f¨ur jede Kantee ∈E gilt:
e∩W0 6=∅ oder es gibti ∈[k] mite ⊆Wi
DieKapazit¨at von W0,W1, . . . ,Wk ist
|W0|+
k
X
i=1
b|W2i|c
Satz 3.42
In jedem Graphen ist die maximale Kardinalit¨at eines Matchings gleich der minimalen Kapazit¨at eines odd-set covers.
Matchings und Odd-Set Covers
W0
W1 W2
Tutte-Berge Formel
Korollar 3.43
F¨ur jeden Graphen G = (V,E)ist die maximale Kardinalit¨at eines Matchings
min{12(|V|+|U| −odd(G\U))|U ⊆V},
wobeiodd(G\U) die Anzahl der Zusammenhangskomponenten ungerader Kardinalit¨at von G\U ist.