Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 10 Matching-Probleme 10.1 Definition von Matching-Probleme Definition 21 [2-dimensionales Matching] I Sei G = (V , E ) ein ungerichteter Graph und E 0 ⊆ E . E 0 ist ein Matching, wenn für alle Kantenpaare e1 , e2 ∈ E 0 mit e1 6= e2 gilt, dass e1 ∩ e2 = ∅ ist, d.h. die beiden Kanten verbinden unterschiedliche disjunkte Knotenpaare. I Ein Matching E 0 nennen wir maximal, wenn es keine echte Obermenge E 00 ⊃ E 0 gibt, die die Matching-Bedingung erfüllt. I E 0 heißt Maximum- oder optimales Matching, wenn die E 0 ein Matching größtmöglicher Kardinalität (in der Menge aller Matchings von G ) ist. I E 0 ist ein perfektes Matching, falls jeder Knoten von G mit einer Kante aus E 0 inzident ist. 308 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Definition 21 (Teil 2) I Unter dem (2-dimensionalen) Matching-Problem verstehen wir das Problem, für einen ungerichteten Graphen zu entscheiden, ob für diesen ein perfektes Matching existiert. I Ist zusätzlich zum Graphen G noch eine Kostenfunktion κ : E → R auf den Kanten gegeben, so ergibt sich das gewichtete Matching-Problem. Hierbei unterscheiden wir zwei Varianten: 1. Gesucht ist ein Matching E 0 ⊆ E , welches den Wert des Matchings X W (E 0 ) := κ(e) e∈E 0 maximiert. 2. Gesucht ist ein optimales Matching E 0 , so dass W (E 0 ) minimal ist. Leider können wir hier nur auf eine eingeschränkte Version weiter eingehen. 309 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Eine für viele Anwendungen interessante Variante des Matching-Problems erhalten wir, wenn wir uns auf bipartite Graphen einschränken: Definition 22 I Einen Graphen G = (V , E ) nennen wir bipartit oder 2-färbbar, falls wir seine Knotenmenge in zwei Teilmengen V1 , V2 partitionieren können, so dass V1 ∩ V2 = ∅, V1 ∪ V2 = V und jede Kanten mit einem Knoten aus V1 und mit einem Knoten aus V2 inzident ist. I Das Matching-Problem für bipartite Graphen nennen wir auch Heiratsproblem. Anwendungen: Ressourcen optimal zuordnen, Prozesse zu Prozessoren zuordnen oder Clients zu Servern zuordnen. 310 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Definition 23 [3DM, 3-DIM-MATCHING] I Gegeben eine Menge M von Tripeln über einer Grundmenge A × B × C paarweise disjunkter Komponentenmengen A, B, C . Ein Matching von M ist eine Teilmenge M 0 ⊆ M, so dass jedes Element aus A ∪ B ∪ C in höchstens einem Tripel aus M 0 vorkommt. I Ein Matching M 0 , bei dem jedes Element aus A ∪ B ∪ C genau einmal vertreten ist, ist ein perfektes 3-dimensionales Matching. I Das Entscheidungsproblem, ob für eine Menge M ein perfektes 3-dimensionales Matching existiert nennen wir 3-DIM-MATCHING oder kurz 3DM. Definition 24 [X3C, exakte 3-Überdeckung] I Ist M eine Menge von 3-elementigen Mengen über einer endlichen Grundmenge C , wird aus dem 3DM Problem das Problem für eine Menge M zu entscheiden, ob eine exakte 3-Überdeckung existiert. Wir nennen diese Problem X3C. 311 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 10.2 Das Heiratsproblem Satz 18 [Heiratssatz] Ein bipartiter Graph G = (V , E ) mit Knotenpartitionierung V1 , V2 besitzt genau dann ein perfektes Matching, wenn |V1 | = |V2 | ist und für alle Teilmengen U1 ⊆ V1 und deren Korrespondenz auf der anderen Seite Γ(U1 ) := { v ∈ V2 | ∃u ∈ U1 : {u, v } ∈ E } die Ungleichung |U1 | ≤ |Γ(U1 )| erfüllt ist. Bemerkung: Aus diesem Satz können wir keinen effizienten Algorithmus für das Heiratsproblem herleiten, da es exponentiell viele Teilmengen von V1 gibt. 312 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Beweis von Satz 18: Die Notwendigkeit der beiden Bedingungen, folgt unmittelbar aus der Definition des Heiratsproblems: I Sei E 0 ein perfektes Matching und U1 eine beliebige Teilmenge von V1 , dann ist jeder Knoten aus U1 über E 0 mit genau einem Knoten aus V2 verbunden. Somit gilt |U1 | ≤ |Γ(U1 )|. 313 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Beweis von Satz 18 (Teil 2): Um zu zeigen, dass die Bedingungen des Satzes auch hinreichend sind, greifen wir auf Satz 14 (MAXFLOW-MINCUT-Theorem auf Folie 208) zurück. Es ist einfach möglich, das Matching-Problem für bipartite Graphen auf ein Flußproblem zu reduzieren: I Füge eine Quelle q und eine Senke s zu G hinzu und verbinde q mit alle Knoten aus V1 und alle Knoten aus V2 mit s. I Richte alle Kanten von q nach s. Insbesondere richte alle Kanten zwischen V1 und V2 , so dass sie von V1 nach V2 verlaufen. I Gebe allen Kanten die Kapazität 1. Sei H das resultierende Netzwerk. 314 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Beweis von Satz 18 (Teil 3): V1 V2 u1 v1 u2 v2 q s um vm Wie wir aus dem Algorithmus zur Bestimmung des maximalen Flusses (Algorithmus modify-flow auf Folie 202) erkennen können, existiert zu jedem Graphen mit ganzzahliger Kapazitätsfunktion γ : E → N ein maximaler Fluss f , der ganzzahlig ist, d.h. ein Fluss der Form f : E → N. 315 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Beweis von Satz 18 (Teil 4): Wir erkennen: I Zu jedem Matching E 0 in G korrespondiert eindeutig ein Fluss f in H gleicher Größe, wenn man über die Kanten in H, deren Urbilder in G zu E 0 gehören, jeweils eine Einheit fließen läßt. I Analoges gilt auch in umgekehrter Richtung, wenn wir einen ganzzahligen Fluss betrachten. 316 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Beweis von Satz 18 (Teil 5): I Angenommen, ein bipartiter Graph G mit |V1 | = |V2 | besitzt kein perfektes Matching. I Aus der letzten Beobachtung auf der Folie 316 können wir somit folgern, dass der Wert des maximalen Flusses kleiner als |V1 | ist. I Wir betrachten nun einen minimalen q|s-Schnitt (Q, S) in H. I Die Schnittkapazität γ(Q, S) ist die Anzahl der Kanten, die von Q nach S führen. I Sei Q 0 := Q ∩ V1 . 317 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Beweis von Satz 18 (Teil 6): I Da q mit jedem Knoten in V1 ∩ S = V1 \ Q 0 und jeder Knoten aus S 0 = Q ∩ V2 mit s verbunden ist, gilt |V1 | > = MAXFLOW((H, γ)) γ(Q, S) = X γ((u, v )) (u,v )∈E u∈Q,v ∈S I I ≥ |V1 \ Q 0 | + |Γ(Q 0 ) ∩ S| + |Γ(Q 0 ) ∩ Q| = |V1 | − |Q 0 | + |Γ(Q 0 )| . Dies impliziert |Q 0 | > |Γ(Q 0 )| und die zweite Bedingung ist verletzt. Gibt es kein perfektes Matching für einen bipartiten Graphen, so gilt die zweite Bedingung nicht. 318 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Beweis von Satz 18 (Teil 7): V1 ∩ S V1 V2 u1 v1 u2 v2 u3 v3 u4 v4 u5 v5 Q q 0 Q = V1 ∩ Q s Γ(Q 0 ) ∩ S Γ(Q 0 ) ∩ V2 319 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Wie wir schon angemerkt haben, können wir aus Satz 18 keinen effizienten Algorithmus zum Lösen des Matching-Problems für bipartite Graphen herleiten. Unsere Überlegungen aus dem Beweis von Satz 18 zeigt jedoch, dass unser Algorithmus von Folie 211 das Matching-Problem für bipartite Graphen zu finden. Einen zunehmenden Weg in dem von uns konstruierten Graphen können wir in H Zeit O(|E |) finden. Satz 19 Ein optimales Matching für bipartite Graphen können wir in Zeit O(|V | · |E |) finden. Es kann sogar gezeigt werden, dass Matching-Problems für bipartite Graphen in Zeit O(|V |2,5 ) gelöst werden kann. Für das gewichtete Matching-Problem für bipartite Graphen können wir nicht so einfach einsehen, dass dieses Problem auch mit Hilfe des General-MAXFLOW Algorithmus gelöst werden kann. 320 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 10.3 Heiratsproblem mit Kantenkosten Unser Algorithmus basiert auf der Idee der zunehmenden Wegen aus Kapitel 8.1. Wir gehen hierbei wie folgt vor: I Gegeben ist ein ungerichteter bipartiter Graph G = (V1 ∪ V2 , E ) mit |V1 | = |V2 | = n und eine Gewichtsfunktion κ : E → R+ . I Unser Algorithmus konstruiert iterativ Matchings Mi der Größe i = 1, . . . , n. PHierbei soll Mn minimale Kosten haben, d.h. W (Mn ) = e∈Mn κ(e) soll minimal unter allen perfekten Matchings sein. I Wir gehen wie folgt vor: Sei Mi ein Matching mit minimalen Kosten der Größe i und Π ein zunehmender Weg mit minimalen Kosten. Wir verschmelzen nun Mi und Π zu einem Matching Mi+1 der Größe i + 1 mit minimalen Kosten. 321 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck I 15. Vorlesung, 13.2.2008 Wir betrachten jedoch einen Restgraphen, der sich vom Restgraph von Folie 200 unterscheidet. Wir definieren: I Für G bezeichnen wir mit H = (VH , EH ) den gewichteten Graphen, den wir analog zu H im Heiratssatzes konstruiert haben. Wir setzen jedoch für alle e = (u, v ) ∈ EH 0 für u = q oder v = s γ((u, v )) = κ({u, v }) für u ∈ V1 und v ∈ V2 . I Für ein Matching M in G bezeichnen wir mit HM = (VM , EM ) den gewichteten Graphen mit VM := V1 ∪ V2 ∪ {q, s}, S S EM := {(q, u)|u ∈ V1 \ e∈M e} ∪ {(v , s)|v ∈ V2 \ e∈M e} ∪{(u, v ) ∈ V1 × V2 |{u, v } ∈ E \ M} ∪{(v , u) ∈ V2 × V 1|{u, v } ∈ M} und wir setzen für alle e = (u, v ) ∈ EM 8 für u = q oder v = s < 0 κ({u, v }) für u ∈ V1 , v ∈ V2 und {u, v } 6∈ M γ((u, v )) = : −κ({u, v }) für u ∈ V1 , v ∈ V2 und {u, v } ∈ M . 322 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck I 15. Vorlesung, 13.2.2008 Ein gerichteter Pfad von q nach s in HM ist ein alternierender Pfad: V1 V2 u1 v1 u2 v2 q M = {{u1 , v2 }} s um vm M 0 = {{u1 , v1 }, {um , v2 }} I Sei M ein Matching in G und Π ein q-s-Pfad in HM , wir konstruieren ein neues Matching M 0 , indem wir alle Kanten von V1 nach V2 in Π zu M hinzufügen, und alle Kanten von V2 nach V1 in Π aus M löschen. Wir erweitern M über Π. I Für einen q-s-Pfad Π = w0 , . . . , wt definieren wir die Kosten von Π P als W (Π) := i∈{1,...,t−2} γ((wi , wi+1 )). 323 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Aus der Definition von HM und dem erweiterten Matching M 0 bezüglich eines alternierenden Pfades Π folgt: Beobachtung 18 Sei M ein Matching und Π ein alternierender q-s-Pfades in HM . Sei M 0 das über Π erweiterte Matching, dann gilt |M 0 | = |M| + 1 und W (M 0 ) = W (M) + W (Π) . Beobachtung 19 M ist genau dann ein perfektes Matching, wenn es in HM keine Kante mehr gibt, die mit q oder s inzident ist. 324 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Wir nennen einen Kreis C = w1 , . . . , wt (mit w1 = wt ) in HM negativ, wenn X W (C ) := γ((wi , wi+1 )) < 0 i∈{1,...,t−1} ist. Modifizieren wir M über einen Kreis C , analog wie wir eine Matching über einen q-s-Pfad erweitern, so erhalten wir: Beobachtung 20 Sei M ein perfektes Matching und C ein negativer Kreis in HM , dann gilt für das über C modifizierte Matching M 0 : M 0 ist ein perfektes Matching und W (M 0 ) = W (M) + W (C ) < W (M). Somit sind die Kosten für M nicht minimal. Wir können sogar die Umkehrung dieser Beobachtung zeigen. 325 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Lemma 20 Sei M ein perfektes Matching, wobei es in HM keinen negativen Kreis gibt, dann ist M ein minimales Matching. Beweis von Lemma 20: Sei M ein nicht minimales perfektes Matching, wobei es in HM keinen negativen Kreis gibt. Sei M 0 ein perfektes Matching mit minimalen Kosten. I Sei S die Menge der Kanten, die in einer der Mengen M oder M 0 enthalten sind, aber nicht in beiden. I I Die Menge der Kanten in S formen eine Menge von knotendisjunkten Kreisen {C1 , . . . , Ck } in HM . P Es gilt W (M 0 ) = W (M) + i∈{1,...,k} W (Ci ). I Da W (M 0 ) < W (M) ist, gibt es einen Kreis Ci mit W (Ci ) < 0. 326 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Unser Ziel ist es nun die Matchings M1 , . . . , Mn so zu konstruieren, dass I wir Mi über einen minimalen q-s-Pfad erweitern und I hierbei kein negativer Kreis in HMi+1 entsteht. Somit erhalten wir nach Lemma 20 ein perfektes Matching Mn mit minimalen Kosten. 327 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Um die Analyse zu vereinfachen, führen wir für alle Knoten Gewichte δ : V → R+ ein. Wir nenne δ auf ein Matching abgestimmt, wenn I für alle Knoten u ∈ V1 , welche nicht mit einer Kante aus M inzident sind, gilt δ(u) = 0, I für alle {u, v } ∈ E mit u ∈ V1 , v ∈ V2 gilt δ(u) + κ({u, v }) ≥ δ(v ) und I für alle {u, v } ∈ E mit u ∈ V1 , v ∈ V2 mit {u, v } ∈ M gilt δ(u) + κ({u, v }) = δ(v ). Für jede Kante (x, y ) ∈ EM mit x, y ∈ V1 ∪ V2 des Graphen HM definieren wir γδ ((x, y )) := δ(x) + γ((x, y )) − δ(y ) . 328 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Beachte: Die Werte γ((x, y )) für {x, y } ∈ M und (x, y ) ∈ EM sind negativ und zudem ist x ∈ V2 und y ∈ V1 . Aus der Definition von γδ ((x, y )) folgt jedoch, dass für solche Kanten γδ ((x, y )) = 0 ist. Beobachtung 21 Die Werte γδ ((x, y )) sind für alle Kanten (x, y ) in HM zwischen V1 und V2 bzw. V2 und V1 immer größer oder gleich 0. Folgen wir nun einem Kreis C in HM , so gilt folglich: Beobachtung 22 Für alle Kreise C = w1 , . . . , wt mit w1 = wt in HM gilt t−1 X i=1 γδ ((wi , wi+1 )) = t−1 X γ((wi , wi+1 )) ≥ 0 . i=1 Beobachtung 23 Gibt es für ein Matching M eine abgestimmte Gewichtsfunktion δ, dann gibt es in HM keinen negativen Kreis. 329 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Betrachten wir nun das Problem einen q-s-Weg mit minimalen Kosten zu finden: I Für einen Knoten v ∈ V1 ∪ V2 seien dδ,M (v ) die minimalen Kosten eines Wegs von q nach v in HM bei Kostenfunktion γδ . I Sei v ∈ V2 ein Knoten, der nicht mit einer Kante des Matchings M inzident ist, dann sind die minimalen Kosten eines q-v -Wegs in HM bei Kostenfunktion γ durch dδ,M (v ) + δ(v ) gegeben. Es gilt: Lemma 21 Da die Kostenfunktion γδ positiv ist, können wir den kürzesten Weg von q zu jedem Knoten v ∈ V1 ∪ V2 bezüglich der Kostenfunktion γδ mit Hilfe des Algorithmus von Dijkstra in Zeit O(|E | · log2 n) bestimmen. Um einen den kürzesten q-s-Pfad bezüglich der Kostenfunktion γ zu bestimmen benötigen wir zusätzliche Kosten O(n). 330 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Betrachten wir nun die Funktion δ0 (u) := 0 für alle u ∈ V1 und δ0 (v ) := min{u,v }∈E κ({u, v }) für alle v ∈ V2 , dann erkennen wir: Beobachtung 24 δ0 ist eine mit M0 := ∅ abgestimmte Gewichtsfunktion. Wir müssen somit nur noch zeigen, dass wir über unser Verfahren zum Erweitern eines Matchings Mi immer garantieren können, dass eine für Mi+1 abgestimmte Gewichtsfunktion existiert: Lemma 22 M ein Matching und δ eine für M abgestimmte Gewichtsfunktion. Sei ferner M 0 das Matching, welches wir aus M erhalten, indem wir dieses bezüglich eines q-s-Wegs mit minimalen Kosten in HM erweitern, dann ist δ 0 (v ) := δ(v ) + dδ,M (v ) eine für M 0 abgestimmte Gewichtsfunktion. 331 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Beweis von Lemma 22: I {x, y } ∈ M und x ∈ V1 : I I I I Es gilt (y , x) ∈ EM ist die einzige mit der wir x betreten können. Es gilt dδ,M (x) = dδ,M (y ) + γδ ((y , x)) mit γδ ((y , x)) := δ(y ) + γ((y , x)) − δ(x) = 0. Somit erhöhen wir sowohl δ 0 (x) als auch δ 0 (y ) um den Wert dδ,M (y ). Die Werte von δ 0 (x) und δ 0 (y ) erfüllen somit bezüglich der Kante {x, y } die Bedingungen einer für M 0 abgestimmten Gewichtsfunktion. 332 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Beweis von Lemma 22 (Teil 2): I {x, y } ∈ M 0 \ M und x ∈ V1 : I I I Die Kante (x, y ) ∈ EM befindet sich auf dem q-y -Weg mit minimalen Kosten. Es gilt dδ,M (y ) = dδ,M (x) + γδ ((x, y )) mit γδ ((x, y )) := δ(x) + γ((x, y )) − δ(y ). Wir erhalten δ 0 (x) 0 δ (y ) := δ(x) + dδ,M (x) := δ(y ) + dδ,M (y ) = δ(x) + dδ,M (x) + κ({x, y }) . Für den neuen Graphen HM 0 gilt ferner γ((y , x)) := −κ({x, y }) . I Die Werte von δ 0 (x) und δ 0 (y ) erfüllen somit bezüglich der Kante {x, y } die Bedingungen einer für M 0 abgestimmten Gewichtsfunktion. 333 Algorithmik WS 07/08 Andreas Jakoby Universität zu Lübeck 15. Vorlesung, 13.2.2008 Beweis von Lemma 22 (Teil 3): I {x, y } 6∈ M 0 ∪ M und x ∈ V1 : I I I Der Konten y muss auf einem kürzeren Pfad ohne die Kante (x, y ) in HM von q erreichbar sein. Es gilt dδ,M (y ) ≤ dδ,M (x) + γδ ((x, y )) mit γδ ((x, y )) := δ(x) + γ((x, y )) − δ(y ). Wir erhalten δ 0 (x) + γ((x, y )) − δ 0 (y ) = δ(x) + dδ,M (x) + γ((x, y )) − δ(y ) − dδ,M (y ) ≥ 0. I Die Werte von δ 0 (x) und δ 0 (y ) erfüllen somit bezüglich der Kante {x, y } die Bedingungen einer für M 0 abgestimmten Gewichtsfunktion. 334 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 Algorithmus Bipartites-Matching(G , κ) Eingabe: ungerichteter bipartiter Graph G = (V1 ∪ V2 , E ) und Kostenfunktion κ Ergebnis: perfektes Matching M mit minimalen Kosten 1: Sei M = ∅ und initialisiere δ := δ0 . 2: while M ist kein perfektes Matching do 3: Finde eine q-s-Weg Π mit minimalen Kosten in HM 4: bezüglich der Kostenfunktion γδ 5: Erweitere M bezüglich Π. Sei M 0 das neue Matching. 6: Berechne eine für M 0 abgestimmte Gewichtsfunktion δ 0 7: Setze M := M 0 und δ := δ 0 . 8: end while 9: Return(M) Satz 20 Bipartites-Matching findet ein perfektes Matching mit minimalen Kosten für ungerichtete bipartite Graphen G = (V1 ∪ V2 , E ) mit |V1 | = |V2 | = n in Zeit O(|E | · n · log2 n). 335 Andreas Jakoby Universität zu Lübeck Algorithmik WS 07/08 15. Vorlesung, 13.2.2008 10.4 Die Komplexität des Matching-Problems Die folgenden Ergebnisse präsentieren wir wieder ohne Beweis: Satz 21 3DM und X3C sind N P-vollständig. Das Problem für einen Graphen zu entscheiden, ob es für diesen ein perfektes Matching gibt, kann in polynomieller Zeit gelöst werden. Der Beweis der N P-Vollständigkeit von 3DM und somit auch für X3C kann in vielen Lehrbüchern der Komplexitätstheorie nachgelesen werden. Der Beweis, dass ein perfektes Matching in polynomieller Zeit generiert werden kann, ist sehr aufwendig und ist daher nur in wenigen Lehrbüchern zu finden. 336