10 Matching-Probleme - Universität zu Lübeck

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