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 16 Programm: Einführung in Approximation Absolute Güte: Kantenfärbung Relative Güte: Matchings mit maximalem Gewicht 2 Henning Meyerhenke:
Wiederholung Abschluss lineare Optimierung mit primal-dualem Algorithmus für MINVERTEXCOVER Bewiesen: Lösung des Algorithmus fast so gut wie das Optimum Ziel: Formalisierung dieses Konzepts Zusätzliche Literatur: Rolf Wanka: Approximationsalgorithmen. Eine Einführung. Teubner-Verlag, 2006. 3 Henning Meyerhenke:
Inhalt Approximation Absolute Güte Relative Güte 4 Henning Meyerhenke:
Approximation und absolute Güte Definition Bezeichne Π ein Optimierungsproblem. Ein Algorithmus A heißt Approximationsalgorithmus mit absoluter Güte α, 1 wenn A zu jeder Instanz I von Π eine zulässige (aber nicht notwendigerweise optimale) Lösung mit R A (I) α berechnet, wobei R A (I) := Alg(I) OPT (I), falls Π Minimierungsproblem, R A (I) := OPT (I) A(I), falls Π Maximierungsproblem. Hier bezeichnen A(I) den Wert der Lösung, die A für I berechnet und OPT (I) den Wert einer optimalen Lösung für I. 1 Manchmal sagt man stattdessen, dass der Algorithmus eine Güte α garantiert. 5 Henning Meyerhenke:
Beispielproblem Kantenfärbung Definition Gegeben sei ein Graph G = (V, E). Eine Abbildung c E : E N heißt Kantenfärbung 2 von G, falls für alle zu einem Knoten u inzidenten Kanten {u, v}, {u, w} gilt: c E ({u, v}) = c E ({u, w}) Beispiel Siehe Tafel! 2 manchmal auch: korrekte oder zulässige Kantenfärbung 6 Henning Meyerhenke:
Kantenfärbung als Optimierungsproblem Problem Gegeben sei ein Graph G = (V, E). Finde eine Kantenfärbung für G mit minimaler Anzahl Farben! Definition Die kleinstmögliche Anzahl Farben in einer Kantenfärbung eines Graphen G heißt auch chromatischer Index χ (G) von G. 7 Henning Meyerhenke:
Komplexität und Lösungseigenschaften Bemerkung Die Entscheidungsprobleme Ist der Graph G mit k 3 Farben kantenfärbbar? Ist der Graph G mit (G) Farben kantenfärbbar? sind für allgemeine Graphen N P-vollständig. Bemerkung Es gibt Graphen G, die mindestens (G) + 1 Farben zur Kantenfärbung benötigen. 8 Henning Meyerhenke:
Approximationsalgorithmus für Kantenfärbung Graphentheoretische Hinführung Theorem Jeder Graph G braucht mindestens (G) und höchstens (G) + 1 Farben für eine Kantenfärbung. Anders ausgedrückt: (G) χ (G) (G) + 1. Beweis. Mindestens (G) Farben: Klar. Für Rest: Angabe eines Algorithmus, der höchstens (G) + 1 Farben benötigt. 9 Henning Meyerhenke:
Hilfsergebnis Graphentheoretische Hinführung Definition An einem Knoten v fehlt die Farbe c, wenn keine zu v inzidente Kante die Farbe c hat. Lemma Sei G kantengefärbt mit den Farben {1,..., (G) + 1}. Ferner seien u und v Knoten mit {u, v} / E und deg(u), deg(v) < (G). Dann kann G so umgefärbt werden, dass an u und v dieselbe Farbe fehlt. 10 Henning Meyerhenke:
Beweis des Lemmas Beweis. An u fehle Farbe s, an v fehle Farbe c 1. Ziel: c 1 soll auch an u fehlen. Konstruieren Knotenfolge (v 1,..., v h ) von Nachbarn von u und Farbenfolge (c 1,..., c h+1 ) mit: Kante {u, v i } ist mit c i gefärbt und an v i fehlt c i+1. Algorithmus dafür: Siehe Tafel! 11 Henning Meyerhenke:
Beweis des Lemmas Beweis. An u fehle Farbe s, an v fehle Farbe c 1. Ziel: c 1 soll auch an u fehlen. Konstruieren Knotenfolge (v 1,..., v h ) von Nachbarn von u und Farbenfolge (c 1,..., c h+1 ) mit: Kante {u, v i } ist mit c i gefärbt und an v i fehlt c i+1. Algorithmus dafür: Siehe Tafel! Die Nachbarn von u sind nun in der passenden Reihenfolge bzgl. der o.g. Folgen nummeriert. 11 Henning Meyerhenke:
Fortsetzung des Beweises Beweis. while-schleife hat (G) 1 Iterationen (wg. Voraussetzung gilt: deg(v) < (G)). Abbruch der Schleife: 1. Es gibt keine zu u inzidente Kante, die mit c h+1 gefärbt ist. Dann: Zyklisches Verschieben der Farben (Kante (u, v i ) wird mit c i+1 gefärbt), c 1 wird frei an u und an v. 2. Es gibt eine Kante {u, v j } mit c j = c h+1... Rest: Heimlektüre. 12 Henning Meyerhenke:
Algorithmus zur Kantenfärbung Approximation des chromatischen Indexes mit absoluter Güte 1 Algorithm 1 Kantenfärbung mit absoluter Güte 1 1: function EDGECOLORING(G = (V, E)) 2: if E == 0 then 3: return 4: else 5: Wähle eine beliebige Kante {u, v} E 6: G = G \ {u, v} 7: EDGECOLORING(G ) 8: Nach Rückkehr aus Rekursion ist G mit (G ) + 1 Farben gefärbt. 9: if (G ) < (G) then 10: Färbe {u, v} mit der kleinstmöglichen an u und v fehlenden Farbe 11: else 12: Färbe {u, v} gemäß des Lemmas so um, dass an u und v dieselbe Farbe c fehlt und färbe {u, v} mit c 13: end if 14: end if 13 Henning Meyerhenke:
Eigenschaften des Algorithmus Theorem Algorithmus EDGECOLORING kann in Zeit O( V E ) ausgeführt werden und garantiert absolute Güte 1. Beweis. Güte folgt aus Lemma, dort wird eine Farbe mehr als der Knotengrad benötigt. Laufzeit: Übung. 14 Henning Meyerhenke:
Inhalt Approximation Absolute Güte Relative Güte 15 Henning Meyerhenke:
Approximation und relative Güte Definition Bezeichne Π ein Optimierungsproblem. Ein Algorithmus A heißt α-approximationsalgorithmus, 3 wenn A zu jeder Instanz I von Π eine zulässige (aber nicht notwendigerweise optimale) Lösung mit R A (I) α berechnet, wobei R A (I) := Alg(I)/OPT (I), falls Π Minimierungsproblem, R A (I) := OPT (I)/A(I), falls Π Maximierungsproblem. Hier bezeichnen A(I) den Wert der Lösung, die A für I berechnet und OPT (I) den Wert einer optimalen Lösung für I. 3 oder Approximationsalgorithmus, der relative Güte α garantiert 16 Henning Meyerhenke:
Beispielproblem Matchings mit maximalem Gewicht in allgemeinen Graphen Der beste exakte MWM-Algorithmus in allgemeinen Graphen hat eine Laufzeit von O( n m). Ziel: Bessere Laufzeit bei geringen Qualitätseinbußen. 17 Henning Meyerhenke:
Beispielproblem Matchings mit maximalem Gewicht in allgemeinen Graphen Der beste exakte MWM-Algorithmus in allgemeinen Graphen hat eine Laufzeit von O( n m). Ziel: Bessere Laufzeit bei geringen Qualitätseinbußen. Algorithm 3 Berechnung eines gewichteten Matchings mit Güte 2 1: function GREEDYAPPROXMWM(G = (V, E, w)) 2: Sortiere E absteigend nach Gewicht: E = {e 1,..., e m }, w(e i ) w(e j ) i < j 3: M = 4: while E = do 5: Nehme nächste Kante e = (u, v) aus E und füge diese in M ein 6: Entferne alle Kanten aus E, die zu u oder v inzident sind 7: end while 8: return M 17 Henning Meyerhenke:
Beispielproblem Eigenschaften des Greedy-Algorithmus Theorem Sei G = (V, E) ein Graph mit nicht-negativen Kantengewichten und sei M ein Matching mit maximalem Gewicht in G. GREEDYAPPROXMWM berechnet ein Matching M mit w(m ) 2w(M) in Zeit O(m log m). 18 Henning Meyerhenke:
Beispielproblem Eigenschaften des Greedy-Algorithmus Theorem Sei G = (V, E) ein Graph mit nicht-negativen Kantengewichten und sei M ein Matching mit maximalem Gewicht in G. GREEDYAPPROXMWM berechnet ein Matching M mit w(m ) 2w(M) in Zeit O(m log m). Beweis. Laufzeit: Klar. Bleibt noch: Güte. Die als erstes gewählte Kante e = {u, v} ist schwerste Kante in G. Beim Löschen von e und aller inzidenten Kanten werden höchstens zwei Kanten e und e von M entfernt. Es gilt: w(e ) + w(e ) 2w(e). Rest: Übung. 18 Henning Meyerhenke:
Linearzeit-Algorithmus mit Güte 2 Algorithm 4 Linearzeit-Berechnung eines MWM mit Güte 2 1: function PATHGROWINGMWM(G = (V, E, w)) 2: M 1 = ; M 2 = ; i = 1 3: while E = do 4: Wähle x V mit deg(x) > 0 beliebig 5: while x hat Nachbar in G do 6: Sei {x, y} die schwerste zu x inzidente Kante 7: Füge {x, y} zu M i hinzu 8: Entferne x aus G 9: i = 3 i 10: x = y 11: end while 12: end while 13: return argmax(w(m 1 ), w(m 2 )) 19 Henning Meyerhenke:
Linearzeit-Algorithmus mit Güte 2 Algorithm 5 Linearzeit-Berechnung eines MWM mit Güte 2 1: function PATHGROWINGMWM(G = (V, E, w)) 2: M 1 = ; M 2 = ; i = 1 3: while E = do 4: Wähle x V mit deg(x) > 0 beliebig 5: while x hat Nachbar in G do 6: Sei {x, y} die schwerste zu x inzidente Kante 7: Füge {x, y} zu M i hinzu 8: Entferne x aus G 9: i = 3 i 10: x = y 11: end while 12: end while 13: return argmax(w(m 1 ), w(m 2 )) Beispiel: Siehe Tafel! 19 Henning Meyerhenke:
Eigenschaften von PATHGROWINGMWM Theorem Sei G = (V, E) ein Graph mit nicht-negativen Kantengewichten und sei M ein Matching mit maximalem Gewicht in G. PATHGROWINGMWM berechnet ein Matching M mit w(m ) 2w(M) in Zeit O(m). 20 Henning Meyerhenke:
Eigenschaften von PATHGROWINGMWM Theorem Sei G = (V, E) ein Graph mit nicht-negativen Kantengewichten und sei M ein Matching mit maximalem Gewicht in G. PATHGROWINGMWM berechnet ein Matching M mit w(m ) 2w(M) in Zeit O(m). Beweis der Laufzeit. Jeder Knoten wird höchstens einmal in der while-schleife bearbeitet. Die schwerste zu einem Knoten x inzidente Kante kann man in O(deg(x)) finden und entfernen. Pfade nur von Kanten starten keine Knoten mit Grad 0. Zahl der Knoten mit Grad mindestens 1 ist O( E ). Gesamtlaufzeit Summe der Knotengrade in V : O( E ). 20 Henning Meyerhenke:
Beweis der Güte von PATHGROWINGMWM Beweis der Güte. Vaterknoten für jede Kante: Immer wenn ein Knoten x entfernt wird, werden alle noch zu x inzidenten Kanten an x zugewiesen. So wird jede Kante von G genau einem Knoten von G zugewiesen. Betrachten MWM M von G: Alle Kanten von M werden an verschiedene Knoten von G zugewiesen (wg. Matching-Eigenschaft). 21 Henning Meyerhenke:
Beweis der Güte von PATHGROWINGMWM Beweis der Güte. Vaterknoten für jede Kante: Immer wenn ein Knoten x entfernt wird, werden alle noch zu x inzidenten Kanten an x zugewiesen. So wird jede Kante von G genau einem Knoten von G zugewiesen. Betrachten MWM M von G: Alle Kanten von M werden an verschiedene Knoten von G zugewiesen (wg. Matching-Eigenschaft). In jedem Schritt des Algorithmus wird die aktuell schwerste Kante, die zu x inzident ist, in Zeile 6 gewählt und zu M 1 oder M 2 hinzugefügt. w(m 1 M 2 ) w(m) max{w(m 1 ), w(m 2 )} 1 2 w(m 1 M 2 ) 1 2 w(m) 21 Henning Meyerhenke:
Zusammenfassung Exakter Algorithmus zu langsam? Approximationsalgorithmus! Absolute und relative Güte Algorithmen: Kantenfärbung mit absoluter Güte 1 MWM mit relativer Güte 2 Hinweis: MWM kann noch besser in Linearzeit approximiert werden 22 Henning Meyerhenke: