Kombinatorische Optimierung

Ähnliche Dokumente
Kombinatorische Optimierung

Kombinatorische Optimierung

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Algorithmen II Vorlesung am

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmen II Vorlesung am

1.Aufgabe: Minimal aufspannender Baum

Kombinatorische Optimierung

Überblick. Kap. 1.4: Minimum Weight Perfect Matching. 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität.

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens

Algorithmen für Planare Graphen

Graphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007

Bipartite Graphen. Beispiele

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode.

Maximale s t-flüsse in Planaren Graphen

Algorithmische Methoden zur Netzwerkanalyse

Effiziente Algorithmen I

Effiziente Algorithmen I

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Das Heiratsproblem. Definition Matching

Algorithmen und Datenstrukturen 2

Algorithmische Methoden zur Netzwerkanalyse

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke

Übung 2 Algorithmen II

Matching. Organisatorisches. VL-18: Matching. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger. Tanzabend

Betriebswirtschaftliche Optimierung

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Übung 5 Algorithmen II

Betriebliche Optimierung

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem

3. Musterlösung. Problem 1: Boruvka MST

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Algorithmische Methoden zur Netzwerkanalyse

Bäume und Wälder. Definition 1

Bäume und Wälder. Definition 1

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Graphen und Algorithmen

Berechnung von Abständen

Algorithmische Graphentheorie

2. Das single-source-shortest-path-problem

Vorlesung 2 KÜRZESTE WEGE

4.7 Der Algorithmus von Dinic für maximalen Fluss

Algorithmische Graphentheorie

Funktioniert der Greedy-Algorithmus auch für Briefmarken aus Manchukuo?

7. Der Entwurf von Algorithmen (Fortsetzung)

3.2 Generischer minimaler Spannbaum-Algorithmus

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Das Briefträgerproblem

Effizienter Planaritätstest Vorlesung am

5. Bäume und Minimalgerüste

Skript zur Vorlesung Graphenalgorithmen

FLÜSSE, SCHNITTE UND - TEIL 2 - BIPARTITE GRAPHEN. Vortrag im Seminar Hallo Welt Für Fortgeschrittene Dozenten: Werth, T. & Brinkers, D.

Flüsse, Schnitte, bipartite Graphen

Kombinatorische Optimierung

Wiederholung zu Flüssen

Optimierung. Optimierung. Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung Fabian Kuhn

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kombinatorische Optimierung

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Flüsse, Schnitte, Bipartite Graphen II

10. Übung Algorithmen I

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Algorithmische Graphentheorie

Vorlesung 2 KÜRZESTE WEGE

durch Einfügen von Knoten konstruiert werden kann.

Relationen und DAGs, starker Zusammenhang

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Algorithmen und Datenstrukturen 2

Algorithmen zur Visualisierung von Graphen

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmen & Komplexität

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

Studientag zur Algorithmischen Mathematik

Transkript:

Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Vorlesung 4 Programm des Tages: Matchings in allgemeinen Graphen Berechnen größtmöglicher Matchings Zusätzliche Literatur: D. West: Introduction to Graph Theory. 2 Henning Meyerhenke:

Der Algorithmus von Kuhn und Munkres Algorithm 1 Berechnung eines Matchings mit maximalem Gewicht 1: function MAXIMUMWEIGHTMATCHING(Vollst. bip. Graph G = (V 1 V 2, E), Gew.fkt. w) berechnet MWM M für G mit V 1 = V 2 2: for all v V 1 do l(v) = max u V2 w(v, u) 3: end for 4: for all u V 2 do l(u) = 0 5: end for Inititale Knotenmarkierung fertig 6: Sei H l der von l induzierte Kantenteilgraph mit Kantenmenge E l 7: M = MAXIMUMMATCHING(H l, ) 8: while Knoten x V 1, der in M nicht saturiert ist do 9: [H l, l, M] = HANDLEUNSATURATED(H l, l, M, x) 10: end while 3 Henning Meyerhenke:

Nicht-perfektes Matching behandeln Algorithm 2 Unterfunktion zur Behandlung unsaturierter Knoten 1: function HANDLEUNSATURATED(Kantenteilgraph H l, KM l, Matching M, Wurzelknoten x) 2: repeat 3: [P, T] = AUGMENTINGPATHINTREE(H l, M, x) 4: if P > 0 then Augmentiere M entlang P 5: else 6: m l = min{l(v) + l(u) w(u, v) v V 1 T, u V 2 \ T } 7: l(v) = l(v) m l für alle v V 1 T 8: l(u) = l(u) + m l für alle u V 2 T 9: Konstruiere neues H l anhand von l 10: end if 11: until P > 0 12: return [H l, l, M] 4 Henning Meyerhenke:

