1 Folie/Blatt

Werbung
Kap. 1.2: Matching ff
Professor Dr. Petra Mutzel
Lehrstuhl für Algorithm Engineering, LS11
3. VO
30. Oktober 2006
Überblick
• Organisatorisches: Prüfungen / Übungen
• Perfektes Matching für bipartite Graphen
• Perfektes Matching für Graphen
• Maximum Matching
2
Prüfungselemente
• Mündliche Fachprüfung:
– Über VO 2 inkl Ü 2: 6LP
– Anforderungen:
• Zusammenhänge des Gebiets
• Spezielle Fragestellungen einordnen und
bearbeiten
NEU: • (ich hätte gerne: „regelmäßige aktive
Mitarbeit in Übungen“, darf ich aber nicht
fordern)
• Mündliche Prüfung: Stoff der VO und Ü,
20 Minuten
3
Prüfungselemente
• Leistungsnachweis:
– Über VO 2 inkl. Ü 2: 6LP
– Anforderungen:
• Regelmäßige aktive Mitarbeit in
Übungen
• Mündliche Prüfung (in einer Art
NEU: Fachgespräch): 15 Minuten
4
Ablauf der Übungen
• normale Übungsaufgaben:
– von allen bearbeitet
– in der Übung besprochen
• Projektaufgaben
– einer Ü-Gruppe (2-3 Stud.) zugeordnet
– diese macht ca 20-min. Präsentation der Ergebnisse
(alle Gruppenmitglieder müssen präsentieren)
– Notebook-Präsentation (pdf oder
PowerPoint/OpenOffice o.ä.) wünschenswert
1. Übungsblatt: Wer macht 1. Projektaufgabe? Di? / Do?
Bitte Gruppeneinteilung markieren
5
Alternierende Bäume
2 Mengen bzgl. Knoten r (Wurzel):
• A = {Knoten v mit ungerader Weglänge (r,v)}
• B = {Knoten v mit gerader Weglänge (r,v)}
Regel für Aufbau:
(1) A:=∅, B:={r}
(2) Falls vw∈E mit v∈B, w∉A∪B, wz∈M existiert,
(3) dann: Addiere w zu A und z zu B. z war vorher
nicht in T
Idee: Falls vw∈E mit v∈B, w∉A∪B und w M-exponiert,
dann: M-augmentierender Weg gefunden!
6
Eigenschaften
alternierender Bäume
T:
Alternierende
Bäume
• Jeder Knoten in T\{r} ist überdeckt durch Kante
2 Mengen
bzgl. Knoten r (Wurzel):
in M∩E(T)
A = jeden
{Knoten
v mit vungerader
Weglänge
(r,v)}
•• Für
Knoten
in T gilt: der
eindeutige
Weg
• B
= {Knoten
gerader Weglänge (r,v)}
von
v nach r vistmit
M-alternierend.
Regel für Aufbau:
(1) A:=∅, B:={r}
(2) Falls vw∈E mit v∈B, w∉A∪B, wz∈M existiert,
(3) dann: Addiere w zu A und z zu B. z war vorher
nicht in T
Idee: Falls vw∈E mit v∈B, w∉A∪B und w M-exponiert,
dann: M-augmentierender Weg gefunden!
7
1.2.1 Perfekter Matchingalgorithmus
für Bipartite Graphen
(1) Setze M:=∅, wähle M-exp. Knoten r, T=({r},∅)
(2) Solange eine Kante vw∈E exist. mit v∈B(T), w∉V(T):
(3) Falls w ist M-exponiert, dann:
(4)
Augmentiere M durch Weg (r,w)
(5)
Falls kein M-exp. Knoten mehr existiert, dann:
(6)
→ Return „Perfektes Matching“, STOP
(7)
Sonst Ersetze T durch ({r},∅), r ist neuer M-exp.
Knoten
(8) Sonst Erweitere T durch Kanten (v,w) und (w,z)
(9) STOP; G besitzt kein Perfektes Matching.
8
Analyse des Matchingalgorithmus für
Bipartite Graphen: Korrektheit
•
•
•
•
•
•
•
Lemma: G sei bipartit, M ist Matching in G, T≠∅
sei M-alternierender Baum, und es gibt keine
Kante in E der Form (v,w) mit v∈B(T) und w∉V(T).
Dann gilt: G besitzt kein Perfektes Matching.
Beweis: Aus Vorauss. folgt: Für alle Kanten (v,w) in G mit
v∈B(T) gilt: w∈A(T) („T frustriert“) [denn: alle Kanten enden in
T aber nicht in B, denn sonst: ungerader Kreis]
Betrachte: G \ A(T): enthält die einzelnen Knoten aus B
jedes Element in B muss gematched werden, aber es gibt
keine anderen Kanten von B außer zu A
aber |A(T)| < |B(T)| [denn: 1. Knoten ist in B und letzter]
9
⇒ B kann nicht perfekt gematched werden
Problem für nicht-bipartite Graphen
B
A
a
B
B
A
B
e
g
i
k
f
h
j
l
c
r
b
A
d
m
M
E\M
Blossom: „ungerader Kreis“ C: augmentierender Weg
von r nach m wird nicht gefunden
Idee: Jack Edmonds: „Eureka, you …“
shrink“
10
11
12
Jack Edmonds
13
Problem für nicht-bipartite Graphen
B
A
a
B
M
E\M
B
A
B
e
g
i
k
f
h
j
l
c
r
b
A
d
m
Kontrahiere C in G: G´=GxC
Welche Kreise kontrahieren?
Es existiert Kante (v,w) mit v,w∈B(T)
⇒ bildet ungerader Kreis mit Kanten in T
14
Problem für nicht-bipartite Graphen
B
A
a
B
M
E\M
B
A
B
e
g
i
k
f
h
j
l
c
r
b
A
d
m
Kontrahiere C in G: G´=GxC
Welche Kreise kontrahieren?
Es existiert Kante (v,w) mit v,w∈B(T)
⇒ bildet ungerader Kreis mit Kanten in T
15
Beobachtung
B
A
a
B
M
E\M
B
A
B
e
g
i
k
f
h
j
l
c
r
b
A
d
m
Kontrahiere C in G: G´=GxC
•
•
•
M Matching in G → Matching M´ in G´
T M-alternierend → T´ M´-alternierend in G´
C → Knoten c, c∈B(T)
16
Beziehung zwischen M und M´
B
A
a
B
M
E\M
B
A
B
e
g
i
k
f
h
j
l
c
r
b
A
d
m
Kontrahiere C in G: G´=GxC
Lemma: Zu jedem Matching M´ in G´ existiert ein
Matching M in G mit M⊆M´∪E(C); die Anzahl der
M-exponierten Knoten in G ist gleich der Anzahl
der M´-exponierten Knoten in G´.
17
Beziehung zwischen M und M´
B
A
B
c
a
M
E\M
B
A
B
e
g
i
k
f
h
j
l
c
w
r
b
A
d
m
Kontrahiere C in G: G´=GxC
Bw.: Falls c M´-überdeckt ist (von e), sei w der Endknoten von e
in C; sonst: wähle w beliebig aus V(C). Entferne w aus C
⇒ C\{w} besitzt perfektes Matching M´´
⇒ M:=M´υM´´ erfüllt die Bedingung.
18
Beziehung zwischen M und M´
B
A
a
B
B
A
B
e
w
g
i
k
xf
vh
j
l
c
r
b
A
d
m
Lemma: G´ enthält augmentierenden Weg
⇔ G enthält augmentierenden Weg.
Bw.: „⇐“: Ann.: G enthält augm. Weg
1.Fall: Augm. Weg verläßt Blossom C in Knoten x in Menge B:
⇒ Weglänge von b nach x ist gerade
2.Fall: Augm. Weg verläßt C in x in Menge A:⇒ Weg läuft über
(w,v)-Weg ⇒ Weglänge von b nach x über (w,v) ist gerade 19
Problem für nicht-bipartite Graphen
B
A
a
B
c
B
A
B
e
g
i
k
f
h
j
l
yc
r
b
A
d
m
Lemma: G´ enthält augmentierenden Weg
⇔ G enthält augmentierenden Weg.
Bw.: „⇒“: Ann.: G´ enthält augm. Weg: erweitere ihn zu Weg in G:
Es ex. genau eine Kante in M´ inzident zu c
⇒ entspricht genau ein Knoten y in G, der zu M inzident ist
⇒ Entferne y
20
⇒ Matche C-{y} perfekt
Blüten-Schrumpf-Algorithmus f. Perf. Match.
(1) Sei M´=M (M bel. Matching), G´=G
(2) Wähle M-exp. Knoten r von G´ und T=({r},∅)
(3) Solange ein vw∈E´ exist. mit v∈B(T), w∉A(T):
(4) Falls w ist M´-exponiert, dann:
(5)
Augmentiere M´ durch Weg (w,r)
(6)
Erweitere M´ zu Matching M
(7)
Ersetze M´ durch M, G´ durch G
(8)
Falls kein M´-exp. Knoten in G´ existiert, dann:
(9)
→ Return „M´ ist Perfektes Matching“, STOP
(10) Sonst Ersetze T durch ({r},∅), r ist neuer M´-exp. Knoten
(11) Falls w∉V(T), w ist M´-überdeckt: Erweitere T durch vw
(12) Falls w∈B(T): Schrumpfe ungeraden Kreis von vw,
aktualisiere M´ und T
21
(13) STOP; G besitzt kein Perfektes Matching.
Bsp. mit Doppel-blüte („nested blossoms“)
B
A
B
C1
r
a
u
A
B
A
B
A
B
e
vg
i
l
o
q
f
w
h
j
m
p
s
k
n
xc
u: exponiert, aber wird nicht gefunden, da v∈B(T) und w∈A(T)
v∈B(T), w∉A(T), w ist nicht M´-exp., aber w∈B(T) ⇒ schrumpfe C1
22
Bsp. mit Doppel-blüte („nested blossoms“)
B
r
A
a
B
c
u
A
B
A
B
i
vl
o
q
j
w
m
p
s
k
n
C2
u: exponiert, aber wird nicht gefunden, da v∈B(T) und w∈A(T)
v∈B(T), w∉A(T), w ist nicht M´-exp., aber w∈B(T) ⇒ schrumpfe C1
v∈B(T), w∉A(T), w∈B(T) ⇒ schrumpfe C2
23
Bsp. mit Doppel-blüte („nested blossoms“)
B
r
A
a
B
c2
A
u
B
A
B
o
q
p
s
C2
k
n
u: exponiert, aber wird nicht gefunden, da v∈B(T) und w∈A(T)
v∈B(T), w∉A(T), w ist nicht M´-exp., aber w∈B(T) ⇒ schrumpfe C1
v∈B(T), w∉A(T), w∈B(T) ⇒ schrumpfe C2
⇒ v∈B(T), u∉A(T): (u´s Nachbar rutschte dadurch nach B),
u: M´-exp. ⇒ „Augment“
24
Bsp. mit Doppel-blüte („nested blossoms“)
B
r
A
a
B
c2
A
u
B
A
B
o
q
p
s
C2
k
n
u: exponiert, aber wird nicht gefunden, da v∈B(T) und w∈A(T)
v∈B(T), w∉A(T), w ist nicht M´-exp., aber w∈B(T) ⇒ schrumpfe C1
v∈B(T), w∉A(T), w∈B(T) ⇒ schrumpfe C2
⇒ v∈B(T), u∉A(T): (u´s Nachbar rutschte dadurch nach B),
u: M´-exp. ⇒ „Augment“
25
Bsp. mit Doppel-blüte („nested blossoms“)
B
r
A
a
B
c
u
A
B
A
B
i
vl
o
q
j
w
m
p
s
k
n
C2
u: exponiert, aber wird nicht gefunden, da v∈B(T) und w∈A(T)
v∈B(T), w∉A(T), w ist nicht M´-exp., aber w∈B(T) ⇒ schrumpfe C1
v∈B(T), w∉A(T), w∈B(T) ⇒ schrumpfe C2
⇒ v∈B(T), u∉A(T): (u´s Nachbar rutschte dadurch nach B),
u: M´-exp. ⇒ „Augment“
26
Bsp. mit Doppel-blüte („nested blossoms“)
B
r
A
a
B
u
A
B
A
B
e
g
i
vl
o
q
f
h
j
w
m
p
s
k
n
c
u: exponiert, aber wird nicht gefunden, da v∈B(T) und w∈A(T)
v∈B(T), w∉A(T), w ist nicht M´-exp., aber w∈B(T) ⇒ schrumpfe C1
v∈B(T), w∉A(T), w∈B(T) ⇒ schrumpfe C2
⇒ v∈B(T), u∉A(T): (u´s Nachbar rutschte dadurch nach B),
u: M´-exp. ⇒ „Augment“
27
Analyse: Terminierung
Lemma: Der Blüten-Schrumpf-Algorithmus terminiert nach O(n)
Augmentierungen nach maximal O(n2) Schrumpfungsoperationen und O(n2) Baum-Erweiterungsschritten.
Bw.: M´ ist immer Matching
•
Jede Augmentierung vermindert die M´-exp. Knoten
•
⇒ enthält max. O(n) Augmentierungen
•
⇒ jeder Schrumpfungsschritt vermindert die Knotenanzahl in
G´, die Anzahl der Knoten nicht in T´ bleibt gleich
•
⇒ jeder Baumerweiterungsschritt vermindert die Knotenanzahl nicht in T, die Anzahl der Knoten in G´ bleibt gleich
•
⇒ max. O(n) Schrumpf-/Erweiterungsschritte zwischen den
Augmentierungen
28
•
⇒ insgesamt: O(n2) Schrumpf-/Erweiterungsschritte
Analyse: Korrektheit
Lemma: Der Algorithmus ist korrekt!
Bw.: klar: wenn kein M´-exp. Knoten existiert ⇒ perfektes
Matching gefunden
Ann.: es ex. M´-exp. Knoten, aber es ex. kein vw∈E´ mit v∈B(T),
w∉A(T)
•
⇒ für alle Kanten vw∈E´ mit v∈B(T) gilt w∈A(T)
•
⇒ w ist kein Pseudoknoten (denn alle geschrumpften Knoten
sind in B(T)) ⇒ entferne A(T) von G ⇒ für jeden Knoten
v∈B(T) erhalten wir eine Komponente mit Originalknotenmenge S(v) ⇒ alle ungerade (B´s sind nicht verbunden
untereinander)
•
⇒ Anzahl ungerader Komponenten von G\A(T) > |A(T)|
•
⇒ G besitzt kein perfektes Matching!
29
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
Bw.: 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 Mexp. 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 ⇒ für alle Kanten vw∈E´
30
mit v∈B(T) gilt w∈A(T)
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
Beachte: Es kann nicht sein, dass durch das Entfernen von V(Ti)
ein augmentierender Weg von anderen Startknoten zerstört
wird.
Denn: Sonst müßte dieser augmentierende Weg P mit NichtMatching-Kanten auf Ti treffen sowie Ti verlassen. Die
Anzahl der Kanten aus P∩Ti ist also ungerade. Somit hätte
man auch einen augmentierenden Weg von ri aus gefunden.
31
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.
32
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
33
Herunterladen