Kapitel 1: Fallstudie Bipartite Graphen Gliederung der - fbi.h

Werbung
Kapitel 1: Fallstudie Bipartite Graphen
Gliederung der Vorlesung
1.
2.
3.
4.
5.
6.
7.
8.
1/2, Folie 1
Fallstudie Bipartite Graphen
Grundbegriffe
Elementare Graphalgorithmen und Anwendungen
Minimal spannende Bäume
Kürzeste Wege
Traveling Salesman Problem
Flüsse in Netzwerken und Anwendungen
Netzplantechnik
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Gliederung des Kapitels
a)
b)
c)
d)
1/2, Folie 2
Motivation
Grundbegriffe
Matchings in bipartiten Graphen
Anwendungen
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Begriff: Bipartiter Graph
•
es sei G = (V,E) ein ungerichteter Graph
•
G ist ein bipartiter Graph, falls es zwei Mengen X, Y ⊆ V mit folgenden
Eigenschaften gibt:
•
•
•
X∩Y=∅
X∪Y=V
jede Kante e ∈ E hat genau eine Ecke in X und eine Ecke in Y
X
1/2, Folie 3
© 2011 Prof. Steffen Lange
-
Y
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Anmerkungen
•
•
•
wir werden bipartite Graphen verwenden, um bestimmte Probleme zu
modellieren (/* Zuordnungsprobleme ... */)
in diesen Fällen ergibt sich die Zerlegung der Knotenmenge V in die
beiden disjunkten Teilmengen X und Y direkt bei der Modellierung
in anderen Fällen wird man für einen gegebenen Graphen G erst einmal
überprüfen müssen, ob er ein bipartiter Graph ist
... dann kann man „spezielle“ Algorithmen (/* etwa zum Bestimmen
von Matchings */) anwenden, die die „Besonderheiten“ von bipartiten
Graphen ausnutzen
1/2, Folie 4
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Gegenbeispiel
1
2
3
kein bipartiter Graph
5
4
6
 Beispiel
1
2
3
ein bipartiter Graph; wähle
X = { 1,3,5 } und Y = { 2,4,5 }
4
1/2, Folie 5
5
© 2011 Prof. Steffen Lange
6
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Ein grundlegender Zusammenhang
•
es sei G = (V,E) ein ungerichteter Graph
Dann sind die folgenden Aussagen äquivalent:
1)
2)
1/2, Folie 6
G ist ein bipartiter Graph.
G enthält keine Zyklen ungerader Länge.
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beweisidee (/* 1) impliziert 2) */)
•
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
•
Annahme: es sei (v0,v1,...,v2k-1) irgendein Zyklus ungerader Länge in G
(/* also gilt v0 = v2k-1 */)
•
o.B.d.A. sei vo ∈ X
•
•
da G bipartit ist, muss v1 ∈ Y gelten
da G bipartit ist, muss v2 ∈ X gelten
... diese Argumentation lässt sich offenbar fortsetzen
... also muss v2k-1 ∈ Y gelten
... wegen X ∩ Y = ∅, kann damit nicht v0 = v2k-1 gelten
1/2, Folie 7
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beweisidee (/* 2) impliziert 1) */)
•
es sei G = (V,E) ein ungerichteter Graph der keine Zyklen ungerader
Länge enthält
•
•
es seien V1,...,Vk die Zusammenhangskomponenten von G
offenbar genügt es zu zeigen, dass jede Zusammenhangskomponente Vi
einen Teilgraphen von G definiert, der bipartit ist
1
4
2
3
5
6
1
2
4
der Teilgraph für V1 = { 1,2,4 }
1/2, Folie 8
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beweisidee (/* 2) impliziert 1) */)
•
o.B.d.A. sei G = (V,E) ein ungerichteter, zusammenhängender Graph der
keine Zyklen ungerader Länge enthält
•
es genügt, V in zwei Teilmenge X und Y mit den üblichen Eigenschaften
zu zerlegen
•
hierzu wählen wir irgendeinen Knoten x aus V und setzen
•
•
X = { y ∈ V | d(x,y) ist gerade }
Y = { y ∈ V | d(x,y) ist ungerade }
... d(x,y) = k, falls es i) einen Pfad der Länge k von x nach y gibt
und ii) keinen Pfad von x nach y mit einer Länge < k gibt
1/2, Folie 9
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beweisidee (/* 2) impliziert 1) */)
•
offenbar sind X und Y Teilmengen von V, für die X ∩ Y = ∅ und
X ∪ Y = V gilt
•
Annahme: es gibt eine Kante e = { a,b } mit o.B.d.A. a ∈ X und b ∈ X
•
•
es sei Pa = (v0,...,vk) ein kürzester Pfad von x nach a
es sei Pb = (v‘0,...,v‘r) ein kürzester Pfad von x nach b
... da G zusammenhängend ist, muss es Pa und Pb geben
... Pa und Pb haben beide eine gerade Länge
... Pa und Pb enthalten jeden Knoten nur einmal
•
wir betrachten den Pfad P = (v0,...,vk,v‘r,....,v‘0) von x nach x, der offenbar
ungerade Länge hat
... es bleibt zu zeigen, daß P einen Zyklus ungerader Länge enthält
1/2, Folie 10
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beweisidee (/* 2) impliziert 1) */)
•
Fall 1: Pa und Pb enthalten nur den Knoten x gemeinsam
... dann ist P offenbar ein Zyklus ungerade Länge
•
Fall 2: Pa und Pb enthalten mehr als den Knoten x gemeinsam
•
•
es sei y ein solcher Knoten und zwar einer mit maximalem
Abstand von x (/* es seien vi = y und v‘j = y */)
wir betrachten den Pfad P‘ = (vi,...,vk,v‘r,...,v‘j) von
... es ist zu zeigen, dass P‘ ein Zyklus ungerader Länge ist
... ungerade Länge (/* da k = r und i = j gilt */)
... enthält jeden Knoten außer y genau einmal (/* alle anderen
Knoten in P‘ haben einen größeren Abstand von x als y */)
1/2, Folie 11
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beweisidee (/* 2) impliziert 1) */)
x
vi
a
b
•
•
•
v‘j
x
offenbar gilt d(x,a) ≤ d(x,b) + 1 und d(x,b) ≤ d(x,a) + 1
offenbar sind d(x,a) und d(x,b) gerade Zahlen
also muss d(x,a) = d(x,b) gelten
... da Pa und Pb kürzeste Pfade von x nach a bzw. x nach b sind:
•
•
•
1/2, Folie 12
sind Pa und Pb gleich lang (/* also gilt k = r */)
müssen auch alle Teilpfade von a bzw. b zu einem Knoten in Pa
und Pb kürzeste Pfade sein (/* ... also gilt i = j */)
müssen alle anderen Knoten in P‘ einen größeren Abstand von
x als y haben
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Abgeleitete algorithmische Fragestellung
•
gegeben:
•
•
gesucht:
•
1/2, Folie 13
ein ungerichteter Graph G = (V,E)
© 2011 Prof. Steffen Lange
Antwort auf die Frage, ob G ein bipartiter Graph ist
(/* falls ja, soll gleichzeitig eine passende Zerlegung
von V bestimmt werden */)
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Algorithmische Idee
•
•
in jeder Zusammenhangskomponente V wird ein Knoten j ausgewählt
und mit 0 markiert
werden alle von j erreichbaren Knoten mit 1 markiert, wenn sie einen
ungeraden Abstand von j haben, und mit 0 markiert, wenn sie einen
geraden Abstand von j haben
 Zugrunde liegende Datenstrukturen
•
•
•
1/2, Folie 14
die zu G gehörende Adjazenzliste A[1..n]
ein Array B[1..n] (/* in dem sich die Zugehörigkeit zu X bzw. Y „gemerkt“
wird */)
eine Liste L (/* zur Steuerung der Verarbeitung */)
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Realisierung
•
•
setze B[j] = 2 für alle j = 1,...,n
for j = 1,...,n do
if B[j] == 2 then
B[j] = 0, L = { j }
while L nicht leer ist do
entferne das erste Element s aus L
for all v ∈ A[s] do
if B[v] = 2 then
setze B[v] = 1 - B[s] und füge v ans Ende von L ein
else if B[v] = B[s] then
stoppe mit Fehlermeldung „G ist nicht bipartit“
... bestimmte Zerlegung von V in X und Y mit X = { i | B[i] = 0 }
und Y = { i | B[i] = 1 }
1/2, Folie 15
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Anmerkung
•
die Korrektheit des Algorithmus ist leicht nachzuweisen (/* man braucht
ähnliche Argumente wie beim Beweis, dass bipartite Graphen keine
Zyklen ungerader Länge haben */)
•
die Rechenzeit kann völlig anlog wie beim Algorithmus zur Bestimmung
der Zusammenhangskomponenten eines ungerichteten Graphen
analysiert werden
... insgesamt werden maximal c*(n + m) viele Rechenschritte benötigt,
um die Frage zu beantworten, ob G ein bipartiter Graph ist
1/2, Folie 16
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Satz von König
•
•
•
es sei G = (V,E) ein bipartiter Graph
es sei M* ein maximales Matching von G
es sei S* eine minimale Eckenüberdeckung von G
Dann gilt: |M*| = |S*|.
... da G ein ungerichteter Graph ist, wissen wir, dass |M*| ≤ |S*| gilt
... wie man den verbleibenden Teil zeigt (/* dass |M*| ≥ |S*| gilt */),
schauen wir uns später an
1/2, Folie 17
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Zentrale algorithmische Fragestellung
•
gegeben:
•
•
gesucht:
•
1/2, Folie 18
ein bipartiter Graph G = (V,E) und die zugehörige
Zerlegung von V in zwei Teilmengen X und Y
© 2011 Prof. Steffen Lange
ein maximales Matching M von G
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Vorbereitung (/* prinzipielle algorithmische Idee */)
1)
2)
starte mit einem Matching M
überprüfe, ob sich anhand vom Matching M ein Matching M‘ mit |M‘| > |M|
bestimmen lässt
•
falls nein, stoppe
•
falls ja, setze M = M‘ und mache mit 2) weiter
... offenbar muss geklärt werden, wie man anhand von M ein „größeres“
Matching M‘ bestimmen kann (/* bzw. wie man feststellt, dass ein
„größeres“ Matching nicht existiert */)
... wenn diese Herangehensweise funktioniert, muss sicher gestellt
sein, dass die „Wahl“ von M keine entscheidende Rolle spielt (/* wenn
man stoppt, muss M ein maximales Matching sein */)
1/2, Folie 19
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
X
1
2
3
4
5
6
7
8
Y
... offenbar hat dieser Graph ein Matching der Größe 4 (/* dieses
Matching ist offenbar auch maximal */)
1/2, Folie 20
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Ein anderes Beispiel
X
1
2
3
4
5
6
7
8
•
X
Y
... ein Matching der Größe 3
wir betrachten den Pfad (3,6,7,8)
1
2
3
4
5
7
1
2
3
4
6
5
6
8
7
8
X
Y
... ein Matching der Größe 4
1/2, Folie 21
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Y
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Noch ein anderes Beispiel
X
1
2
3
4
5
6
7
8
•
X
Y
... ein Matching der Größe 3
wir betrachten den Pfad (3,6,7,4,1,2,5,8)
1
2
3
4
5
7
1
2
3
4
6
5
6
8
7
8
X
Y
... ein Matching der Größe 4
1/2, Folie 22
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Y
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Zentraler Begriff: Alternierender Pfad
•
•
•
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
es sei M ⊆ E ein Matching von G
ein Pfad P = (v0,...,vk) heißt alternierender Pfad in G bzgl. M, falls
folgende Bedingungen erfüllt sind:
•
•
P ist ein Pfad in G, der keinen Knoten doppelt enthält
für alle i = 0,...,k-2 gilt entweder a) oder b):
a)
b)
1/2, Folie 23
{ vi,vi+1 } ∈ M und { vi+1,vi+2 } ∉ M
{ vi,vi+1 } ∉ M und { vi+1,vi+2 } ∈ M
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Zentraler Begriff: Erweiterbarer Pfad
•
•
•
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
es sei M ⊆ E ein Matching von G
ein Pfad P = (v0,...,vk) heißt erweiterbarer Pfad in G bzgl. M, falls
folgende Bedingungen erfüllt sind:
•
•
•
1/2, Folie 24
P ist ein alternierender Pfad in G bzgl. M
es gibt keine Kante e ∈ M mit der Ecke v0
es gibt keine Kante e ∈ M mit der Ecke vk
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Konsequenzen
•
•
•
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
es sei M ⊆ E ein Matching von G
es sei P = (v0,...,vk) ein erweiterbarer Pfad in G bzgl. M
Dann gilt:
•
•
1/2, Folie 25
P hat eine gerade Länge.
P hat mehr Kanten, die nicht zu M gehören, als Kanten, die
zu M gehören. (/* ... genau eine mehr */)
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Begriffsbildung: Erweiterte Kantenmenge
•
•
•
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
es sei M ⊆ E ein Matching von G
es sei P = (v0,...,vk) ein erweiterbarer Pfad in G bzgl. M
•
Die bzgl. M und P erweiterte Kantenmenge M‘ ist wie folgt definiert:
•
•
1/2, Folie 26
M‘ enthält alle Kanten aus M, die nicht in P benutzt werden.
M‘ enthält zusätzlich genau die Kanten, die in P benutzt werden
und nicht zu M gehören.
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
X
1
2
3
4
5
6
7
8
•
Y
M = { {1,4}, {5,2}, {7,6} }
wir betrachten den erweiterbaren Pfad P = (3,6,7,8) (/* P benutzt
die Kanten {3,6}, {6,7} und {7,8} */)
... die bzgl. M und P erweiterte Kantenmenge M‘ enthält:
•
•
1/2, Folie 27
die Kanten { 1,4 } und { 5,2 } (/* da sie zu M gehören und nicht
in P benutzt werden */)
die Kanten { 3,6 } und { 7,8 } (/* da sie in P benutzt werden und
nicht zu M gehören */)
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Ein anderes Beispiel
X
1
2
3
4
5
6
7
8
•
Y
M = { {1,4}, {5,2}, {7,6} }
wir betrachten den erweiterbaren Pfad P = (3,6,7,4,1,2,5,8)
(/* P benutzt die Kanten {3,6}, {6,7}, {7,4}, {4,1}, {1,2}, {2,5} und {5,8} */)
... die bzgl. M und P erweiterte Kantenmenge M‘ enthält:
•
1/2, Folie 28
die Kanten { 3,6 }, {7,4}, {1,2 } und { 5,8 } (/* da sie in P
benutzt werden und nicht zu M gehören */)
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Konsequenzen
•
•
•
•
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
es sei M ⊆ E ein Matching von G
es sei P = (v0,...,vk) ein erweiterbarer Pfad in G bzgl. M
es sei M‘ die bzgl. M und P erweiterte Kantenmenge
Dann gilt:
•
•
|M‘| = |M| + 1
M‘ ist ein Matching
... dass |M‘| = |M| + 1 gilt, sollte klar sein
1/2, Folie 29
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Begründung (/* verbleibender Teil */)
•
•
es enthalte M‘1 alle Kanten von M‘, die auch zu M gehören
es enthalte M‘2, alle Kanten von M‘, die nicht zu M gehören
•
offenbar haben alle Kanten in M‘1 und in M‘2 keine gemeinsamen Ecken
(/* da M ein Matching von G ist und P ein alternierender Pfad ist */)
•
es seien e1 eine Kante in M‘1 und e2 eine Kante in M‘2
•
Annahme: e1 und e2 haben eine gemeinsame Ecke u (/* die dann als
Knoten im erweiterbaren Pfad P = (v0,...,vk) vorkommen muss */)
•
es gilt u ≠ v0 und u ≠ vk (/* Begründung: P ist ein erweiterbarer Pfad */)
•
es gilt u ≠ vi für alle i = 1,...,k-1 (/* Begründung: vi ist auf jeden Fall
Ecke einer Kante aus M, die nicht zu M‘1 gehört; wäre vi auch Ecke
einer Kante in M‘1, so wäre vi Ecke zweier Kanten in M */)
... Widerspuch zur Annahme !!!
1/2, Folie 30
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Algorithmische Idee
1)
2)
3)
wähle ein Matching M von G (/* der Einfachheit halber das leere */)
bestimme alle Knoten, die nicht Ecke einer Kante in M sind
überprüfe, ob einer der in 2) bestimmten Knoten Startknoten eines
erweiternden Pfades P in G bzgl. M ist
•
falls nein, stoppe und gib M aus
•
falls ja, bestimme die erweiterte Kantenmenge M‘ bzgl. M und P,
setze M‘ = M und gehe zu 2)
Aspekt 1: diese Art der Beschreibung erlaubt keine Rückschlüsse auf die
Laufzeit des Algorithmus (/* hier fehlen offenbar Details */)
Aspekt 2: es ist zwar klar, dass man so ein Matching findet; fraglich ist, ob
das gefundene Matching maximal ist
1/2, Folie 31
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Diskussion zu Aspekt 2 (/* Korrektheit */)
•
hier kann man auf unterschiedliche Art weiter machen
•
Variante a) (/* direkt */)
•
•
Variante b) (/* implizit */)
•
•
1/2, Folie 32
man zeigt, dass - egal wie M gewählt wurde - es kein Matching M‘
mit |M‘| > |M| gibt, falls es keinen erweiternden Pfad bzgl. M gibt
man benutzt das vom Algorithmus gefundene Matching M und
definiert eine zu M passende Knotenüberdeckung S
falls |S| = |M| gilt, so weiß man, dass dann M ein maximales
Matching sein muss (/* falls es ein größeres Matching M‘ gibt,
würde |M‘| > |S| gelten ... */)
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Ein grundlegendes Ergebnis
•
•
•
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
es sei M ⊆ E ein Matching von G
es sei M‘⊆ E ein anderes Matching von G
Dann gilt:
Wenn |M| < |M‘| gilt, so gibt es einen erweiterbaren Pfad in G bzgl. M.
... in der Literatur nennt man diesen Zusammenhang auch
„Theorem von der Existenz erweiterbarer Pfade“
1/2, Folie 33
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
M mit Größe 4
1/2, Folie 34
© 2011 Prof. Steffen Lange
-
M‘ mit Größe 5
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Begründung
•
•
es sei M* die Kantenmenge, die alle Kanten aus M und M‘ enthält, die
nicht gleichzeitig in M und M‘ sind
es sei G* = (V,M*)
•
es sei j irgendein Knoten in V
•
•
•
die Zusammenhangskomponenten V‘ des Graphen G* = (V,M*) haben
entweder die Eigenschaft a) oder b)
a)
b)
1/2, Folie 35
dann gibt es höchstens zwei Kanten in M*, die j als Ecke haben
(/* weil M und M‘ Matchings in G sind */)
wenn es zwei Kanten in M* gibt, die j als Ecke haben, so gehört
eine zu M und eine zu M‘
die Knoten von V‘ bilden einen Zyklus
die Knoten in V‘ bilden einen alternierenden Pfad bzgl. M
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 ... zurück zum Beispiel
G* = (V,M*)
1/2, Folie 36
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
Zusammenhangskomponenten von G*
1/2, Folie 37
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 ... zurück zur Begründung
•
es sei V‘ einen Zusammenhangskomponente
•
•
•
1/2, Folie 38
wenn die Knoten in V‘ einen Zyklus bilden, kommen in diesem
Zyklus genauso viele Kanten aus M und M‘ vor
wenn die Knoten in V‘ einen alternierenden Pfad bilden, so benutzt
der Pfad entweder i) genauso viele Kanten aus M und M‘ oder
ii) unterscheidet sich die Anzahl der benutzten Kanten aus M und
M‘ um eins
da |M‘| > |M| gilt und Zusammenhangskomponenten von G*, die
Kantenmenge M* in paarweise disjunkte Mengen zerlegen, muss es ein V‘
geben, dessen Knoten einen erweiterbaren Pfad bilden (/* der Pfad gehört
zum Typ ii), wobei mehr Kanten aus M‘ als aus M benutzt werden */)
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Anmerkungen
•
•
bei der Definition der Begriffe alternierender Pfad, erweiterbarer Pfad
haben wir gar nicht benutzt, dass der gegebene ungerichtete Graph ein
bipartiter Graph ist
beim Nachweis des „Theorems von der Existenz erweiterbarer Pfade“
haben wir auch nicht benutzt, dass der gegebene ungerichtete Graph
ein bipartiter Graph ist
... die vorgeschlagene algorithmische Idee ist für alle ungerichteten
Graphen korrekt (/* Aspekt 2 */)
... die fehlenden Details (/* Aspekt 1 */) lassen sich für bipartite
Graphen einfacher „ausarbeiten“
1/2, Folie 39
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Eine einfache Beobachtung
•
•
•
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
es sei M ⊆ E ein Matching von G
es sei P = (v0,...,vk) ein erweiterbarer Pfad in G bzgl. M
Dann gilt:
Wenn P = (v0,...,vk) ein erweiterbarer Pfad in G bzgl. M ist, so muss
entweder i) v0 ∈ X und vk ∈ Y oder ii) v0 ∈ Y und vk ∈ X gelten.
... da im Fall ii) P‘ = (vk,...,v0) ebenfalls ein erweiterbarer Pfad ist,
genügt es, nach erweiterbaren Pfaden zu suchen, die in X beginnen
1/2, Folie 40
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Zurück zur zentralen algorithmischen Fragestellung
•
gegeben:
•
•
gesucht:
•
1/2, Folie 41
ein bipartiter Graph G = (V,E) und die zugehörige
Zerlegung von V in zwei Teilmengen X und Y
© 2011 Prof. Steffen Lange
ein maximales Matching M von G
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Hilfsbegriff: Unversorgte Knoten
•
•
•
•
1/2, Folie 42
es seien G = (V,E) ein bipartiter Graph und X,Y ⊆ V die zugehörige
Zerlegung der Knotenmenge von G
es sei M ⊆ E ein Matching von G
ein Knoten x ∈ X ist ein unversorgter Knoten bzgl. M, falls es keine
Kante in M mit der Ecke x gibt
ein Knoten y ∈ Y ist ein unversorgter Knoten bzgl. M, falls es keine
Kante in M mit der Ecke y gibt
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Ungarischer Algorithmus
1)
2)
3)
4)
5)
6)
7)
1/2, Folie 43
wähle ein Matching M von G (/* der Einfachheit halber das leere */)
markiere alle bzgl. M unversorgten Ecken in x ∈ X mit #
markiere alle noch nicht markierten Ecken y ∈ Y, die durch eine nicht zu M
gehörenden Kante mit einer „neu“ markierten Ecke x ∈ X verbunden sind, mit
diesem x (/* jedes y bekommt jedoch nur ein x als Markierung !!! */)
wurde in 3) kein neues y ∈ Y markiert, so stoppe
ist mindestens eine „neu“ markierte Ecke y ∈ Y unversorgt bzgl. M, so gehe
zu 7); andernfalls gehe zu 6)
markiere alle Ecken x ∈ X, die durch (/* genau */) eine Kante aus M mit einer
in „neu“ markierten Ecke y ∈ Y verbunden sind mit # und gehe zu 3)
bestimme ausgehend von einer unversorgten Ecke y ∈ Y einen erweiterbaren
Pfad P; bestimme die bzgl. M und P erweiterte Kantenmenge M‘; setze M‘ = M;
streiche alle Markierungen und gehe zu 2)
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
#
1
1‘
2
2‘
3
3‘
4
4‘
5
5‘
6
6‘
2
2
2
2‘
#
2
2
6‘
1/2, Folie 44
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
1
1‘
#
2
2‘
#
3
3‘
4
4‘
5
5‘
6
6‘
#
2
2
2
#
2‘
3
2
#
6‘
5
#
2
1/2, Folie 45
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
1
1‘
#
2
2‘
2
#
3
3‘
3 (5)
4
4‘
5
5
5‘
5
6
6‘
2
#
2
#
3
2‘
3
3‘
2
#
5
6‘
5
4‘
#
2
5
5‘
1/2, Folie 46
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
#
1
1‘
#
2
2‘
2
#
3
3‘
3
#
4
4‘
5
#
5
5‘
5
#
6
6‘
2
2
#
3
#
2‘
3
3‘
4
2
#
5
#
6‘
5
4‘
1
5
#
5‘
6
#
2
1/2, Folie 47
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
#
1
1‘
1
#
2
2‘
2
#
3
3‘
3
#
4
4‘
5
#
5
5‘
5
#
6
6‘
2
2
#
3
#
2‘
3
3‘
4
2
#
5
#
1
6‘
5
4‘
1
1‘
5
#
5‘
6
#
2
1/2, Folie 48
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
#
1
1‘
1
#
2
2‘
2
#
3
3‘
3
#
4
4‘
5
#
5
5‘
5
1
1‘
#
6
6‘
2
2
2‘
3
3‘
4
4‘
5
5‘
6
6‘
1/2, Folie 49
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Anmerkungen (/* Rechenzeit */)
•
es sei G ein bipartiter Graph mit n Knoten und m Kanten
•
offenbar terminiert der Ungarische Algorithmus immer
•
man kann höchsten n mal zu 2) kommen (/* das aktuell
betrachtete Matching kann maximal n mal verändert werden;
jede Veränderung erhöht die Anzahl der Kanten im aktuellen
Matching um eins; ein maximales Matching kann höchstens n
Kanten enthalten */)
... es genügt abzuschätzen, wie viele Rechenschritte benötigt werden,
um das aktuell betrachtete Matching M „vollständig“ zu verarbeiten
1/2, Folie 50
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Anmerkungen (/* Rechenzeit */)
•
um das aktuelle Matching M „vollständig“ zu verarbeiten, benötigt man
•
•
•
c1*n viele Rechenschritte, um 2) auszuführen
c2*(n+m) viele Rechenschritte, um alle durch alternierende Pfade
von unversorgten Knoten in X erreichbaren Knoten zu markieren
(/* analog zum Bestimmen von Zusammenhangskomponenten */)
c3*n viele Rechenschritte um in 7) einen bzgl. M erweiterbaren
Pfad und die bzgl. M und P erweiterte Kantenmenge M‘ zu
bestimmen
... also genügen c*(n+m) viele Rechenschritte, um das aktuell betrachtete
Matching M „vollständig“ zu verarbeiten
... also benötigt der Ungarische Algorithmus insgesamt c*n(n+m) viele
Rechenschritte
1/2, Folie 51
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Anmerkungen (/* Korrektheit */)
1/2, Folie 52
•
es sei M das vom Ungarischen Algorithmus bestimmte Matching
•
•
es ist zu zeigen, dass M ein maximales Matching von G ist
also genügt es zeigen, dass es keinen erweiterbarer Pfad bzgl. M gibt
•
Annahme: es sei P = (v1,v‘1,v2,v‘2,...,vk,v‘k) ein erweiterbarer Pfad bzgl. M
mit vi ∈ X und v‘i ∈ Y für alle i = 1,...,k, den der Ungarische Algorithmus
„übersehen“ hat (/* d.h. der Ungarische Algorithmus stoppt, ohne einen
„neuen“ erweiterbaren Pfad gefunden zu haben */)
•
da P ein erweiterbarer Pfad ist, weiß man, dass sowohl v1 als auch v‘k
bzgl. M unversorgt sind und dass für alle i = 1,...,k die Kante { vi,v‘i } nicht
zu M gehört und für alle i = 1,...,k-1 die Kante { v‘i,vi+1 } zu M gehört
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Anmerkungen (/* Korrektheit */)
•
da P = (v1,v‘1,v2,v‘2,...,vk,v‘k) ein erweiterbarer Pfad bzgl. M ist , weiß
man also auch, dass der Ungarische Algorithmus bei Verarbeitung
von M
•
•
•
•
•
•
•
•
v1 mit # markiert wird
v‘1 irgendwann markiert wird (/* aber ggf. nicht mit v1 */)
v2 irgendwann mit # markiert wird
v‘2 irgendwann markiert wird (/* aber ggf. nicht mit v2 */)
v3 irgendwann mit # markiert wird
...
vk irgendwann mit # markiert wird
v‘k irgendwann markiert wird (/* aber ggf. nicht mit vk */)
... da vk unversorgt ist, würde der Ungarische Algorithmus nicht
stoppen (/* Widerspruch zur Annahme !!! */)
1/2, Folie 53
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Ergänzung
•
die vorgestellte Argumentation liefert u.a. folgende Einsicht ...
... es ist de facto egal, auf welchem alternierenden Pfad man einen
Knoten von einem unversorgten Knoten aus erreicht, wichtig ist nur,
das man den Knoten überhaupt erreicht (/* die Zusatzinformation, die
sich in den Knoten aus Y gemerkt wird, ist nur wichtig, um in 7) einen
erweiterbaren Pfad zu bestimmen ...*/)
•
bei nicht bipartiten Graphen muss man „vorsichtiger sein“
1
3
1
2
3
4
1/2, Folie 54
© 2011 Prof. Steffen Lange
2
-
4
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Zurück zum Satz von König
•
•
•
es sei G = (V,E) ein bipartier Graph
es sei M* ein maximales Matching von G
es sei S* eine minimale Eckenüberdeckung von G
Dann gilt: |M*| = |S*|.
... es genügt zu zeigen, dass man eine Eckenüberdeckung finden kann,
die genauso viele Knoten hat, wie das vom Ungarischen Algorithmus
bestimmte Matching Kanten besitzt
... da für jedes Paar (M,S), bestehend aus einem Matching M und einer
Eckenüberdeckung S, bekannt ist, dass |M| ≤ |S| gilt, würde sofort folgen:
•
•
1/2, Folie 55
der Ungarische Algorithmus bestimmt ein maximales Matching
der Satz von König ist korrekt
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Algorithmischen Fragestellung
•
gegeben:
•
•
gesucht:
•
1/2, Folie 56
ein bipartiter Graph G = (V,E) und die zugehörige
Zerlegung von V in zwei Teilmengen X und Y
© 2011 Prof. Steffen Lange
eine minimale Eckenüberdeckung S von G
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Algorithmische Idee
1)
2)
wende den Ungarischen Algorithmus an (/* es seien M das bestimmte
Matching, X‘ die Teilmenge der Knoten in X, die nicht mit # markiert
sind und Y‘ die Teilmenge der Knoten in Y, die markiert sind */)
setze S = X‘ ∪ Y‘ und gib S aus
... es genügt zu zeigen, dass a) und b) gilt
a)
b)
1/2, Folie 57
© 2011 Prof. Steffen Lange
-
HDa/FbI
S ist eine Eckenüberdeckung
|M| = |S| gilt
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel
#
1
1‘
1
#
2
2‘
2
#
3
3‘
3
#
4
4‘
5
#
5
5‘
5
#
6
6‘
2
•
•
•
X‘ = ∅
Y‘ = { 1,2,3,4,5,6 }
S = { 1,2,3,4,5,6 }
•
•
•
X‘ = { 1 }
Y‘ = { 2‘,3‘ }
S = { 1,2‘,3‘ }
 Ein anderes Beispiel
1/2, Folie 58
1
1‘
#
2
2‘
1
#
3
3‘
2
#
4
4‘
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Begründung (/* Teil a) */)
•
es gibt „theoretisch“ vier Typen von Kanten (/* mit Blick auf die
vom Ungarischen Algorithmus beim Abbruch bestimmte
Markierung der Knoten in X und Y */)
Typ
Ecke
in
X
Ecke
in
Y
Durch
S
überdeckt?
1
nicht
mit
#
markiert
nicht
markiert
offenbar
überdeckt
2
nicht
mit
#
markiert
markiert
offenbar
überdeckt
3
mit
#
markiert
nicht
markiert
???
4
mit
#
markiert
markiert
offenbar
überdeckt
... es genügt zu zeigen, dass es gar keine Kanten vom Typ 3 geben kann
1/2, Folie 59
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Begründung (/* Teil a) */)
•
Annahme: es gibt in G eine Kante e = { x,y }, wobei x mit # markiert ist
und y nicht markiert ist
Fall 1: e gehört zum bestimmten Matching M
•
•
•
dann ist x bzgl. M nicht unversorgt
also kann x nur dadurch markiert worden sein, dass es eine
Kante e‘ = { x‘,y‘ } in M gibt, für die gilt: x‘ = x und y‘ ist markiert
da y nicht markiert ist, muss y ≠ y‘ gelten und M kann folglich
kein Matching sein
... Widerspuch zur Annahme !!!
Fall 2: e gehört nicht zum bestimmten Matching M
•
dann müsste aber y auch markiert sein
... Widerspuch zur Annahme !!!
1/2, Folie 60
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Begründung (/* Teil b) */)
•
da wir wissen, dass S eine Eckenüberdeckung von G ist und M ein
Matching von G ist, gilt |S| ≥ |M|
•
um zu zeigen, dass |M| = |S| ist, genügt es zu zeigen, dass nicht
|S| > |M| gelten kann
•
Annahme: |S| > |M|
Fall 1: es gibt x,y ∈ S und keine Kante in M hat x oder y als Ecke
•
Fall 2:
•
•
1/2, Folie 61
das kann nicht sein, da M ein maximales Matching von G ist
es gibt x,y ∈ S und eine Kante e = { x,y } in M
offenbar ist x unmarkiert und y markiert
da y markiert ist und e zu M gehört, müsste x auch markiert
sein
... beide Fälle sind nicht möglich !!!
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Zusammenfassung
•
mit Hilfe des Ungarischen Algorithmus kann man effizient maximale
Matchings und minimale Eckenüberdeckungen von bipartiten Graphen
bestimmen
•
die grundlegende Idee besteht darin, sukzessive erweiterbare Pfade zu
suchen und das aktuell bestimmte Matching, mit Blick auf den jeweils
gefunden erweiterbaren Pfad, zu „verbessern“
... die gleiche Idee funktioniert auch für Graphen, die keine bipartiten
Graphen sind (/* da ist die Suche aufwändiger, da nicht von vornherein
klar ist, ob die Ecken einer Kante { x,y } in der Reihenfolge x,y oder in der
Reihenfolge y,x in einem alternierenden Pfad besucht werden */)
1/2, Folie 62
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Fallstudie Bipartite Graphen
Matchings in bipartiten Graphen
 Beispiel (/* allgemeiner Fall */)
1
3
1
2
2
3
4
4
 Beispiel (/* Spezialfall: Bipartite Graphen */)
1/2, Folie 63
1
2
3
4
5
6
7
8
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Herunterladen