Beispiel 5 Henning Meyerhenke:

Zeitkomplexität Hinweis: Bezogen auf Alg. 1 und alle Ausführungen der jeweiligen Zeile: 2: O( V 2 ), denn das schwerste Kantengewicht muss (pro Knoten) gesucht werden 4: O( V ) 7: O( V 3 ) 8: O( V ) 9: O( V 4 ), denn O( V 3 ) pro Aufruf, O( V ) Aufrufe 6 Henning Meyerhenke:

Zeitkomplexität Hinweis: Bezogen auf Alg. 1 und alle Ausführungen der jeweiligen Zeile: 2: O( V 2 ), denn das schwerste Kantengewicht muss (pro Knoten) gesucht werden 4: O( V ) 7: O( V 3 ) 8: O( V ) 9: O( V 4 ), denn O( V 3 ) pro Aufruf, O( V ) Aufrufe Gesamtlaufzeit: O( V 4 ) HANDLEUNSATURATED: Warum O( V 3 )? 6 Henning Meyerhenke:

Korrektheit Theorem Sei l eine zulässige Knotenmarkierung von G = (V 1 V 2, E). Falls der Graph H l ein perfektes Matching M enthält, dann ist M ein MWM (maximum weight matching) in G. Theorem Sei G = (V 1 V 2, E) ein vollständiger gewichteter bipartiter Graph. Dann findet der Algorithmus MAXIMUMWEIGHTMATCHING (auch Algorithmus von Kuhn und Munkres oder ungarischer Algorithmus genannt) ein Matching mit maximalem Gewicht in G. Bemerkung Der Beweis von Theorem 2 kann so modifiziert werden, dass auch reellwertige Kantengewichte zugelassen werden können. 7 Henning Meyerhenke:

Diskussion des Algorithmus Bemerkung Der Algorithmus MAXIMUMWEIGHTMATCHING kann so modifiziert werden, dass er das gleiche Problem mit einer Laufzeit von O(n 3 ) löst. Bemerkung Es gibt deutlich schnellere Approximationsalgorithmen für MWM auf allgemeinen Graphen. Diese behandeln wir später. 8 Henning Meyerhenke:

Inhalt Matchings in Graphen Matchings in allgemeinen Graphen Berechnung eines größtmöglichen Matchings 9 Henning Meyerhenke:

Größtmögliche Matchings Wir wissen: Ein Matching M hat in einem Graphen G genau dann maximale Größe, wenn es keinen M-augmentierenden Pfad in G gibt. Also: Sukzessive nach augmentierenden Pfaden suchen. Höchstens n 2 Augmentierungen sind möglich. Effiziente Suche nach solchen Pfaden liefert guten Algorithmus. 10 Henning Meyerhenke:

Größtmögliche Matchings Wir wissen: Ein Matching M hat in einem Graphen G genau dann maximale Größe, wenn es keinen M-augmentierenden Pfad in G gibt. Also: Sukzessive nach augmentierenden Pfaden suchen. Höchstens n 2 Augmentierungen sind möglich. Effiziente Suche nach solchen Pfaden liefert guten Algorithmus. Algorithmus MAXIMUMMATCHING ist in allgemeinen Graphen nicht anwendbar. Grund: Mögliche Existenz von Kreisen ungerader Länge. 10 Henning Meyerhenke:

Zyklen ungerader Länge Abbildung: Im dargestellten Graphen erreicht man x von u aus durch zwei M-alternierende Pfade. Dabei ist die letzte Kante des Pfades einmal saturiert und einmal unsaturiert, was durch den Zyklus ungerader Länge a, b, c, d, x hervorgerufen wird. 11 Henning Meyerhenke:

Zyklen ungerader Länge Abzweigungen (wie Knoten a) können nur dort entstehen, wo zwei Kanten abzweigen, die beide nicht zu M gehören. Von der Abzweigung aus gesehen (im Beispiel Knoten a) hat der Pfad zu x, der in der Matching-Kante endet, gerade Länge, der andere ungerade Länge. 12 Henning Meyerhenke:

