1 Algorithmische Graphentheorie Sommersemester 2014 5. Vorlesung Matchings / Paarungen II – Kombinatorischer Algorithmus, Anwendung für Handlungsreisende, LP-Runden – Dr. Joachim Spoerhase Prof. Dr. Alexander Wolff 2-9 Alternierende und augmentierende Wege Ziel: Bsp. Besseres Problemverständnis → kombinatorische (d.h. nicht flussbasierte) Algorithmen für größte Matchings. W G = (V , E ) unger. Graph M ⊆ E Matching in G . Wie können wir ein gegebenes (nicht-größtes) Matching vergrößern? enthält abwechselnd M - und nicht-M -Kanten Finde einen (M -) alternierenden Weg W , dessen Endknoten M -frei sind. So ein Weg heißt (M -) augmentierend. Setze M 0 = W ∆M , wobei A∆B = (A ∪ B) \ (A ∩ B) 2-13 Alternierende und augmentierende Wege Ziel: Bsp. Besseres Problemverständnis → kombinatorische (d.h. nicht flussbasierte) Algorithmen für größte Matchings. W G = (V , E ) unger. Graph M ⊆ E Matching in G . Wie können wir ein gegebenes (nicht-größtes) Matching vergrößern? enthält abwechselnd M - und nicht-M -Kanten Finde einen (M -) alternierenden Weg W , dessen Endknoten M -frei sind. So ein Weg heißt (M -) augmentierend. Setze M 0 = W ∆M , wobei A∆B = (A ∪ B) \ (A ∩ B) Beob. – Augmentierende Wege haben ungerade Länge. – M 0 ist um 1 Kante größer als M (da M 0 zusätzlich die Endknoten von W paart). Satz. c Adrian Bondy Paris, 1990 Satz von Berge Sei G = (V , E ) Graph, M ⊆ E Matching in G . M ist ein größtes Matching in G ⇔ es gibt keinen M -augmentierenden Weg. 3 Claude Berge (1926–2002) Beweis. ⇒ Klar: jeder augm. Weg würde M vergrößern ⇐ Annahme: M ist kein größtes Matching. ⇒ Es gibt ein Matching M 0 mit |M 0 | > |M |. Betrachte G∆ = (V , M∆M 0 ). Beobachtung: Max-Grad(G∆ ) = 2. ⇒ G∆ besteht aus einfachen alt. Wegen und Kreisen. Alle Kreise in G∆ haben gerade Länge. ⇒ Ex. alt. Weg mit mehr Kanten aus M 0 als aus M . ⇒ Dieser Weg ist M -augm. 4 Zurück zu: größte Matchings in bip. Graphen Frage: Wie finden wir augmentierende Wege? B G0 A G = (A ∪ B , E ), M ⊆ E Idee: G 00 Richte M -Kanten nach unten, nicht-M -Kanten nach oben. Augmentierende Wege in G 00 G 0 = (A ∪ B , E 0 ) gerichtete Wege mit M -freien Endknoten in G 0 0 Definiere G = A ∪ B ∪ {s}, E ∪ {sa | a ∈ A, M -frei} Breitensuche BFS(G 00 , s ) erreicht einen M -freien Endknoten in B ⇔ G hat M -augm. Weg. 5 Ergebnis Algo: M := ∅. Führe BFS ≤ |V |/2 mal aus – bis kein freier Knoten in B mehr gefunden wird. Gib größtes Matching zurück. Satz. In einem bipartiten Graphen G = (V , E ) lässt sich in O (V E ) Zeit ein größtes Matching bestimmen. 6 Wiederholung – Tree-Doubling für ∆-TSP Problem: Metrisches Traveling Salesperson Problem (∆-TSP) Gegeben: unger. vollständiger Graph G = (V , E ) mit Kantenkosten c : E → R≥0 , die die Dreiecksungleichung erfüllen. Gesucht: Hamiltonkreis in G mit minimalen Kosten. Satz. Es gibt eine 2-Approximation für ∆-TSP. 1. Algorithmus Beweis. Berechne MSB von G . Verdopple MSB ⇒ eulersch! 2. Analyse Durchlaufe Eulerkreis. c (ALG) ≤ c (EK) = 2 · c (MSB) ≤ 2 · OPT Überspringe besuchte Knoten. Füge Abkürzungen“ ein. ” Opt. TSP-Tour minus eine Kante ist (i.A. nicht minimaler) Spannbaum!! Die Kunst der unteren Schranke“ 7-4 Christofides-Algorithmus Ermittle einen minimalen Spannbaum B für G Betrachte G [U ] mit U Menge der Knoten ungeraden Grades in B Ermittle kostenminimales perfektes Matching M für G [U ] (ex. da |U | gerade und G [U ] vollständig) M ist perfektes Matching mit minimalen Kosten c (M ) := P e ∈M c (e ) 7-5 Christofides-Algorithmus Ermittle einen minimalen Spannbaum B für G Betrachte G [U ] mit U Menge der Knoten ungeraden Grades in B Ermittle kostenminimales perfektes Matching M für G [U ] (ex. da |U | gerade und G [U ] vollständig) Berechne aus eulerschem Graphen B ∪ M erst Eulertour und dann eine Rundtour T wie bei Tree-Doubling 8 Analyse Christofides Satz. Christofides liefert eine 3/2-Approximation für ∆-TSP. Beweis. Genügt zu zeigen, dass c (B ∪ M ) ≤ 3/2 · OPT, da c (T ) ≤ c (B ∪ M ) Da c (B ) ≤ OPT genügt zu zeigen, dass c (M ) ≤ 1/2 · OPT Optimale Tour T ∗ durch Abkürzen Tour T auf G [U ] c (T ) ≤ c (T ∗ ) = OPT Zerlege in T in zwei disjunkte perfekte Matchings M , M 0 für G [U ] o.E. c (M ) ≤ c (M 0 ) c (M ) ≤ 1/2 · c (T ) ≤ 1/2 · OPT 9 Die Analyse ist scharf bn/2c MSB Matching Christofides mit Kosten n + bn/2c − 1 OPT = n (n + bn/2c − 1)/n → 3/2 unbeschriftete Kanten haben Länge 1 10 Kostenminimale perfekte Matchings Def. Gegeben sei ein vollständiger Graph G = (V , E ) mit Kantenkosten c : E → R≥0 . Gesucht ist ein perfektes MatchingPM mit minimalen Kosten c (M ) = e ∈M c (e ). Satz. Ein kostenminimales perfektes Matching kann in O (V 3 ) Zeit berechnet werden. Beweis. Siehe (Edmonds’65); ziemlich kompliziert Betrachten Problem in bipartiten Graphen G = (A ∪ B , E ) 11 Kostenminimale perfekte Matchings in bipartiten Graphen Aufgabe: Formulieren Sie ein ILP! 0.5 0.5 0.5 min X cuv xuv uv ∈E s.t. 0.5 x ≡ 0.5 X xuv = 1 u ∈A∪B uv ∈E xuv ∈ {0, 1} xuv ≥ 0 uv ∈ E Effizient lösbar? Betrachte sogenannte LP-Relaxierung Problem: fraktionale Lösungen effizient lösbar! 12 LP-Runden X min cuv xuv uv ∈E X s.t. xuv = 1 u ∈A∪B uv ∈E xuv ≥ 0 uv ∈ E Betrachte fraktionale Kante uv (d.h. 0 < xuv < 1) u und v sind jeweils zu weiterer fraktionaler Kante adjazent erweitere Pfad iterativ bis fraktionaler Kreis K = (u1 , . . . , u2k ) gefunden u2k Kreis gerade, da K Graph bipartit v (siehe ÜA) u u 1 13 LP-Runden – Fortsetzung (I) min X cuv xuv uv ∈E s.t. X xuv = 1 u ∈A∪B uv ∈E xuv ≥ 0 uv ∈ E zerlege K in disjunkte Matchings M1 , M2 o.E. c (M1 ) ≤ c (M2 ) − wähle := min{ xe | e ∈ M2 } + setze xe0 := xe + für xe ∈ M1 setze xe0 := xe − für xe ∈ M2 K xe0 := xe sonst Resultierender Lösungsvektor x0 zulässig − xe0 = 0 wird für ein e ∈ M2 Kostenänderung · c (M1 ) − · c (M2 ) ≤ 0 + + − + − 14 LP-Runden – Fortsetzung (II) min X cuv xuv uv ∈E s.t. X xuv = 1 u ∈A∪B uv ∈E xuv ≥ 0 uv ∈ E wiederhole vorige Schritte solange fraktionale Kanten existieren Beobachtung: Integrale Kanten werden nicht weiter verändert Kostenfunktion erhöht sich nicht Algorithmus terminiert nach ≤ |E | Iterationen mit ganzzahliger und optimaler (!) Lösung Satz. Ein kostenminimales perfektes Matching eines bipartiten Graphen lässt sich in Polynomialzeit ermitteln. 15 Extrempunkt-Lösungen min X cuv xuv uv ∈E s.t. X xuv = 1 u ∈A∪B uv ∈E xuv ≥ 0 uv ∈ E + − zerlege K in disjunkte Matchings M1 , M2 + − wähle := min{ xe | e ∈ M1 ∪ M2 } + − − 0 + setze xe := xe + für xe ∈ M1 K setze xe0 := xe − für xe ∈ M2 + − setze xe00 := xe − für xe ∈ M1 − + 00 setze xe := xe + für xe ∈ M2 − + xe00 = xe0 = xe sonst + − Lösungen x0 , x00 zulässig x = 12 (x0 + x00 ) x Konvexkombination von x0 , x00 16 Extrempunkt-Lösungen min X cuv xuv uv ∈E s.t. X xuv = 1 u ∈A∪B (1) uv ∈E xuv ≥ 0 x = 12 (x0 + x00 ) uv ∈ E x Konvexkombination von x0 , x00 x ist kein Extrempunkt des Lösungsraums (konvexes Polytop) von (1) x0 x Satz. Das Polytop (1) für bipartite x 00 x Matchings hat ganzzahlige Extrempunkte. Clou: Gängige LP-Algorithmen terminieren mit Extrempunkt-Lösungen (sofern existent) und erfordern für (1) kein anschließendes LP-Runden!! Extrempunkte