Graphentheorie Kardinalitätsmatchings Rainer Schrader Zentrum für Angewandte Informatik Köln 11. Dezember 2007 1 / 47 Kardinalitätsmatchings 2 / 47 Kardinalitätsmatchings • wir wenden uns jetzt einem weiteren Optimierungsproblem zu • es ist eng verwandt sind mit dem Netzwerk-Fluss-Problemen Gliederung • sei dazu G = (V , E ) ein Graph und M ⊆ E • Matchings in bipartiten Graphen • Matchings in allgemeinen Graphen • Edmonds’ Matching-Algorithmus • Varianten des Matching-Problems • M heißt Matching von G, falls keine zwei Kanten von M einen gemeinsamen Endknoten haben • Das Chinese-postman-Problem • wir suchen Matchings maximaler Kardinalität • die gewichtete Version, bei denen Gewichte auf den Kanten liegen und Matchings maximalen Gewichts gesucht sind, werden wir nicht betrachten. 3 / 47 4 / 47 Kardinalitätsmatchings Kardinalitätsmatchings Lemma 1 • das Matchingproblem in bipartiten Graphen lässt sich auf ein Jedem Matching M in G entspricht eineindeutig ein ganzzahliger Fluss f in D mit |f | = |M |. Flussproblem zurückführen • sei dazu G = (S ∪ T , E ) ein bipartiter Graph Beweis: • wir ordnen G ein Netzwerk D(W , A) wie folgt zu: • sei M ein Matching in G W = S ∪ T ∪ {s, t } • die Menge der von M überdeckten Knoten sind: A = {(u, v ) : u ∈ S, v ∈ T } ∪ {(s, u) : u ∈ S} ∪ {(v , t ) : v ∈ T } c(a) = 1 für alle Kanten der Form a = (s, u) und a = (v , t ) c(a) = ∞ sonst S0 = {v ∈ S : (v , u) ∈ M für ein u ∈ T }, 0 = {u ∈ T : (v , u) ∈ M für ein v ∈ S} T • definiere f wie folgt: s 8 1, > > < 1, f (u, v ) = > 1, > : 0, t S falls u = s, v ∈ S 0 falls (u, v ) ∈ M falls u ∈ T 0 , v = t sonst T • dann ist f ein Fluss mit |f | = |M | 5 / 47 Kardinalitätsmatchings 6 / 47 Kardinalitätsmatchings • sei umgekehrt f ein ganzzahliger Fluss in D • wie übertragen sich augmentierende Wege von D nach G ? • in jeden Knoten von S fließt höchstens eine Einheit hinein • zur Veranschaulichung betrachte wir das folgende Matching • an jedem Knoten von T fließt höchstens eine Einheit heraus • damit bilden die Knoten zwischen S und T , über die ein positiver Fluss fließt, ein Matching M mit |M | = |f |. • daraus ergibt sich ein augmentierender Weg in Df • der wiederum überträgt sich in einen Weg im ursprünglichen Graphen 7 / 47 8 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • sei G = (V , E ) ein (nicht notwendigerweise bipartiter) Graph, Korollar 2 • sei M ⊆ E ein Matching Ein Matching in einem bipartiten Graphen ist genau dann maximal, wenn es keinen augmentierenden Weg gibt. • sei P ⊆ E ein einfacher Weg in G • P heißt alternierend, falls P abwechselnd Matching- und • wir wollen uns noch überlegen, wie sich der Dualitätssatz überträgt Nichtmatching-Kanten enthält • sei dazu G = (S ∪ T , E ) ein bipartiter Graph • ein Knoten heißt exponiert, falls er mit keiner Matchingkante inzidiert • sei X ⊆ S ∪ T eine Teilmenge von Knoten • P heißt augmentierend (bzgl. M ), falls P alternierend ist und seine • X heißt Knotenüberdeckung von G, falls jede Kante mindestens beiden Endknoten exponiert sind einen Endknoten in X hat • da in einem Matching M keine zwei Kanten inzidieren, gilt stets • für bipartite Graphen entsprechen die augmentierenden Wege in |M | ≤ |X | G genau den augmentierenen Wegen in Df • als unmittelbare Konsequenz ergibt sich: 9 / 47 10 / 47 Kardinalitätsmatchings Kardinalitätsmatchings Korollar 4 (Hall) Satz 3 (König, Egerváry) Ein bipartiter Graph G = (S ∪ T , E ) hat genau dann ein Matching, das S überdeckt, wenn |X | ≤ |N (X )| für alle X ⊆ S. In einem bipartiten Graphen G = (S ∪ T , E ) ist die maximale Kardinalität eines Matchings gleich der minimalen Kardinalität einer Knotenüberdeckung. Beweis: Beweis: • die Bedingung ist offensichtlich notwendig • jedem Matching in G entspricht eine Menge knotendisjunkter • zum Beweis der Umkehrung nehmen wir an, dass G kein Matching (s, t )-Wege in D hat, das ganz S überdeckt • jede Knotenüberdeckung entspricht einer Menge von Knoten, die • nach Satz 3 hat G eine Knotenüberdeckung X ∪ Y mit s und t trennen X ⊆ S, Y ⊆ T und |X ∪ Y | < |S| • damit folgt die Behauptung aus dem Satz von Menger. • dann gilt N (S r X ) ⊆ Y • und somit |N (S r X )| ≤ |Y | < |S| − |X | = |S r X | • d.h. die Hall-Bedingung ist verletzt. 11 / 47 12 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • als eine weitere Folgerung ergibt sich: • ein Matching heißt perfekt, wenn jeder Knoten des Graphen Endknoten einer Matchingkante ist Gliederung • Matchings in bipartiten Graphen • Matchings in allgemeinen Graphen • Edmonds’ Matching-Algorithmus • Varianten des Matching-Problems Korollar 5 (Frobenius) Ein bipartiter Graph G = (S ∪ T , E ) hat genau dann ein perfektes Matching, wenn |S| = |T | und |X | ≤ |N (X )| für alle X ⊆ S. Beweis: • Das Chinese-postman-Problem • nach dem Satz von Hall kann S überdeckt werden • wegen |S| = |T | ist das überdeckende Matching perfekt • existiert umgekehrt ein perfektes Matching, so folgt |S| = |T | • und es wird S überdeckt • woraus wiederum nach dem Satz von Hall der zweite Teil folgt. 13 / 47 Kardinalitätsmatchings 14 / 47 Kardinalitätsmatchings • für jeden Knoten v ∈ V gilt einer der folgenden Fälle: Das Korollar 2 lässt sich auf allgemeine Graphen übertragen. Satz 6 a) v ist exponiert bzgl. M und M 0 bzw. v inzidiert mit einer Kante aus M ∩ M 0 Ein Matching M ist genau dann maximal, wenn kein augmentierender Weg bzgl. M existiert. b) v inzidiert mit einer Kante aus M r M 0 bzw. einer Kante aus M0 r M c) v inzidiert mit je einer Kante aus M r M 0 und M 0 r M Beweis: • sei F = M M M 0 = (M r M 0 ) ∪ (M 0 r M ) die symmetrische Differenz • die Bedingung ist sicherlich notwendig • der Graph (V , F ) besteht damit aus • sei umgekehrt M ein nicht-maximales Matching und M 0 ein Matching mit |M 0 | = |M | + 1 • isolierten Knoten • Kreisen gerader Länge • isolierten Kanten oder Wegen, die zwischen M und M 0 alternieren 15 / 47 16 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • eine naheliegende Idee, augmentierende Wege zu finden, ist ein • |F | ist ungerade, da modifiziertes Suchverfahren: |F | = |M | + |M 0 | − 2|M ∩ M 0 | = 2|M | + 1 − 2|M ∩ M 0 | • starte in einem exponierten Knoten • suche auf alternierenden Wegen • da |F | ungerade ist, muss ein alternierender Weg ungerader Länge • bis ein weiterer exponierter Knoten erreicht wird existieren • da |M 0 | > |M |, muss dies auch ein augmentierender Weg bzgl. • für bipartite Graphen funktioniert dieses Vorgehen M sein. • bei nicht-bipartiten Graphen können ungerade Kreise Probleme bereiten 17 / 47 18 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • sei P = (u0 , . . . , uk ) ein alternierender Pfad beginnend in einem • im folgenden Graphen kommt es darauf an, in welcher Orientierung wir exponierten Knoten u0 das Dreieck umlaufen: u e 0 u uk 1 u 2 u i u i+1 c • die Knoten mit geradem Index heißen gerade, die anderen ungerade a b • sind ui , uk gerade und ist (ui , uk ) ∈ E , so heißt d f • a, b, c, d liefert keinen augmentierenden Weg, • der ungerade Kreis ui , ui +1 , . . . , uk Blüte, • ui seine Basis, • a, b, c, e, d , f jedoch tut es • und (u0 , . . . , ui −1 ) Stamm • wir schrumpfen die Blüte B zu einem neuen Knoten b und entfernen • wenn wir in c ankommen, wissen wir aber noch nicht, wo wir den Kreis Mehrfachkanten wieder verlassen werden. • sei G 0 der so entstandene Graph und M 0 das induzierte Matching 19 / 47 20 / 47 Kardinalitätsmatchings Kardinalitätsmatchings Satz 7 (i) dann gilt: G 0 enthält einen augmentierenden Pfad genau dann, wenn G einen augmentierenden Pfad enthält. • der Stamm von B ist leer • B enthält einen alternierenden Pfad P : Beweis: • P beginnt in der Basis von B • sei P 0 ein augmentierender Pfad in G 0 • P endet in der Matchingkante, die mit dem Knoten inzidiert, über den die erste Kante von P 0 läuft 0 • ist b ∈ / P , so ist nichts zu zeigen • andernfalls ist (i) b entweder exponiert oder (ii) P 0 enthält auch die zu b inzidente Matchingkante des Stamms von B in G B b • dann ist P ∪ P 0 alternierend in G. 21 / 47 22 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • seien N 0 und N die Matchings , die entstehen, wenn wir auf dem (ii) dann hat B einen nicht-leeren Stamm, der zusammen mit einem Teil des Kreises einen augmentierenden Pfad ergibt: Stamm von B die Rolle der Matching- und der Nicht-Matching-Kanten vertauschen B M P P B M' B N P N' P • da der Stamm eine gerade Anzahl von Knoten hat, gilt |N | = |M | und |N 0 | = |M 0 | und N 0 ist ebenfalls optimal in G 0 • sei umgekehrt M 0 optimal in G 0 • in N ist nun der Knoten u0 gematcht und ui exponiert • angenommen M ist nicht optimal in G • entsprechend ist b in N 0 nicht gematcht 23 / 47 24 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • es ist wichtig, dass die Basis der Blüte einen geraden Index hat: B N N' • da N nicht optimal ist, existiert in G ein augmentierender Pfad P , der • der Graph enthält einen augmentierenden Weg, zwei exponierte Knoten x , y verbindet • der jedoch mit dem Schrumpfen des Dreiecks verschwindet. • P muss Knoten von B benutzen, da er sonst auch ein augmentierender Pfad in G wäre ( 0 0 zur Maximalität von N ) • weiter muss mindestens ein Knoten x außerhalb von B liegen • sei P 0 der Teilpfad von P , der x mit dem ersten Knoten in B verbindet • dann ist P 0 ein augmentierender Pfad in G 0 , im Widerspruch zur Annahme. 25 / 47 26 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • der letzte Satz ist die Basis für Edmonds’ Matching-Algorithmus • er schrumpft gefundene Blüten, Gliederung • Matchings in bipartiten Graphen • Matchings in allgemeinen Graphen • Edmonds’ Matching-Algorithmus • Varianten des Matching-Problems • berechnet rekursiv im reduzierten Graphen ein Matching • Das Chinese-postman-Problem • zu einem bereits konstruierten Matching M baut es einen speziellen • und bläst danach Blüten und Matchings wieder auf • das Verfahren startet mit dem leeren Matching M Wald als Teilgraph von G auf • ein Knoten in einem Baum heißt • gerade, wenn sein Abstand zur Wurzel gerade ist • ungerade sonst • insbesondere ist die Wurzel ein gerader Knoten 27 / 47 28 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • ein alternierender Wald F erfüllt die folgende Bedingungen: • zu Beginn besteht der Wald nur aus den exponierten Knoten • sei u ∈ V (F ) eine gerader Knoten • jeder exponierte Knoten liegt in V (F ) • jede Zusammenhangskomponente enthält genau einen exponierten Knoten, der die Wurzel eines Baums bildet • alle ungeraden Knoten haben Grad zwei in F • sei v ∈ NG (u) r NF (u) ein Nachbar in G, der nicht auch schon Nachbar in F ist • dann ist die Kante (u, v ) keine Matchingkante • für jeden Knoten v ∈ V (F ) ist der Weg P (v ) zurück zu seiner Wurzel ein alternierender Weg • wir unterscheiden drei Fälle: 29 / 47 Kardinalitätsmatchings 30 / 47 Kardinalitätsmatchings (i) v ∈ / V (F ): (ii) v ∈ V (F ) gerade und in einem anderen Baum als u: • dann ist insbesondere v nicht exponiert u v u v u v • füge die Kante (u, v ) sowie die zu v inzidente Matchingkante zu • dann bildet P (u), (u, v ), P (v ) einen augmentierenden Weg F hinzu 31 / 47 32 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • wenn keiner dieser Fälle eintritt, hat jeder gerade Knoten in V (F ) nur (iii) v ∈ V (F ) gerade und im selben Baum wie u: ungerade Knoten als Nachbarn • in diesem Fall bleibt zu zeigen, dass das Matching maximale Kardinalität hat u • wir argumentieren wieder über eine Dualitätsaussage v • dazu sei X ⊆ V eine Teilmenge von Knoten • sei oG (X ) die Anzahl der Zusammenhangskomponenten von G r X , die eine ungerade Anzahl von Knoten haben • sei x der erste Knoten in P (u) ∩ P (v ) von u aus gesehen • dann ist x entweder die Wurzel oder hat Grad mindestens drei Lemma 8 • damit ist x ebenfalls ein gerade Knoten Sei M ein Matching in G = (V , E ) und X ⊆ V . Dann gilt für die Anzahl der exponierten Knoten |V | − 2|M | ≥ (oG (X ) − |X |). • dann bilden die Anfangsstücke von P (u) und P (v ) bis x zusammen mit (u, v ) eine Blüte • schrumpfe die Blüte und iteriere 33 / 47 34 / 47 Kardinalitätsmatchings Kardinalitätsmatchings |V | − 2|M | ≥ (oG (X ) − |X |). Satz 9 Beweis: Das Verfahren von Edmonds berechnet maximale Matchings. • betrachte eine ungerade Komponente K Beweis: K1 • sei M das Matching, mit dem der obige Algorithmus abbricht, und K F der zugehörige alternierende Wald 2 • dann gilt offensichtlich: X • die Anzahl exponierten Knoten ist gleich der Anzahl der Bäume, K • die Anzahl der Bäume ist gleich der Differenz aus den Anzahlen der geraden und der ungeraden Knoten, 3 • M lässt in K mindestens einen Knoten exponiert • ist X die Menge der ungeraden Knoten, so besteht G r X aus den geraden Knoten, die alle isoliert sind • M kann höchstens |X | dieser Knoten mit Knoten in X verbinden • damit ist für jedes X ⊆ V und jedes M die Anzahl der exponierten Knoten mindestens oG (X ) − |X |. 35 / 47 36 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • die Anzahl exponierten Knoten ist gleich der Anzahl der Bäume, Wir haben damit gleichzeitig den starken Dualitätssatz bewiesen. • die Anzahl der Bäume ist gleich der Differenz aus den Anzahlen der geraden und der ungeraden Knoten, Korollar 10 (Tutte-Berge) • ist X die Menge der ungeraden Knoten, so besteht G r X aus den Sei G = (V , E ) ein ungerichteter Graph. Dann gilt: geraden Knoten, die alle isoliert sind 2 max{|M | : M Matching in G} = min{|V | − (oG (X ) − |X |) : X ⊆ V }. • somit: |V | − 2|M | = #Anzahl der Bäume Insbesondere folgt für die Existenz eines perfekten Matchings: = #Anzahl gerader Knoten − #Anzahl ungerader Knoten = oG (X ) − |X | Korollar 11 (Tutte) • damit hat M genau o(X ) − |X | exponierte Knoten und ist wegen der Ein Graph G = (V , E ) hat ein perfektes Matching genau dann, wenn oG (X ) ≤ |X | für alle Teilmengen X ⊆ V . schwachen Dualität aus Lemma 8 maximal. 37 / 47 Kardinalitätsmatchings 38 / 47 Kardinalitätsmatchings • auch gewichtete Versionen des Matching-Problems lassen sich formulieren und effizient lösen Gliederung • die folgenden Varianten des Matching-Problems werden unterschieden: • Matchings in bipartiten Graphen • Matchings in allgemeinen Graphen • Edmonds’ Matching-Algorithmus • Varianten des Matching-Problems allgemeines Kardinalitätsmatching • gegeben einen Graphen G • finde ein Matching mit maximaler Kantenanzahl • Das Chinese-postman-Problem gewichtetes Matchingproblem • gegeben einen Graphen G mit Kantengewichten • finde ein Matching maximalen Gewichts 39 / 47 40 / 47 Kardinalitätsmatchings Kardinalitätsmatchings perfektes Matchingproblem, Zuordnungsproblem Transportproblem • gegeben einen Graphen G mit Kantengewichten • gegeben m Anbieter eines Guts mit Angebotsmengen a1 , . . . , am • finde ein perfektes Matching minimalen oder maximalen Gewichts • n Nachfrager dieses Guts mit Nachfragemengen b1 , . . . , bn • bzw. entscheide, dass es kein perfektes Matching gibt • dabei soll gelten: Pm i =1 ai = Pn j =1 bj , • weiter seien cij Transportkosten b-Matching-Problem • wähle Transportmengen xij so, dass gilt: • gegeben einen Graphen G mit Kantengewichten Pn x Pjm=1 ij x i =1 ij • und für jeden Knoten eine Größe b(v ) ∈ N • bestimme eine Teilmenge von Kanten maximalen Gewichts, • und P = = ai bj ci ,j xij minimal ist • so dass in jedem Knoten höchstens b(v ) dieser Kanten inzidieren. 41 / 47 Kardinalitätsmatchings 42 / 47 Kardinalitätsmatchings • wir haben jetzt alle Zutaten beisammen, um das Gliederung Chinese-Postman-Problem zu lösen • Matchings in bipartiten Graphen • Matchings in allgemeinen Graphen • Edmonds’ Matching-Algorithmus • Varianten des Matching-Problems • sei G = (V , E ) ein Graph bestehend aus den Straßenzügen, die der Briefträger ablaufen muss • die Kanten seien mit den jeweiligen Längen bewertet • Das Chinese-postman-Problem • gesucht ist ein Weg, der mindestens einmal jede Straße entlang führt, zum Ausgangspunkt zurückkehrt und kürzeste Länge hat. 43 / 47 44 / 47 Kardinalitätsmatchings Kardinalitätsmatchings • ist G eulersch, so ist jede Eulertour optimal • daher entsteht G ∗ aus G, indem Pfade hinzugefügt werden, die zwei • andernfalls dupliziere Kanten von G so, dass ungerade Knoten verbinden • ein Graph G ∗ ⊇ G entsteht, der eulersch ist • um die kürzeste chinese-postman-Tour zu bestimmen, müssen wir also • und das Gesamtgewicht der Kanten, die dupliziert werden, minimal ist die 2k ungeraden Knoten so zu Paaren Pk (x1 , y1 ), . . . , (xk , yk ) zusammenfassen, dass i =1 dist(xi , yi ) minimal ist. • dabei muss für jeden Knoten v ∈ V gelten: • hat v ungeraden Grad, so wird eine ungerade Anzahl von Kanten, die mit v inzidieren, hinzugefügt • hat v geraden Grad, so wird eine gerade Anzahl neuer Kanten hinzugefügt. 45 / 47 Kardinalitätsmatchings Dies führt zu folgendem Verfahren: (1) ist G eulersch, setze G ∗ = G und gehe zu (7) (2) andernfalls sei U ⊆ V die Menge der Knoten mit ungeradem Grad (3) zwischen je zwei Knoten u, v ∈ U sei P (u, v ) ein kürzester Weg in G der Länge dist(u, v ) (4) konstruiere einen vollständigen Graphen G 0 auf |U | Knoten mit Kantenbewertung dist(u, v ) (5) berechne ein minimales perfektes Matching M in G 0 (6) für jede Kante (u, v ) ∈ M , konstruiere G ∗ aus G, indem die Kanten von P (u, v ) hinzugefügt werden (7) jede Eulertour von G ∗ ist Lösung des chinese-postman-Problems. 47 / 47 46 / 47