Formale Grundlagen der Informatik / 2015 1
Die Elemente einer (endlichen) Menge sollen den Elementen einer zweiten, gleichmächtigen Menge zugeordnet werden Problemstellung
Bipartite Graphen Zuordnungsprobleme werden mit Hilfe bipartiter Graphen modelliert. Erinnerung: Ein Graph heißt bipartit, wenn seine Knotenmenge eine disjunkte Zerlegung in zwei Mengen A und B derart besitzt, daß Jede Kante die aus einem Knoten aus A entspringt in einem Knoten aus B endet und umgekehrt d.h. es gibt keine keine Kante zwischen Knoten aus A bzw. B 3
Beispiel bipartit nicht bipartit 4
Inzidenz Zwei Knoten heißen inzident: genau dann, wenn sie durch eine Kante verbunden sind Zwei Kanten heißen inzident, genau dann, wenn Sie einen gemeinsamen Knoten besitzen 1 a 2 b inzidente Kanten a und b 3 5
Matchings Ein Matching in einem bipartiten Graphen ist eine Menge von Kanten die paarweise nicht inzident sind mögliche Verbindung Matching Matching kein Matching 6
Maximale Matchings Ein Matching in einem Graphen G heißt maximal, wenn es kein anderes Matching mit mehr Kanten in G gibt. 7
Alternierende Wege Ist (G,E) ein bipartiter Graph und M ein Matching in G so heißt ein Weg alternierend, falls er abwechselnd Kanten aus M und aus E\M enthält. 1 2 a b 3 c 4 d alternierender Weg
Erweiterungswege Ein alternierender Weg in einem bipartiten Graphen, der in einem ungepaarten Knoten beginnt und in einem ungepaarten Knoten endet heißt erweiternder Weg. 1 2 a b 3 c 4 d erweiternder Weg
Der Weg zum optimalen Matching Hat man einen erweiternden Weg gefunden, verfährt man wie folgt: Entferne die Kanten des Matchings aus dem erweiternden Weg füge die übrigen Kanten des erweiternden Weges als neues Matching hinzu Ergebnis: Ein neues Matching mit einer Kante mehr! 10
verbessertes Matching 1 a 1 a 2 b 2 b 3 c 3 c 4 d 4 d 11
optimales Matching Ein Matching in einem bipartiten Graphen ist genau dann maximal, wenn es keinen Erweiterungsweg (mehr) gibt. 12
Matchings und Flüsse Erweiterungswege geben ein Kriterium an, wann ein Matching maximal ist. Optimale Matchings können aber auch mit Hilfe des Algorithmus von Ford-Fulkerson zur Bestimmung maximaler Flüsse in Netzwerken gefunden werden. Idee: Implementierung einer Richtung im Graphen G Anfügen einer Quelle auf der einen Seite des bipartiten Graphen Anfügen einer Senke auf der anderen Seite Bestimmung des maximalen Flusses 13
Matchings und Flüsse (1) 1 a 2 b q s 3 c 4 d 14
Matchings und Flüsse (2) Rahmenbedingungen zur Bestimmung eines Matchings: Jede Kante hat Kapazität 1 Nach Bestimmung des maximalen Flusses: Jede benutzte Kante gehört zum Matching Es gilt: Ein Matching ist genau dann maximal, wenn der zugehörige Fluß maximal ist Das gefundene Matching ist also ein maximales Matching 15
Das Problem der stabilen Hochzeit Wir betrachten folgende Problemstellung: n heiratswilligen Männern stehen ebensoviele heiratswillige Frauen gegenüber Jeder Mann und jede Frau hat eine individuelle Präferenzliste wen er/sie heiraten möchte Problem: Existiert eine stabile Hochzeit, so daß jeder Mann mit einer Frau verheiratet wird und beide auf der jeweiligen Präferenzliste des anderen stehen Das Problem ist unter dem Namen Stabile Hochzeit in die Literatur eingegangen 16
Die stabile Hochzeit Wer mit Wem? 17
Die Lösung der stabilen Hochzeit Für das Problem der stabilen Hochzeit gibt es einen (einfachen) Algorithmus: Men propose - women dispose, d.h. Männer wählen, Frauen lehnen ab. Jeder Mann wählt gemäß Präferenzliste eine Frau Falls die Frau nicht verlobt ist, oder ihr der Mann besser gefällt als die derzeitige Wahl, so geht die Frau die Verlobung ein. War die Frau verlobt, so streicht der Mann (ihr Ex- Verlobter) sie von seiner Präferenzliste Falls der Mann nicht auf der Präferenzliste der Frau steht, so lehnt diese die Verbindung ab und der Antragsteller streicht sie von seiner Liste 18