Upload
baerbel-schmitt
View
234
Download
0
Tags:
Embed Size (px)
Citation preview
2
Gliederung
1) Definitionen und Beispiele 2) Algorithmus des maximalen Matchings 3) Das Personal-Zuteilungsproblem
Ungarischer Algorithmus 4) Zusammenfassung
3
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
6
1) Definition: M-gesättigt
v ist Endknoten einer Kante in dem Matching M v ist M-gesättigtsonst: M-ungesättigt
f e
a
d
c
b
e2
e1
7
1) Definition: Perfektes Matching
Wenn jeder Knoten eines Matchings M-gesättigt ist Perfektes Matching
f e
a
d
c
b
e3
e1
e4
8
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.
9
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
10
1) Bsp. für M-alternierender Weg
Matching M = {e3, e5, e6} M-alternierender Weg = {v1, v4, v2, v5, v6, v3}
a e1v1 v2 v3
v4 v5 v6
v7
e2
e6e5e3e9
e10 e11
e12
e4
e8e7
11
1) Definition: M-erweiternder Weg
M-erweiterender Weg: Anfangs- und Endknoten sind M-ungesättigt
a e1v1 v2 v3
v6 v7 v8v5
e2
e7e6e4
e8
e5
e10e9
v4e3
Matching M = {e4, e6, e7} M-erweiternder Weg = {v5, v6, v1, v2, v7, v8, v3, v4}
12
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
13
1) Beispiel aus der Praxis
G: Graph mit Knotenmenge K für Käufer und H für Häuser
Bei Kaufinteresse Kante zwischen Haus- und Käuferknoten
Jede Kante bekommt eine Bewertung (Provision)
16
1) Beispiel aus der PraxisH1 H2 H3
K1 K2 K3 K4 K5
3 4 8
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
17
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
18
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)
19
2) Algorithmus: Maximales Matching
M = {e4, e6, e7} P = {v5, v6, v1, v2, v7, v8, v3, v4}
a e1v1 v2 v3
v6 v7 v8
e2
e7e6e4
e8
e5
e10e9
v4
v5
e3
20
2) Algorithmus: Maximales Matching
a e1v1 v2 v3
v6 v7 v8
e2
e7e6e4
e8
e5
e10e9
v4
v5
e3
e8 rot, e4 schwarz
21
2) Algorithmus: Maximales Matching
a e1v1 v2 v3
v6 v7 v8
e2
e7e6e4
e8
e5
e10e9
v4
v5
e3
e1 rot, e6 schwarz
22
2) Algorithmus: Maximales Matching
a e1v1 v2 v3
v6 v7 v8
e2
e7e6e4
e8
e5
e10e9
v4
v5
e3
e10 rot, e7 schwarz
24
2) Algorithmus: Maximales Matching
a e1v1 v2 v3
v6 v7 v8
e2
e7e6e4
e8
e5
e10e9
v4
v5
e3
Algorithmus beendet Maximales Matching M‘ = {e8, e1, e10, e3}
25
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
26
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
27
3) Ungarischer Algorithmus
Matching M = {a1-b2; a3-b3; a5-b4, a6-b7}
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
28
3) Ungarischer Algorithmus
Knotenmenge S: Aktueller und besuchte Knoten in X Knotenmenge N(S): Nachbarknoten von Knoten in X Knotenmenge T: besuchte Nachbarknoten in Y
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
29
3) Ungarischer Algorithmus
(1): Beginne mit Matching M (gestrichelt) (2): x0 = a2 ist M-ungesättigt in X
Setze S = {a2} und T = Ø
Baum B:
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
a2
30
3) Ungarischer Algorithmus
(3): N(S) = {b2, b3} (4): y = b2 ist M-gesättigt
S = {a1, a2} ; T = {b2}
Baum B:
a2
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
b2
a1
31
3) Ungarischer Algorithmus
(5): N(S) = {b2, b3} (6): y = b3 ist M-gesättigt
S = {a1, a2, a3 } ; T = {b2, b3}
Baum B:
a2
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
b2
a1
b3
a3
32
3) Ungarischer Algorithmus
(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
Baum B:
a2
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
b2
a1
b3
a3
b1
33
3) Ungarischer Algorithmus
Baum B:
a2
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
b2
a1
b3
a3
b1 (9): P = {a2, b3, a3, b1} Umfärbung entlang P
34
3) Ungarischer Algorithmus
Baum B:
a2
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
b2
a1
b3
a3
b1 Nach Umfärbung entsteht neues größeres Matching M
35
3) Ungarischer Algorithmus
Baum B:
a4
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(1): x0 = a4 ist M-ungesättigt in X Setze S = {a4} und T = Ø
36
3) Ungarischer Algorithmus
Baum B:
a4
b1 b2 b3 b4 b5 b6
(2): N(S) = {b2, b3, b4, b7} (3): y = b2 ist M-gesättigt
S = {a1, a4} ; T = {b2}b2
a1
a1 a2 a3 a4 a5 a6 a7
b7
37
3) Ungarischer Algorithmus
Baum B:
a4
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(3): N(S) = {b2, b3, b4, b7} (4): y = b3 ist M-gesättigt
S = {a1, a2, a4} ; T = {b2, b3}b2
a1
b3
a2
38
3) Ungarischer Algorithmus
Baum B:
a4
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(5): N(S) = {b2, b3, b4, b7} (6): y = b4 ist M-gesättigt
S = {a1, a2, a4, a5} ; T = {b2, b3, b4}b2
a1
b3
a2
b4
a5
39
3) Ungarischer Algorithmus
Baum B:
a4
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(7): B6 in N(S) (8): N(S) = {b2, b3, b4, b6, b7} (9): y = b6 ist M-ungesättigt
b2
a1
b3
a2
b4
a5
b6
40
3) Ungarischer Algorithmus
Baum B:
a4
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
Jetzt: M-erweiternder Weg P ermitteln und umfärben
b2
a1
b3
a2
b4
a5
b6
41
3) Ungarischer Algorithmus
Baum B:
a4
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(10): P = {a4, b4, a5, b6} Umfärbung entlang Pb2
a1
b3
a2
b4
a5
b6
42
3) Ungarischer Algorithmus
Baum B:
a4
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
Nach Umfärbung entsteht neues größeres Matching M
b2
a1
b3
a2
b4
a5
b6
43
3) Ungarischer Algorithmus
Baum B:
a7
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(1): x0 = a7 ist M-ungesättigt in X Setze S = {a7} und T = Ø
44
3) Ungarischer Algorithmus
Baum B:
a7
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(2): N(S) = {b2, b3} (3): y = b2 ist M-gesättigt
S = {a1, a7} ; T = {b2}b2
a1
45
3) Ungarischer Algorithmus
Baum B:
a7
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(4): N(S) = {b2, b3} (5): y = b3 ist M-gesättigt
S = {a1, a2, a7} ; T = {b2, b3}b2
a1
b3
a2
46
3) Ungarischer Algorithmus
Baum B:
a7
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
(6): N(S) = {b2, b3} = T = {b2, b3} Algorithmus beendetb2
a1
b3
a2
47
3) Ungarischer Algorithmus
Baum B:
a7
a1 a2 a3 a4 a5 a6 a7
b1 b2 b3 b4 b5 b6 b7
G beinhaltet kein Matching, durch das jeder Knoten in X gesättigt wird
b2
a1
b3
a2
48
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 MatchingUngarischer Algorithmus