49
1 Matchings (Paarungen) in Graphen PS Algorithmen auf Graphen SS `06 Steven Birr

1 Matchings (Paarungen) in Graphen PS Algorithmen auf Graphen SS `06 Steven Birr

Embed Size (px)

Citation preview

1

Matchings (Paarungen) in GraphenPS Algorithmen auf Graphen SS `06Steven Birr

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

4

1) Beispiel 1 für ein Matching M1 = {e1,e2)

f e

a

d

c

b

e2

e1

5

1) Beispiel 2 für ein Matching M1 = {e1,e3,e4)

f e

a

d

c

b

e3

e1

e4

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)

14

1) Beispiel aus der PraxisH1 H2 H3

K1 K2 K3 K4 K5

3 41 2 8 31

15

1) Beispiel aus der PraxisH1 H2 H3

K1 K2 K3 K4 K5

3 41 2 8 31

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

23

2) Algorithmus: Maximales Matching

a e1v1 v2 v3

v6 v7 v8

e2

e7e6e4

e8

e5

e10e9

v4

v5

e3

e3 rot

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

49

Fragen?