Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "1 Matchings (Paarungen) in Graphen PS Algorithmen auf Graphen SS `06 Steven Birr."—  Präsentation transkript:

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

2 2 Gliederung 1) Definitionen und Beispiele 2) Algorithmus des maximalen Matchings 3) Das Personal-Zuteilungsproblem  Ungarischer Algorithmus 4) Zusammenfassung

3 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 4 1) Beispiel 1 für ein Matching M 1 = {e 1,e 2 ) fe a d c b e2e2 e1e1

5 5 1) Beispiel 2 für ein Matching M 1 = {e 1,e 3,e 4 ) fe a d c b e3e3 e1e1 e4e4

6 6 1) Definition: M-gesättigt v ist Endknoten einer Kante in dem Matching M  v ist M-gesättigt sonst: M-ungesättigt

7 7 1) Definition: Perfektes Matching Wenn jeder Knoten eines Matchings M- gesättigt ist  Perfektes Matching

8 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 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 10 1) Bsp. für M-alternierender Weg Matching M = {e 3, e 5, e 6 } M-alternierender Weg = {v 1, v 4, v 2, v 5, v 6, v 3 } a e1e1 v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 v7v7 e2e2 e6e6 e5e5 e3e3 e9e9 e 10 e 11 e 12 e4e4 e8e8 e7e7

11 11 1) Definition: M-erweiternder Weg M-erweiterender Weg: Anfangs- und Endknoten sind M-ungesättigt Matching M = {e 4, e 6, e 7 } M-erweiternder Weg = {v 5, v 6, v 1, v 2, v 7, v 8, v 3, v 4 }

12 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 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 14 1) Beispiel aus der Praxis H1H1 H2H2 H3H3 K1K1 K2K2 K3K3 K4K4 K5K5 341 2 8 3 1

15 15 1) Beispiel aus der Praxis H1H1 H2H2 H3H3 K1K1 K2K2 K3K3 K4K4 K5K5 341 2 8 3 1

16 16 1) Beispiel aus der Praxis H1H1 H2H2 H3H3 K1K1 K2K2 K3K3 K4K4 K5K5 348 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 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 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 19 2) Algorithmus: Maximales Matching M = {e 4, e 6, e 7 } P = {v 5, v 6, v 1, v 2, v 7, v 8, v 3, v 4 } a e1e1 v1v1 v2v2 v3v3 v6v6 v7v7 v8v8 e2e2 e7e7 e6e6 e4e4 e8e8 e5e5 e 10 e9e9 v4v4 v5v5 e3e3

20 20 2) Algorithmus: Maximales Matching a e1e1 v1v1 v2v2 v3v3 v6v6 v7v7 v8v8 e2e2 e7e7 e6e6 e4e4 e8e8 e5e5 e 10 e9e9 v4v4 v5v5 e3e3 e 8  rot, e 4  schwarz

21 21 2) Algorithmus: Maximales Matching a e1e1 v1v1 v2v2 v3v3 v6v6 v7v7 v8v8 e2e2 e7e7 e6e6 e4e4 e8e8 e5e5 e 10 e9e9 v4v4 v5v5 e3e3 e 1  rot, e 6  schwarz

22 22 2) Algorithmus: Maximales Matching a e1e1 v1v1 v2v2 v3v3 v6v6 v7v7 v8v8 e2e2 e7e7 e6e6 e4e4 e8e8 e5e5 e 10 e9e9 v4v4 v5v5 e3e3 e 10  rot, e 7  schwarz

23 23 2) Algorithmus: Maximales Matching a e1e1 v1v1 v2v2 v3v3 v6v6 v7v7 v8v8 e2e2 e7e7 e6e6 e4e4 e8e8 e5e5 e 10 e9e9 v4v4 v5v5 e3e3 e 3  rot

24 24 2) Algorithmus: Maximales Matching a e1e1 v1v1 v2v2 v3v3 v6v6 v7v7 v8v8 e2e2 e7e7 e6e6 e4e4 e8e8 e5e5 e 10 e9e9 v4v4 v5v5 e3e3 Algorithmus beendet Maximales Matching M‘ = {e 8, e 1, e 10, e 3 }

25 25 3) Das Personal-Zuteilungsproblem Geg.: Paarer Graph G mit V(G) = X U Y  Menge X = {x 1,...,x n } := Lehrer  Menge Y = {y 1,..., y n } := Klassen  Bei Qualifikation von x i  Kante zu y i Ziel: Matching in G, sodass jedes x i gesättigt wird Realisierung durch Ungarischen Algorithmus

26 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 x 0  Um M-erweiternden Weg zu erkennen

27 27 3) Ungarischer Algorithmus Matching M = {a 1 -b 2 ; a 3 -b 3 ; a 5 -b 4, a 6 -b 7 } a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7

28 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 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7

29 29 3) Ungarischer Algorithmus (1): Beginne mit Matching M (gestrichelt) (2): x 0 = a 2 ist M-ungesättigt in X  Setze S = {a 2 } und T = Ø Baum B: a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 a2a2

