Kardinalitätsmatchings

Werbung
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
Herunterladen