Zyklen ungerader Länge strukturieren Von Blumen, Stämmen und Blüten Definition Sei M ein Matching in einem Graphen G und sei u ein Knoten von G, der durch M nicht saturiert wird. Eine Blume ist die Vereinigung zweier M-alternierender Pfade, die im Knoten u starten und einen Knoten x nach einer geraden und einer ungeraden Anzahl von Schritten erreichen. Der Stamm der Blume ist der maximale gemeinsame initiale Pfad (welcher nichtnegative gerade Länge hat). Die Blüte der Blume ist der Zyklus ungerader Länge, den man erhält, wenn man den Stamm aus der Blume löscht. 13 Henning Meyerhenke:

Blüten Ziel: Knoten z in der Blüte finden, der zu einem unsaturierten Knoten außerhalb der Blüte adjazent ist. Beobachtung Jeder Knoten z in einer Blüte kann von u aus auf einem M-alternierenden Pfad, der mit einer Matching-Kante endet, erreicht werden. 14 Henning Meyerhenke:

Blüten als Superknoten Beobachtung Die einzige Matching-Kante, die aus einer Blüte herausführt, ist Teil des Stamms. Corollary Wir können Blüten als einen Superknoten betrachten. Nach der entsprechenden Kontraktion können wir so von allen Knoten, die durch den Superknoten repräsentiert werden, gleichzeitig nach ungematchten inzidenten Kanten suchen. Kontraktion: Alle Knoten einer Blüte werden durch einen einzelnen Knoten ersetzt. Die Kanten innerhalb der Blüte verschwinden. Die Kanten nach außerhalb werden mit dem neuen Superknoten verbunden. 15 Henning Meyerhenke:

Ansatz und Beispiel Ansatz: Konstruiere alternierenden Baum von u aus und kontrahiere dabei Blüten, wenn sie erkannt werden. Passe dann den Baum an und setze seine Konstruktion fort. Abbildung: Beispiel für die Kontraktion bei der in u beginnenden Suche nach einem erweiternden Pfad. 16 Henning Meyerhenke:

Expansion eines erweiternden Pfades mit kontrahierten Blüten Angenommen, man findet nach Kontraktion(en) einen erweiternden Pfad. Dann: Sukzessive Kontraktionen rückgängig machen, um Pfad zu rekonstruieren. Abbildung: Beispiel für die Expansion des erweiternden Pfades u, a, c, f, e, d, b, x. 17 Henning Meyerhenke:

Skizze von Edmonds Algorithmus (1) Berechnung größtmöglicher Matchings in allgemeinen Graphen Algorithm 3 Berechnung eines augmentierenden Pfades 1: function GENERALAUGMENTINGPATH(Graph G = (V, E), Matching M, Startknoten u) Berechnet einen M-augmentierenden Pfad in G von u aus (falls er existiert). S speichert u und Knoten, die durch Kanten von M erreicht werden. 2: S = {u}; 3: T = 4: Setze alle Knoten auf unmarkiert 5: while S enthält nicht markierten Knoten do 6: x = nächster unmarkierter Knoten aus S 7: S = S\{x} 8: for all y N(x) mit y / T do 9: if y wird von M nicht saturiert then 10: Expandiere den Pfad u,..., x, um M damit zu erweitern 11: return vergrößertes M 12: end if Fortsetzung auf nächster Folie =0 18 Henning Meyerhenke:

Skizze von Edmonds Algorithmus (2) Berechnung größtmöglicher Matchings in allgemeinen Graphen Algorithm 4 Berechnung eines augmentierenden Pfades (Forts.) 13: if y S then Kontraktion der Blüte B 14: x = neuer Superknoten 15: Die Knoten von B in S und T durch x ersetzen 16: goto Zeile 8; 17: else y hat einen Matching-Partner w 18: Füge y in T und w in S ein 19: end if 20: end for 21: Setze x auf markiert 22: end while 19 Henning Meyerhenke:

Komplexität Fragen und Hinweise: Was fehlt noch für Algorithmus GENERALMAXIMUMMATCHING? 20 Henning Meyerhenke:

Komplexität Fragen und Hinweise: Was fehlt noch für Algorithmus GENERALMAXIMUMMATCHING? Die Algorithmus-Beschreibung ist nur eine grobe Skizze. Keine genaue Analyse! Der Original-Algorithmus von Edmonds hat eine Laufzeit von O(n 4 ). Die Implementierung im Buch von Ahuja, Magnanti und Orlin benötigt nur O(n 3 ) Schritte. Der schnellste Algorithmus, der das MAXIMUM MATCHING PROBLEM in allgemeinen Graphen löst, hat eine Laufzeit von O( n m). 20 Henning Meyerhenke: