Flüsse, Schnitte, Bipartite Graphen II Jonathan Hacker 06.06.2016 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 1 / 42
Gliederung Einführung Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 2 / 42
Gliederung Einführung Maximales Matching Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 2 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 2 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 2 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Stabiles Heiraten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 2 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Stabiles Heiraten Quellen Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 2 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Stabiles Heiraten Quellen Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 3 / 42
Einführung Definition bipartiter Graph G=(V,E), wobei gilt: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 4 / 42
Einführung Definition bipartiter Graph G=(V,E), wobei gilt: V = L R, ( : disjunkte Vereinigung) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 4 / 42
Einführung Definition bipartiter Graph G=(V,E), wobei gilt: V = L R, ( : disjunkte Vereinigung) e = {u, v} E : (u L v R) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 4 / 42
Einführung Definition bipartiter Graph G=(V,E), wobei gilt: V = L R, ( : disjunkte Vereinigung) e = {u, v} E : (u L v R) Graph, der sich in zwei Mengen aufteilen lässt Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 4 / 42
Bipartit?? Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 5 / 42
Bipartit? Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 5 / 42
Bipartit? Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 5 / 42
Anwendungen Aufgabenverteilung Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 6 / 42
Anwendungen Aufgabenverteilung Paarbildung Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 6 / 42
Anwendungen Aufgabenverteilung Paarbildung Petri-Netze Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 6 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Stabiles Heiraten Quellen Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 7 / 42
Definitionen Matching Ein Matching M E ist eine Menge von Kanten, wobei kein Knoten an zwei Kanten aus M liegt. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 8 / 42
Definitionen Matching Ein Matching M E ist eine Menge von Kanten, wobei kein Knoten an zwei Kanten aus M liegt. Maximal Ein Matching ist maximal, wenn es kein Matching mit mehr Kanten gibt. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 8 / 42
Definitionen Matching Ein Matching M E ist eine Menge von Kanten, wobei kein Knoten an zwei Kanten aus M liegt. Maximal Ein Matching ist maximal, wenn es kein Matching mit mehr Kanten gibt. Perfekt Ein Matching ist perfekt, wenn jeder Knoten an einer Kante in M liegt. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 8 / 42
Beispiel Wie findet man ein maximales Matching in Bipartitem Graph? Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 9 / 42
Beispiel Wie findet man ein maximales Matching in Bipartitem Graph? Lösung: Zurückführen auf maximalen Fluss Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 9 / 42
Beispiel Wie findet man ein maximales Matching in Bipartitem Graph? Lösung: Zurückführen auf maximalen Fluss Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 9 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Maximales Matching Flussgraph Residualgraph Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 10 / 42
Laufzeit Ford-Fulkerson: O( E f ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 11 / 42
Laufzeit Ford-Fulkerson: O( E f ) f : maximaler Fluss Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 11 / 42
Laufzeit Ford-Fulkerson: O( E f ) f : maximaler Fluss in Bipartitem Graph: f = V Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 11 / 42
Laufzeit Ford-Fulkerson: O( E f ) f : maximaler Fluss in Bipartitem Graph: f = V Maximales Matching in O( V E ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 11 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Stabiles Heiraten Quellen Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 12 / 42
Minimales Vertex Cover Vertex Cover Ein Vertex Cover U V ist eine Menge von Knoten, wobei jede Kante an einem Knoten aus U liegt. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 13 / 42
Minimales Vertex Cover Vertex Cover Ein Vertex Cover U V ist eine Menge von Knoten, wobei jede Kante an einem Knoten aus U liegt. Minimal Ein Vertex Cover ist minimal, wenn es kein Vertex Cover mit weniger Knoten gibt. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 13 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Solange sich T vergrößert: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Solange sich T vergrößert: Gehe auf Kanten / M nach rechts Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Solange sich T vergrößert: Gehe auf Kanten / M nach rechts Gehe auf Kanten M nach links Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Solange sich T vergrößert: Gehe auf Kanten / M nach rechts Gehe auf Kanten M nach links Füge alle erreichten Knoten zu T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Solange sich T vergrößert: Gehe auf Kanten / M nach rechts Gehe auf Kanten M nach links Füge alle erreichten Knoten zu T hinzu Minimales Vertex Cover U Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Solange sich T vergrößert: Gehe auf Kanten / M nach rechts Gehe auf Kanten M nach links Füge alle erreichten Knoten zu T hinzu Minimales Vertex Cover U = (L \ T ) (R T ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Bestimmen des minimalen VC Berechne maximales Matching M Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Solange sich T vergrößert: Gehe auf Kanten / M nach rechts Gehe auf Kanten M nach links Füge alle erreichten Knoten zu T hinzu Minimales Vertex Cover U = (L \ T ) (R T ) Alle nicht markierten Knoten aus L und alle markierten Knoten aus R Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 14 / 42
Beispiel Gesucht: minimales Vertex Cover Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 1. Berechne maximales Matching Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 1. Berechne maximales Matching Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 2. Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 2. Füge alle nicht am Matching beteiligten Knoten aus L zu Menge T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.1 Gehe auf Kanten / Matching nach rechts Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.1 Gehe auf Kanten / Matching nach rechts Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.3 Füge alle erreichten Knoten zu T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.3 Füge alle erreichten Knoten zu T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.2 Gehe auf Kanten Matching nach links Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.2 Gehe auf Kanten Matching nach links Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.3 Füge alle erreichten Knoten zu T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.3 Füge alle erreichten Knoten zu T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.1 Gehe auf Kanten / Matching nach rechts Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.1 Gehe auf Kanten / Matching nach rechts Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel 3.3 Füge alle erreichten Knoten zu T hinzu Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel T hat sich nicht vergrößert Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel T hat sich nicht vergrößert Minimales Vertex Cover: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Beispiel T hat sich nicht vergrößert Minimales Vertex Cover: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 15 / 42
Zusammenhang VC-Matching Satz von König In einem bipartiten Graphcn ist die Anzahl an Knoten in einem minimalem Vertex Cover gleich der Anzahl an Kanten in einem maximalen Matching. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 16 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Stabiles Heiraten Quellen Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 17 / 42
Assignment-Problem Arbeiter L und Aufträge R Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 18 / 42
Assignment-Problem Arbeiter L und Aufträge R Jeder Arbeiter kann jeden Auftrag bearbeiten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 18 / 42
Assignment-Problem Arbeiter L und Aufträge R Jeder Arbeiter kann jeden Auftrag bearbeiten Aber die jeweiligen Kosten variieren Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 18 / 42
Assignment-Problem Arbeiter L und Aufträge R Jeder Arbeiter kann jeden Auftrag bearbeiten Aber die jeweiligen Kosten variieren Gesamtkosten so gering wie möglich halten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 18 / 42
Ungarische Methode Löst das Assignment-Problem Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 19 / 42
Ungarische Methode Löst das Assignment-Problem Minimiert Gesamtkosten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 19 / 42
Ungarische Methode Löst das Assignment-Problem Minimiert Gesamtkosten Benutzt maximales Matching und minimales Vertex Cover Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 19 / 42
Ungarische Methode Löst das Assignment-Problem Minimiert Gesamtkosten Benutzt maximales Matching und minimales Vertex Cover Läuft in O(n 4 ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 19 / 42
Ungarische Methode Löst das Assignment-Problem Minimiert Gesamtkosten Benutzt maximales Matching und minimales Vertex Cover Läuft in O(n 4 ) Voraussetzung: nichtnegative Kantengewichte Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 19 / 42
Vorarbeiten Beispiel: WG-Putzplan Alfred Bertram Chris Dieter Esszimmer Fegen Geschirrspüler Hausmüll Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 20 / 42
Vorarbeiten Beispiel: WG-Putzplan Maximiere Prioritäten Alfred Bertram Chris Dieter Esszimmer Fegen Geschirrspüler Hausmüll Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 20 / 42
Vorarbeiten Beispiel: WG-Putzplan Maximiere Prioritäten Esszimmer Fegen Geschirrspüler Hausmüll Alfred -5-4 -6-6 Bertram -2 1-4 -5 Chris -3 2-1 -6 Dieter 1 0 1-3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 20 / 42
Vorarbeiten Beispiel: WG-Putzplan Maximiere Prioritäten E F G H A -5-4 -6-6 B -2 1-4 -5 C -3 2-1 -6 D 1 0 1-3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 20 / 42
Vorarbeiten 0.1 Addiere Betrag des kleinsten Wertes auf alle Werte E F G H A -5-4 -6-6 B -2 1-4 -5 C -3 2-1 -6 D 1 0 1-3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 21 / 42
Vorarbeiten 0.1 Addiere Betrag des kleinsten Wertes auf alle Werte E F G H A -5-4 -6-6 B -2 1-4 -5 C -3 2-1 -6 D 1 0 1-3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 21 / 42
Vorarbeiten 0.1 Addiere Betrag des kleinsten Wertes auf alle Werte E F G H A 1 2 0 0 B 4 7 2 1 C 3 8 5 0 D 7 6 7 3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 21 / 42
Vorarbeiten 0.2 Ziehe jede Zelle vom Maximum ab E F G H A 1 2 0 0 B 4 7 2 1 C 3 8 5 0 D 7 6 7 3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 21 / 42
Vorarbeiten 0.2 Ziehe jede Zelle vom Maximum ab E F G H A 1 2 0 0 B 4 7 2 1 C 3 8 5 0 D 7 6 7 3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 21 / 42
Vorarbeiten 0.2 Ziehe jede Zelle vom Maximum ab E F G H A 7 6 8 8 B 4 1 6 7 C 5 0 3 8 D 1 2 1 5 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 21 / 42
Algorithmus Zeilen-/Spaltenminimierung Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 22 / 42
Algorithmus Zeilen-/Spaltenminimierung Solange kein perfektes Matching gefunden wurde: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 22 / 42
Algorithmus Zeilen-/Spaltenminimierung Solange kein perfektes Matching gefunden wurde: Finde maximales Matching Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 22 / 42
Algorithmus Zeilen-/Spaltenminimierung Solange kein perfektes Matching gefunden wurde: Finde maximales Matching Bei perfektem Matching: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 22 / 42
Algorithmus Zeilen-/Spaltenminimierung Solange kein perfektes Matching gefunden wurde: Finde maximales Matching Bei perfektem Matching: Optimale Lösung gefunden Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 22 / 42
Algorithmus Zeilen-/Spaltenminimierung Solange kein perfektes Matching gefunden wurde: Finde maximales Matching Bei perfektem Matching: Optimale Lösung gefunden Finde minimales Vertex Cover des Matchings Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 22 / 42
Algorithmus Zeilen-/Spaltenminimierung Solange kein perfektes Matching gefunden wurde: Finde maximales Matching Bei perfektem Matching: Optimale Lösung gefunden Finde minimales Vertex Cover des Matchings Minimiere Kanten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 22 / 42
Ungarische Methode 1. Zeilen-/Spaltenminimierung E F G H A 7 6 8 8 B 4 1 6 7 C 5 0 3 8 D 1 2 1 5 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 23 / 42
Ungarische Methode 1. Zeilen-/Spaltenminimierung E F G H A 7 6 8 8-6 B 4 1 6 7-1 C 5 0 3 8-0 D 1 2 1 5-1 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 23 / 42
Ungarische Methode 1. Zeilen-/Spaltenminimierung E F G H A 1 0 2 2 B 3 0 5 6 C 5 0 3 8 D 0 1 0 4 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 23 / 42
Ungarische Methode 1. Zeilen-/Spaltenminimierung E F G H A 1 0 2 2 B 3 0 5 6 C 5 0 3 8 D 0 1 0 4-0 -0-0 -2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 23 / 42
Ungarische Methode 1. Zeilen-/Spaltenminimierung E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 23 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 24 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 24 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Perfekt? Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 24 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Perfekt? Nein. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 24 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Perfekt? Nein. Schritt 3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 24 / 42
Ungarische Methode 3. Finde minimales Vertex Cover E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 25 / 42
Ungarische Methode 3. Finde minimales Vertex Cover E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 25 / 42
Ungarische Methode 4. Minimiere Kanten E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 26 / 42
Ungarische Methode 4. Minimiere Kanten Suche Minimum in nicht überdeckten Zellen E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 26 / 42
Ungarische Methode 4. Minimiere Kanten Suche Minimum in nicht überdeckten Zellen E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 26 / 42
Ungarische Methode 4. Minimiere Kanten Subtrahiere Minimum in nicht überdeckten Zellen und addiere Minimum in doppelt überdeckten Zellen E F G H A 1 0 2 0 B 3 0 5 4 C 5 0 3 6 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 26 / 42
Ungarische Methode 4. Minimiere Kanten Subtrahiere Minimum in nicht überdeckten Zellen und addiere Minimum in doppelt überdeckten Zellen E F G H A 1 0 2 0 B 3 0 5 4-3 C 5 0 3 6-3 D 0 1 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 26 / 42
Ungarische Methode 4. Minimiere Kanten Subtrahiere Minimum in nicht überdeckten Zellen und addiere Minimum in doppelt überdeckten Zellen E F G H A 1 0 2 0 B 3 0 5 4-3 C 5 0 3 6-3 D 0 1 0 2 +3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 26 / 42
Ungarische Methode 4. Minimiere Kanten Subtrahiere Minimum in nicht überdeckten Zellen und addiere Minimum in doppelt überdeckten Zellen E F G H A 1 3 2 0 B 0 0 2 1 C 2 0 0 3 D 0 4 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 26 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 3 2 0 B 0 0 2 1 C 2 0 0 3 D 0 4 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 27 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 3 2 0 B 0 0 2 1 C 2 0 0 3 D 0 4 0 2 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 27 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 3 2 0 B 0 0 2 1 C 2 0 0 3 D 0 4 0 2 Perfektes Matching gefunden Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 27 / 42
Ungarische Methode 2. Finde maximales Matching E F G H A 1 3 2 0 B 0 0 2 1 C 2 0 0 3 D 0 4 0 2 Perfektes Matching gefunden Algorithmus terminiert Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 27 / 42
Ungarische Methode WG-Putzplan Esszimmer Fegen Geschirrspüler Hausmüll Alfred -5-4 -6-6 Bertram -2 1-4 -5 Chris -3 2-1 -6 Dieter 1 0 1-3 Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 28 / 42
Ungarische Methode WG-Putzplan Esszimmer Fegen Geschirrspüler Hausmüll Alfred -5-4 -6-6 Bertram -2 1-4 -5 Chris -3 2-1 -6 Dieter 1 0 1-3 Gesamtspaß wurde auf -5 maximiert Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 28 / 42
Laufzeit Zeilen-/Spaltenminimierung Solange kein perfektes Matching gefunden wurde: Finde maximales Matching Bei perfektem Matching: Optimale Lösung gefunden Finde minimales VC des Matchings Minimiere Kanten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 29 / 42
Laufzeit Zeilen-/Spaltenminimierung O(n 2 ) Solange kein perfektes Matching gefunden wurde: Finde maximales Matching Bei perfektem Matching: Optimale Lösung gefunden Finde minimales VC des Matchings Minimiere Kanten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 29 / 42
Laufzeit Zeilen-/Spaltenminimierung O(n 2 ) Solange kein perfektes Matching gefunden wurde: O(n 2 ) Finde maximales Matching Bei perfektem Matching: Optimale Lösung gefunden Finde minimales VC des Matchings Minimiere Kanten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 29 / 42
Laufzeit Zeilen-/Spaltenminimierung O(n 2 ) Solange kein perfektes Matching gefunden wurde: O(n 2 ) Finde maximales Matching O( V E ) Bei perfektem Matching: Optimale Lösung gefunden Finde minimales VC des Matchings Minimiere Kanten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 29 / 42
Laufzeit Zeilen-/Spaltenminimierung O(n 2 ) Solange kein perfektes Matching gefunden wurde: O(n 2 ) Finde maximales Matching O(n 3 ) Bei perfektem Matching: Optimale Lösung gefunden Finde minimales VC des Matchings Minimiere Kanten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 29 / 42
Laufzeit Zeilen-/Spaltenminimierung O(n 2 ) Solange kein perfektes Matching gefunden wurde: O(n 2 ) Finde maximales Matching O(n 3 ) Bei perfektem Matching: Optimale Lösung gefunden Finde minimales VC des Matchings O(n 2 ) Minimiere Kanten Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 29 / 42
Laufzeit Zeilen-/Spaltenminimierung O(n 2 ) Solange kein perfektes Matching gefunden wurde: O(n 2 ) Finde maximales Matching O(n 3 ) Bei perfektem Matching: Optimale Lösung gefunden Finde minimales VC des Matchings O(n 2 ) Minimiere Kanten O(n 2 ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 29 / 42
Laufzeit Zeilen-/Spaltenminimierung O(n 2 ) Solange kein perfektes Matching gefunden wurde: O(n 2 ) Finde maximales Matching O(n 3 ) Bei perfektem Matching: Optimale Lösung gefunden Finde minimales VC des Matchings O(n 2 ) Minimiere Kanten O(n 2 ) Gesamtlaufzeit O(n 5 ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 29 / 42
Optimierungen Verwenden des letzten Matchings verringert Laufzeit von Schritt 2 auf O(n 2 ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 30 / 42
Optimierungen Verwenden des letzten Matchings verringert Laufzeit von Schritt 2 auf O(n 2 ) Gesamt: O(n 4 ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 30 / 42
Optimierungen Verwenden des letzten Matchings verringert Laufzeit von Schritt 2 auf O(n 2 ) Gesamt: O(n 4 ) Komplexe Implementierung in O(n 3 ) existiert Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 30 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Stabiles Heiraten Quellen Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 31 / 42
Stabiles Heiraten Zwei zu verheiratende Gruppen: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 32 / 42
Stabiles Heiraten Zwei zu verheiratende Gruppen: Alfred Bertram Chris Dieter Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 32 / 42
Stabiles Heiraten Zwei zu verheiratende Gruppen: Alfred Bertram Chris Dieter Elke Frauke Gertrud Hannah Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 32 / 42
Stabiles Heiraten Prioritätslisten von jeder Person: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 33 / 42
Stabiles Heiraten Prioritätslisten von jeder Person: Alfred Bertram Chris Dieter Elfriede Hannah Elfriede Elfriede Gertrud Gertrud Hannah Hannah Frauke Elfriede Gertrud Gertrud Hannah Frauke Frauke Frauke Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 33 / 42
Stabiles Heiraten Prioritätslisten von jeder Person: Alfred Bertram Chris Dieter Elfriede Hannah Elfriede Elfriede Gertrud Gertrud Hannah Hannah Frauke Elfriede Gertrud Gertrud Hannah Frauke Frauke Frauke Elfriede Frauke Gertrud Hannah Chris Chris Bertram Dieter Bertram Bertram Chris Chris Dieter Dieter Alfred Bertram Alfred Alfred Dieter Alfred Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 33 / 42
Stabiles Heiraten Instabil Es gibt eine Person A, die eine andere Person B mehr mag als ihren Partner und Person B mag Person A mehr als ihren Partner Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 34 / 42
Stabiles Heiraten Instabil Es gibt eine Person A, die eine andere Person B mehr mag als ihren Partner und Person B mag Person A mehr als ihren Partner Ziel: Paare so bilden, dass sie zusammenbleiben (nicht instabil sind). Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 34 / 42
1. Tag Männer machen ihren ersten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 35 / 42
1. Tag Männer machen ihren ersten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 35 / 42
1. Tag Männer machen ihren ersten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 35 / 42
1. Tag Männer machen ihren ersten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 35 / 42
1. Tag Männer machen ihren ersten Prioritäten einen Antrag. Frauen suchen ihre höchsten Prioritäten aus. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 35 / 42
1. Tag Männer machen ihren ersten Prioritäten einen Antrag. Frauen suchen ihre höchsten Prioritäten aus. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 35 / 42
1. Tag Männer machen ihren ersten Prioritäten einen Antrag. Frauen suchen ihre höchsten Prioritäten aus. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 35 / 42
1. Tag Männer machen ihren ersten Prioritäten einen Antrag. Frauen suchen ihre höchsten Prioritäten aus. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 35 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
2. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 36 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
3. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 37 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
4. Tag Noch freie Männer machen ihren nächsten Prioritäten einen Antrag. Frauen wechseln bei besseren Aussichten Mann. Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 38 / 42
Analyse Terminierung: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 39 / 42
Analyse Terminierung: Spätestens wenn jeder Mann alle Anträge gemacht hat Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 39 / 42
Analyse Terminierung: Spätestens wenn jeder Mann alle Anträge gemacht hat Laufzeit: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 39 / 42
Analyse Terminierung: Spätestens wenn jeder Mann alle Anträge gemacht hat Laufzeit: O(n 2 ) Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 39 / 42
Analyse Terminierung: Spätestens wenn jeder Mann alle Anträge gemacht hat Laufzeit: O(n 2 ) Stabilität: Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 39 / 42
Analyse Terminierung: Spätestens wenn jeder Mann alle Anträge gemacht hat Laufzeit: O(n 2 ) Stabilität: Jeder Mann bekommt die schlechtmöglichste Frau Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 39 / 42
Analyse Terminierung: Spätestens wenn jeder Mann alle Anträge gemacht hat Laufzeit: O(n 2 ) Stabilität: Jeder Mann bekommt die schlechtmöglichste Frau Jede Frau bekommt den bestmöglichen Mann Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 39 / 42
Analyse Terminierung: Spätestens wenn jeder Mann alle Anträge gemacht hat Laufzeit: O(n 2 ) Stabilität: Jeder Mann bekommt die schlechtmöglichste Frau Jede Frau bekommt den bestmöglichen Mann Eine Gruppe wird benachteiligt: Antragsteller Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 39 / 42
Gliederung Einführung Maximales Matching Minimales Vertex Cover Ungarische Methode Stabiles Heiraten Quellen Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 40 / 42
Quellen Cormen/Leiserson/Rivest: Introduction to Algorithms Kolman/Beck: Elementary Linear Programming with Applications Numberphile: Stable Marriage Problem Topcoder: Assignment Problem and Hungarian Algorithm Vergangene Hallo Welt Vorträge: Jana Martschinke: Flüsse, Schnitte, bipartite Graphen I Lukas Dresel: Flüsse, Schnitte, bipartite Graphen II Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 41 / 42
Das wars! Fragen? Fragen! Jonathan Hacker Flüsse, Schnitte, Bipartite Graphen II 06.06.2016 42 / 42