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