Kombinatorische Optimierung - Juniorprof. Dr. Henning

Werbung
Kombinatorische Optimierung
Juniorprof. Dr. Henning Meyerhenke
Institut für Theoretische Informatik – Paralleles Rechnen
1
KIT –Henning
Universität desMeyerhenke:
Landes Baden-Württemberg und
nationales
Forschungszentrum in
der Helmholtz-Gemeinschaft
Kombinatorische
Optimierung
Institut für Theoretische Informatik
www.kit.edu
Paralleles
Rechnen
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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Der Algorithmus von Kuhn und
Munkres
Algorithm 1 Berechnung eines Matchings mit maximalem Gewicht
1: function M AXIMUM W EIGHT M ATCHING (Vollst. bip. Graph G = (V1 ∪
V2 , E ), Gew.fkt. w)
. berechnet MWM M für G mit |V1 | = |V2 |
2:
for all v ∈ V1 do l (v ) = maxu ∈V2 w (v , u )
3:
end for
4:
for all u ∈ V2 do l (u ) = 0
5:
end for
. Inititale Knotenmarkierung fertig
6:
Sei Hl der von l induzierte Kantenteilgraph mit Kantenmenge El
7:
M = M AXIMUM M ATCHING(Hl , ∅)
8:
while ∃ Knoten x ∈ V1 , der in M nicht saturiert ist do
9:
[Hl , l, M] = H ANDLE U NSATURATED(Hl , l, M, x)
10:
end while
3
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Nicht-perfektes Matching behandeln
Algorithm 2 Unterfunktion zur Behandlung unsaturierter Knoten
1: function H ANDLE U NSATURATED(Kantenteilgraph Hl , KM l,
Matching M, Wurzelknoten x)
2:
repeat
3:
[P, T] = AUGMENTING PATH I N T REE(Hl , M, x)
4:
if |P | > 0 then Augmentiere M entlang P
5:
else
6:
ml = min{l (v ) + l (u ) − w (u , v ) | v ∈ V1 ∩ T , u ∈ V2 \ T }
7:
l (v ) = l (v ) − ml für alle v ∈ V1 ∩ T
8:
l (u ) = l (u ) + ml für alle u ∈ V2 ∩ T
9:
Konstruiere neues Hl anhand von l
10:
end if
11:
until |P | > 0
12:
return [Hl , l, M]
4
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Beispiel
5
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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 )
H ANDLE U NSATURATED : Warum O(|V |3 )?
6
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Korrektheit
Theorem
Sei l eine zulässige Knotenmarkierung von G = (V1 ∪ V2 , E ). Falls der
Graph Hl ein perfektes Matching M 0 enthält, dann ist M 0 ein MWM
(maximum weight matching) in G.
Theorem
Sei G = (V1 ∪ V2 , E ) ein vollständiger gewichteter bipartiter Graph.
Dann findet der Algorithmus M AXIMUM W EIGHT M ATCHING
(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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Diskussion des Algorithmus
Bemerkung
Der Algorithmus M AXIMUM W EIGHT M ATCHING kann so modifiziert
werden, dass er das gleiche Problem mit einer Laufzeit von O(n3 ) löst.
Bemerkung
Es gibt deutlich schnellere Approximationsalgorithmen für MWM auf
allgemeinen Graphen.
Diese behandeln wir später.
8
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Inhalt
Matchings in Graphen
Matchings in allgemeinen Graphen
Berechnung eines größtmöglichen Matchings
9
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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 n2 Augmentierungen sind möglich.
Effiziente Suche nach solchen Pfaden liefert „guten“ Algorithmus.
10
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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 n2 Augmentierungen sind möglich.
Effiziente Suche nach solchen Pfaden liefert „guten“ Algorithmus.
Algorithmus M AXIMUM M ATCHING ist in allgemeinen Graphen nicht
anwendbar.
Grund: Mögliche Existenz von Kreisen ungerader Länge.
10
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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 ha, b, c , d , x i hervorgerufen wird.
11
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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
h u , a, c , f , e , d , b , x i .
17
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Skizze von Edmonds’ Algorithmus (1)
Berechnung größtmöglicher Matchings in allgemeinen Graphen
Algorithm 3 Berechnung eines augmentierenden Pfades
1: function G ENERAL AUGMENTING PATH (Graph G = (V , E ), Matching
M, Startknoten u)
. Berechnet einen M-augmentierenden Pfad in G von u aus (falls er existiert).
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
18
. S speichert u und Knoten, die durch Kanten von M erreicht werden.
S = {u};
T =∅
Setze alle Knoten auf „unmarkiert“
while S enthält nicht markierten Knoten do
x = nächster unmarkierter Knoten aus S
S = S \{x }
for all y ∈ N (x ) mit y ∈
/ T do
if y wird von M nicht saturiert then
Expandiere den Pfad hu , . . . , x i, um M damit zu erweitern
return vergrößertes M
end if
. Fortsetzung auf nächster Folie =0
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
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:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Komplexität
Fragen und Hinweise:
Was fehlt noch für Algorithmus G ENERAL M AXIMUM M ATCHING?
20
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Komplexität
Fragen und Hinweise:
Was fehlt noch für Algorithmus G ENERAL M AXIMUM M ATCHING?
Die Algorithmus-Beschreibung ist nur eine grobe Skizze.
⇒ Keine genaue Analyse!
Der Original-Algorithmus von Edmonds hat eine Laufzeit von O(n4 ).
Die Implementierung im Buch von Ahuja, Magnanti und Orlin benötigt
nur O(n3 ) Schritte.
Der schnellste Algorithmus, der das M AXIMUM M ATCHING
√ P ROBLEM
in allgemeinen Graphen löst, hat eine Laufzeit von O( n · m ).
20
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Herunterladen