Folien

Werbung
Matchings
(Paarungen) in
Graphen
PS Algorithmen auf Graphen SS `06
Steven Birr
1
Gliederung
1) Definitionen und Beispiele
 2) Algorithmus des maximalen Matchings
 3) Das Personal-Zuteilungsproblem



Ungarischer Algorithmus
4) Zusammenfassung
2
1) Definition: Matching

Geg:




G = Graph
V=V(G) = Knotenmenge
E=E(G) = Kantenmenge
Matching M:


Untermenge M von E heißt Matching von G, wenn keine 2
Kanten aus M adjazent sind
Oder: Keine 2 Kanten aus M haben einen gemeinsamen
Endknoten
3
1) Beispiel 1 für ein Matching

b
M1 = {e1,e2)
e1
a
c
e2
f
d
e
4
1) Beispiel 2 für ein Matching

b
M1 = {e1,e3,e4)
e1
a
c
e3
d
f
e4
e
5
1) Definition: M-gesättigt

v ist Endknoten einer Kante in dem Matching M
 v ist M-gesättigt
b
e
sonst: M-ungesättigt
1
a
c
e2
f
d
e
6
1) Definition: Perfektes Matching

Wenn jeder Knoten eines Matchings Mgesättigt ist  Perfektes Matching
b
e1
a
c
e3
d
f
e4
e
7
1) Definition: Maximales Matching

Matching M heißt maximal, wenn G kein
Matching M‘ enthält, das eine größere
Anzahl von Kanten als M hat.
8
1) Definition: M-alternierender Weg

Geg.:

Matching M in G
 Kantenmenge E = E(G)

M-alternierender Weg in G: Weg, dessen
Kanten abwechselnd zu M und E\M
gehören
9
1) Bsp. für M-alternierender Weg
v1
a
e1
e3
e9
v2
v4
e11
v3
e5
e4
e7
e10
e2
e6
e8
v5
v6
e12
v7


Matching M = {e3, e5, e6}
M-alternierender Weg = {v1, v4, v2, v5, v6, v3}
10
1) Definition: M-erweiternder Weg

M-erweiterender Weg: Anfangs- und Endknoten
sind M-ungesättigt
v1
a
e1
e4


v6
e2
v3
e6
e5
e9
e8
v5
v2
e3
v4
e7
e10
v7
v8
Matching M = {e4, e6, e7}
M-erweiternder Weg = {v5, v6, v1, v2, v7, v8, v3, v4}
11
1) Beispiel aus der Praxis
Immobilienmakler: verschiedene Häuser
 Verschiedene Kaufinteressenten, die sich
evtl. für mehr als 1 Haus interessieren
 Makler verdient an jedem
Geschäftsabschluss eine Provision
 Gewinnmaximierung durch Matching

12
1) Beispiel aus der Praxis
G: Graph mit Knotenmenge K für Käufer
und H für Häuser
 Bei Kaufinteresse Kante zwischen Hausund Käuferknoten
 Jede Kante bekommt eine Bewertung
(Provision)

13
1) Beispiel aus der Praxis
H1
3
K1
H2
1
K2
4
2
K3
H3
1
3
8
K4
K5
14
1) Beispiel aus der Praxis
H1
3
K1
H2
1
K2
4
2
K3
H3
1
3
8
K4
K5
15
1) Beispiel aus der Praxis
H1
3
K1




H2
4
K2
H3
8
K3
K4
K5
Käufer 1 kauft Haus 1
Käufer 2 kauft Haus 2
Käufer 4 kauft Haus 3
 Maximaler Gewinn für Makler durch maximales Matching
16
2) Algorithmus: Maximales Matching

Geg.:

Beliebiges Matching M in G
 Alle Kanten in M: dunkle Kanten
 Alle Kanten in E\M: helle Kanten
 P = M-erweiternder Weg
(D.h. erste und letzte Kante von P ist hell)
 m dunkle Kanten, m+1 helle Kanten
17
2) Algorithmus: Maximales Matching
Idee: Neues Matching M‘ durch Umfärben
entwickeln
 M‘-Entwicklung:

 Alle
dunklen Kanten in P ersetzen durch die
m+1 hellen Kanten in P
  M‘ ist neues Matching (eine Kante mehr)
18
2) Algorithmus: Maximales Matching
v1
a
e1
e4


e2
v6
v3
e6
e5
e3
v4
e7
e10
e9
e8
v5
v2
v7
v8
M = {e4, e6, e7}
P = {v5, v6, v1, v2, v7, v8, v3, v4}
19
2) Algorithmus: Maximales Matching
v1
a
e1
e4

v6
e2
v3
e6
e5
e3
v4
e7
e10
e9
e8
v5
v2
v7
v8
e8  rot, e4  schwarz
20
2) Algorithmus: Maximales Matching
v1
a
e1
e4

v6
e2
v3
e6
e5
e3
v4
e7
e10
e9
e8
v5
v2
v7
v8
e1  rot, e6  schwarz
21
2) Algorithmus: Maximales Matching
v1
a
e1
e4

v6
e2
v3
e6
e5
e3
v4
e7
e10
e9
e8
v5
v2
v7
v8
e10  rot, e7  schwarz
22
2) Algorithmus: Maximales Matching
v1
a
e1
e4

v6
e2
v3
e6
e5
e3
v4
e7
e10
e9
e8
v5
v2
v7
v8
e3  rot
23
2) Algorithmus: Maximales Matching
v1
a
e1
e4


v6
e2
v3
e6
e5
e3
v4
e7
e10
e9
e8
v5
v2
v7
v8
Algorithmus beendet
Maximales Matching M‘ = {e8, e1, e10, e3}
24
3) Das Personal-Zuteilungsproblem

Geg.: Paarer Graph G mit V(G) = X U Y

Menge X = {x1, ... ,xn} := Lehrer
 Menge Y = {y1, ..., yn} := Klassen
 Bei Qualifikation von xi  Kante zu yi


Ziel: Matching in G, sodass jedes xi gesättigt
wird
Realisierung durch Ungarischen Algorithmus
25
3) Ungarischer Algorithmus
Ungarische Mathematiker D.König und
J.Egerváry
 Benötigt werden:


Graph G mit 2 Teilmengen X und Y
 Matching M in G
 M-alternierender Baum mit Wurzel x0
 Um M-erweiternden Weg zu erkennen
26
3) Ungarischer Algorithmus

a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Matching M = {a1-b2; a3-b3; a5-b4, a6-b7}
27
3) Ungarischer Algorithmus



a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Knotenmenge S: Aktueller und besuchte Knoten in X
Knotenmenge N(S): Nachbarknoten von Knoten in X
Knotenmenge T: besuchte Nachbarknoten in Y
28
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:


a2
(1): Beginne mit Matching M
(gestrichelt)
(2): x0 = a2 ist M-ungesättigt in X
 Setze S = {a2} und T = Ø
29
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:


a1
b2
a2
(3): N(S) = {b2, b3}
(4): y = b2 ist M-gesättigt
 S = {a1, a2} ; T = {b2}
30
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
a1
a3
b2
b3
a2


(5): N(S) = {b2, b3}
(6): y = b3 ist M-gesättigt
 S = {a1, a2, a3 } ; T = {b2, b3}
31
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
b1
a1
a3
b2
b3
a2


(7): N(S) = {b1, b2, b3, b4, b5, b6}
(8): y = b1 ist M-ungesättigt
 Jetzt: M-erweiternder Weg P
ermitteln und umfärben
32
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
b1
a1
a3
b2
b3
a2

(9): P = {a2, b3, a3, b1}
 Umfärbung entlang P
33
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
b1
a1
a3
b2
b3
a2

Nach Umfärbung entsteht neues
größeres Matching M
34
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
(1): x0 = a4 ist M-ungesättigt in X
 Setze S = {a4} und T = Ø

a4
35
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:

a1

b2
a4
(2): N(S) = {b2, b3, b4, b7}
(3): y = b2 ist M-gesättigt
 S = {a1, a4} ; T = {b2}
36
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:

a1
a2
b2
b3
a4

(3): N(S) = {b2, b3, b4, b7}
(4): y = b3 ist M-gesättigt
 S = {a1, a2, a4} ; T = {b2, b3}
37
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:

a1
a2
a5
b2
b3
b4
a4

(5): N(S) = {b2, b3, b4, b7}
(6): y = b4 ist M-gesättigt
 S = {a1, a2, a4, a5} ; T = {b2, b3, b4}
38
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
b6

a1
a2
a5
b2
b3
b4
a4


(7): B6  in N(S)
(8): N(S) = {b2, b3, b4, b6, b7}
(9): y = b6 ist M-ungesättigt
39
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
b6

a1
a2
a5
b2
b3
b4
a4
 Jetzt: M-erweiternder Weg P
ermitteln und umfärben
40
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
b6

a1
a2
a5
b2
b3
b4
a4
(10): P = {a4, b4, a5, b6}
 Umfärbung entlang P
41
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:
b6

a1
a2
a5
b2
b3
b4
a4
Nach Umfärbung entsteht neues
größeres Matching M
42
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:

a7
(1): x0 = a7 ist M-ungesättigt in X
 Setze S = {a7} und T = Ø
43
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:

a1

b2
a7
(2): N(S) = {b2, b3}
(3): y = b2 ist M-gesättigt
 S = {a1, a7} ; T = {b2}
44
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:

a1
a2
b2
b3
a7

(4): N(S) = {b2, b3}
(5): y = b3 ist M-gesättigt
 S = {a1, a2, a7} ; T = {b2, b3}
45
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:

a1
a2
b2
b3
a7

(6): N(S) = {b2, b3} = T = {b2, b3}
Algorithmus beendet
46
3) Ungarischer Algorithmus
a1
a2
a3
a4
a5
a6
a7
b1
b2
b3
b4
b5
b6
b7
Baum B:

a1
a2
b2
b3
a7
G beinhaltet kein Matching, durch
das jeder Knoten in X gesättigt wird
47
4) Zusammenfassung

Matching M:
 Untermenge
M von E heißt Matching von G,
wenn keine 2 Kanten aus M adjazent sind

Wozu Matchings?
 Personal-Zuteilungs-Problem

Algorithmen:
 Maximales
Matching
 Ungarischer Algorithmus
48
Fragen?
49
Herunterladen