Kapitel 8: Matchings Gliederung der Vorlesung 1 - fbi.h

Werbung
Kapitel 8: Matchings
Gliederung der Vorlesung
1.  Grundbegriffe
2.  Elementare Graphalgorithmen und Anwendungen
3.  Kürzeste Wege
4.  Netzplantechnik
5.  Minimale spannende Bäume
6.  Traveling Salesman Problem
7.  Flüsse in Netzwerken und Anwendungen
8.  Matchings
9.  Matchings in kantengewichteten Graphen
8/1, Folie 1
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Gliederung des Kapitels
a) 
b) 
c) 
d) 
Begriffe / Grundlagen
Kantenmaximale Matchings
Kantenmaximale Matchings in Bipartiten Graphen
Anwendungen
... in diesem Kapitel beschäftigen wir uns ausschließlich
mit (ungerichteten) zusammenhängenden Graphen
... aus Gründen der Übersichtlichkeit reden wir immer nur
von Graphen
8/1, Folie 2
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Zentrale Begriffe: Matching und Größe eines Matchings
• 
• 
es sei G = (V,E) ein Graph
es sei M eine Teilmenge der Kantenmenge E
• 
die Kantenmenge M ist ein Matching für G, falls gilt:
• 
für jeden Knoten u ∈ V gibt es höchstens eine Kante e ∈ M, die
mit dem Knoten u inzident ist, d.h. es gilt u ∈ e für maximal eine
Kante e ∈ M
... die Größe eines Matchings M entspricht der Anzahl der
Kanten in M, d.h. M hat die Größe |M|
8/1, Folie 3
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Beispiel
a
1
2
d
b
c
3
8/1, Folie 4
4
e
f
5
• 
• 
M = { a,f } = { {1,2},{4,5} } ist ein Matching für G der Größe 2
M = { b,d } = { {1,3},{2,5} } ist ein Matching für G der Größe 2
• 
M = { a,d,e } = { {1,2},{2,5},{3,4} } ist kein Matching für G
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Begriff: die von einem Matching überdeckten Knoten
• 
• 
• 
es sei G = (V,E) ein Graph
es sei M ⊆ E ein Matching für G
es sei u ∈ V
• 
der Knoten u wird vom Matching M überdeckt, falls es eine Kante e ∈ M
mit u ∈ e gibt
... Knoten, die von einem Matching M überdeckt werden,
nennen wir M-überdeckte Knoten; alle anderen Knoten
nennen wir M-frei
8/1, Folie 5
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Beispiel
a
1
2
d
b
c
3
8/1, Folie 6
e
4
f
5
• 
M = { a,f } = { {1,2},{4,5} } überdeckt die Knoten 1, 2, 4 und 5 (/* der
Knoten 3 ist offenbar M-frei */)
• 
M = { b,d } = { {1,3},{2,5} } überdeckt die Knoten 1, 2, 3 und 5 (/* der
Knoten 4 ist offenbar M-frei */)
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Eine sehr, sehr einfache Beobachtung
• 
• 
es sei G = (V,E) ein Graph mit n Knoten
es sei M ⊆ E ein Matching für G
Dann gilt: M überdeckt eine gerade Anzahl von Knoten.
Dann gilt: M enthält höchstens n/2 viele Kanten.
8/1, Folie 7
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Begriff: Perfektes Matching
• 
• 
es sei G = (V,E) ein Graph
es sei M ⊆ E ein Matching für G
• 
M ist ein perfektes Matching für G, falls M alle Knoten von G überdeckt,
d.h. V enthält nur M-überdeckte Knoten bzw. V enthält keine M-freien
Knoten
... für den durch M induzierten Teilgraph G‘ = (V‘,M) mit
V‘ = { u ∈ V | es gibt ein e ∈ M mit u ∈ e } gilt: V‘ = V
8/1, Folie 8
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Interessierende Aufgabenstellungen
erste Aufgabe:
• 
entscheide, ob es für einen gegebenen Graphen G ein perfektes
Matching M gibt (/* falls es ein solches gibt, bestimme eines */)
zweite Aufgabe:
• 
bestimme für einen gegebenen Graphen G ein kantenmaximales
Matching M (/* ein solches gibt es immer */)
... M ist ein kantenmaximales Matching für G, falls es
kein Matching M‘ für G mit |M‘| > |M| gibt
8/1, Folie 9
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Anmerkungen
• 
die erste Aufgabe ist nur dann interessant, wenn
• 
• 
der gegebene Graph G eine Knotenmenge mit einer geraden
Anzahl von Knoten hat
der gegebene Graph G kein vollständiger Graph ist, d.h. in G sind
nicht je zwei Knoten mit einer Kante verbunden sind
... überlegen Sie sich, warum diese beiden Anmerkungen richtig sind
... überlegen Sie sich, wie man in einem vollständigen Graphen mit
einer geraden Anzahl von Knoten ein perfektes Matching bestimmen
kann
8/1, Folie 10
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Anmerkungen
• 
8/1, Folie 11
es genügt vollkommen, sich mit der zweiten Aufgabe zu beschäftigen
(/* wenn man ein kantenmaximales Matching M für den gegebenen
Graphen G gefunden hat, kann man effizient überprüfen, ob M ein
perfektes Matching für G ist */)
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Erstes algorithmisches Problem
• 
gegeben:
• 
• 
ein zusammenhängender Graph G
gesucht:
• 
ein Matching M für G mit einer maximalen Anzahl von
Kanten
... wenn wir auf dieses Problem Bezug nehmen, sprechen wir vom
Problem, kantenmaximale Matchings zu bestimmen
8/1, Folie 12
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Wie weit kommt man mit einer ganz einfachen Idee ...
• 
• 
ohne sich „sonderlich“ anzustrengen, kann man sehr effizient in einem
gegebenen Graphen G ein Matching M bestimmen, das nicht viel kleiner
als ein kantenmaximales Matching M° für G ist
man kann zeigen, dass |M| ≥ 1/2 * |M°| gilt
... dieselbe Idee kann man verwenden, um in einem vollständigen
Graphen mit einer geraden Anzahl von Knoten ein perfektes
Matching zu bestimmen
8/1, Folie 13
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Illustration
1
2
3
4
5
6
... wenn man wie folgt vorgeht, findet man ein Matching M für den
gegebenen Graphen G = (V,E), das mindestens die Größe 2 hat:
1) 
2) 
8/1, Folie 14
setze M = ∅
falls es in E noch eine Kante gibt, deren beide Knoten M-frei
sind, so wähle eine solche Kante e aus, setze M = M ∪ { e }
und gehe zu 2)
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  ... ein wenig genauer
• 
es seien G = (V,E) ein Graph mit n Knoten und m Kanten und
e1,...,em irgendeine Anordnung der Kanten von G
• 
• 
• 
setze M1 = { e1 }
for i = 2,...n do
• 
falls jeder der beiden Knoten u und v der Kante ei
ein Mi-1-freier Knoten ist, so setze Mi = Mi-1 ∪ { ei }
• 
anderenfalls, setze Mi = Mi-1
setze M = Mm
... offenbar wird so ein Matching M für G bestimmt (/* ... und, falls man
sich geschickt anstellt, genügen hierfür O(n+m) viele Rechenschritte */)
8/1, Folie 15
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Anmerkungen
• 
• 
es sei G = (V,E) der gegebene Graph
es sei e1,...,em irgendeine Anordnung der Kanten in G
• 
es seien M° ein kantenmaximales Matching für G und M das von
unserem Algorithmus bestimmte Matching
... wir wollen jetzt begründen, warum |M| ≥ 1/2 * |M°| gilt
8/1, Folie 16
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Begründung
• 
wir definieren eine Funktion f(.), die jeder Kante aus M° derart eine Kante
aus M zuordnet, so dass für jede Kante e ∈ M gilt:
• 
es gibt höchstens zwei Kanten e° ∈ M° mit f(e°) = e
... mit Hilfe des Schubfachprinzips kann man sich unmittelbar
überlegen, dass M ≥ 1/2* |M°| gelten muss (siehe Bild).
M°
M
8/1, Folie 17
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Begründung (cont.)
• 
für alle e° ∈ M° definieren wir den Funktionswert f(e°) wie folgt:
• 
• 
wenn e° ∈ M gilt, so setzen wir: f(e°) = e°
wenn e° ∉ M gilt, so wählen wir eine Kante e ∈ M aus, die mit der
Kante e° einen Knoten gemeinsam hat, und setzen f(e°) = e
... wir müssen begründen, dass gilt:
1) 
2) 
8/1, Folie 18
zu jeder Kante e° ∈ M° gibt es eine Kante e ∈ M mit f(e°) = e
zu jeder Kante e ∈ M gibt es höchstens zwei Kanten e° ∈ M°
mit f(e°) = e
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Argumentation für 1)
• 
• 
• 
wenn e° ∉ M gilt, so muss e° ≠ e1 gelten
außerdem muss es ein i > 1 mit e° = ei geben
also muss es im Matching Mi-1 (/* und damit auch im Matching M */)
eine Kante e geben, die mit der Kante e° einen Knoten gemeinsam
hat (/* andernfalls, wäre die Kante e° eine Mi-1-freie Kante gewesen */)
!  Argumentation für 2)
• 
wenn es zu einer Kante e ∈ M zwei Kanten e° ∈ M° mit f(e°) = e gibt, so
muss jeder der beiden Kanten eine andere Ecke von e überdecken
u
• 
8/1, Folie 19
e
v
also kann es keine weitere Kante in M° geben, die eine Ecke mit e
gemeinsam hat (/* sonst wäre M° kein Matching für G */)
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 8: Matchings
Begriffe / Grundlagen
!  Zwischenfazit
• 
man kann ziemlich einfach und sehr effizient für einen gegebenen
Graphen G ein Matching M bestimmen, dass nicht viel kleiner als ein
kantenmaximales Matching M° für G ist (/* es gilt: |M| ≥ 1/2 * |M°| */)
• 
ein kantenmaximales Matching für G zu bestimmen, ist auch effizient
möglich (/* die aktuelle bekannten Verfahren sind jedoch deutlich
langsamer */)
... mit Blick auf die konkrete Anwendung muss man sich überlegen, ob
sich der Aufwand lohnt
... die diesen Verfahren zugrunde liegenden Ideen zu verstehen, ist
auf jeden Fall sinnvoll
8/1, Folie 20
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Herunterladen