30 30 3) Ungarischer Algorithmus (3): N(S) = {b 2, b 3 } (4): y = b 2 ist M-gesättigt  S = {a 1, a 2 } ; T = {b 2 } Baum B: a2a2 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 b2b2 a1a1

31 31 3) Ungarischer Algorithmus (5): N(S) = {b 2, b 3 } (6): y = b 3 ist M-gesättigt  S = {a 1, a 2, a 3 } ; T = {b 2, b 3 } Baum B: a2a2 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 b2b2 a1a1 b3b3 a3a3

32 32 3) Ungarischer Algorithmus (7): N(S) = {b 1, b 2, b 3, b 4, b 5, b 6 } (8): y = b 1 ist M-ungesättigt  Jetzt: M-erweiternder Weg P ermitteln und umfärben Baum B: a2a2 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 b2b2 a1a1 b3b3 a3a3 b1b1

33 33 3) Ungarischer Algorithmus Baum B: a2a2 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 b2b2 a1a1 b3b3 a3a3 b1b1 (9): P = {a 2, b 3, a 3, b 1 }  Umfärbung entlang P

34 34 3) Ungarischer Algorithmus Baum B: a2a2 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 b2b2 a1a1 b3b3 a3a3 b1b1 Nach Umfärbung entsteht neues größeres Matching M

35 35 3) Ungarischer Algorithmus Baum B: a4a4 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (1): x 0 = a 4 ist M-ungesättigt in X  Setze S = {a 4 } und T = Ø

36 36 3) Ungarischer Algorithmus Baum B: a4a4 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 (2): N(S) = {b 2, b 3, b 4, b 7 } (3): y = b 2 ist M-gesättigt  S = {a 1, a 4 } ; T = {b 2 } b2b2 a1a1 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b7b7

37 37 3) Ungarischer Algorithmus Baum B: a4a4 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (3): N(S) = {b 2, b 3, b 4, b 7 } (4): y = b 3 ist M-gesättigt  S = {a 1, a 2, a 4 } ; T = {b 2, b 3 } b2b2 a1a1 b3b3 a2a2

38 38 3) Ungarischer Algorithmus Baum B: a4a4 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (5): N(S) = {b 2, b 3, b 4, b 7 } (6): y = b 4 ist M-gesättigt  S = {a 1, a 2, a 4, a 5 } ; T = {b 2, b 3, b 4 } b2b2 a1a1 b3b3 a2a2 b4b4 a5a5

39 39 3) Ungarischer Algorithmus Baum B: a4a4 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (7): B 6  in N(S) (8): N(S) = {b 2, b 3, b 4, b 6, b 7 } (9): y = b 6 ist M-ungesättigt b2b2 a1a1 b3b3 a2a2 b4b4 a5a5 b6b6

40 40 3) Ungarischer Algorithmus Baum B: a4a4 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7  Jetzt: M-erweiternder Weg P ermitteln und umfärben b2b2 a1a1 b3b3 a2a2 b4b4 a5a5 b6b6

41 41 3) Ungarischer Algorithmus Baum B: a4a4 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (10): P = {a 4, b 4, a 5, b 6 }  Umfärbung entlang P b2b2 a1a1 b3b3 a2a2 b4b4 a5a5 b6b6

42 42 3) Ungarischer Algorithmus Baum B: a4a4 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 Nach Umfärbung entsteht neues größeres Matching M b2b2 a1a1 b3b3 a2a2 b4b4 a5a5 b6b6

43 43 3) Ungarischer Algorithmus Baum B: a7a7 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (1): x 0 = a 7 ist M-ungesättigt in X  Setze S = {a 7 } und T = Ø

44 44 3) Ungarischer Algorithmus Baum B: a7a7 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (2): N(S) = {b 2, b 3 } (3): y = b 2 ist M-gesättigt  S = {a 1, a 7 } ; T = {b 2 } b2b2 a1a1

45 45 3) Ungarischer Algorithmus Baum B: a7a7 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (4): N(S) = {b 2, b 3 } (5): y = b 3 ist M-gesättigt  S = {a 1, a 2, a 7 } ; T = {b 2, b 3 } b2b2 a1a1 b3b3 a2a2

46 46 3) Ungarischer Algorithmus Baum B: a7a7 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 (6): N(S) = {b 2, b 3 } = T = {b 2, b 3 } Algorithmus beendet b2b2 a1a1 b3b3 a2a2

47 47 3) Ungarischer Algorithmus Baum B: a7a7 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 b1b1 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 G beinhaltet kein Matching, durch das jeder Knoten in X gesättigt wird b2b2 a1a1 b3b3 a2a2

48 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 Matching  Ungarischer Algorithmus

49 49 Fragen?


Herunterladen ppt "1 Matchings (Paarungen) in Graphen PS Algorithmen auf Graphen SS `06 Steven Birr."

Ähnliche Präsentationen


Google-Anzeigen