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 K5K

15 15 1) Beispiel aus der Praxis H1H1 H2H2 H3H3 K1K1 K2K2 K3K3 K4K4 K5K

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