Approximationsalgorithmen TSP 57 • Euklidsches Rundreiseproblem (Fortsetzung): O.B.d.A. wird das Problem auf das Einheitsquadrat beschränkt. Streifenheuristik: Satz: Die Streifenheuristik liefert eine Tour T , für deren Länge gilt: √ √ √ T ≤ 2 n+1+ 2 TSP 58 Approximationsalgorithmen Partitionsalgorithmus von Karp (1977): Wähle Parameter s := log n log log n =⇒ s! ≤ n Satz: Der Partitionsalgorithmus liefert eine Tour T , für deren Länge gilt: T ≤ Opt + O v u u u u t n log n Approximationsalgorithmen Vertex Cover 59 Vertex Cover Problem • Vertex Cover (VC): gegeben: Graph (V, E) Problem: Finde eine minimale Knotenmenge C ⊆ V , sodass für jede Kante (i, j) entweder i ∈ C oder j ∈ C. Algorithmus Greedy 1: (Kantenauswahl) Cover C := ∅ while E 6= ∅ do wähle eine beliebige Kante e = (v, u) ∈ E C := C ∪ {v} E := E \ {e | e ist inzident zu v} end while Greedy 1 hat eine Gütegarantie von Ω(log n). Approximationsalgorithmen Vertex Cover 60 Verbesserung: Algorithmus Greedy 2: (Knotenauswahl) Cover C := ∅ while E 6= ∅ do wähle den Knoten v ∈ V mit maximalem Grad im aktuellen Graphen G C := C ∪ {v} E := E \ {e | e ist inzident zu v} end while Greedy 2 hat eine Gütegarantie von O(log n). Approximationsalgorithmen Vertex Cover 61 Verwendung von Randomisierung (systematische Zufallsentscheidung): Algorithmus Rand-Greedy 1: Cover C := ∅ while E 6= ∅ do wähle eine beliebige Kante e = (v, u) ∈ E mit P = 0.5 (fairer Münzwurf) wähle entweder C := C ∪ {v} oder C := C ∪ {u} E := E \ {e | e ist inzident zu dem gewähltem Knoten} end while Satz: Rand-Greedy 1 hat eine erwartete Gütegarantie von 2. Approximationsalgorithmen Vertex Cover 62 Verwendung eines Maximalen Matchings (MM): Algorithmus MM-Heuristik: Bestimme ein maximales Matching M ⊆ E for all e = (v, u) ∈ M C := C ∪ {v, u} Satz: MM-Heuristik liefert ein Vertex Cover des Graphen. Satz: MM-Heuristik hat eine scharfe Gütegarantie von 2. Approximationsalgorithmen Vertex Cover 63 Verwendung eines Depth First Search Trees (DFS): (Savage, 1982) Algorithmus DFS-Heuristik: Bestimme depth-first-search Suchbaum T auf G C := {v | dT (v) ≥ 2} d.h. C = alle Nicht-Blätter von T Satz: DFS-Heuristik hat eine scharfe Gütegarantie von 2. Approximationsalgorithmen Weighted Vertex Cover 64 Weighted Vertex Cover Problem gegeben: Graph (V, E) mit Knotengewichten w(v) ∀v ∈ V . Problem: Finde eine Knotenmenge C ⊆ V mit minimalem Gewicht, sodaß für jede Kante (i, j) entweder i ∈ C oder j ∈ C. Algorithmus W-Greedy 2: Cover C := ∅ while E 6= ∅ do wähle den Knoten v ∈ V mit maximalem Grad(v) w(v) im aktuellen Graphen G C := C ∪ {v} E := E \ {e | e ist inzident zu v} end while W-Greedy 2 hat eine Gütegarantie von O(log n). (Chvatal 1979) Weighted Vertex Cover 65 Approximationsalgorithmen Algorithmus W-Rand-Greedy: Cover C := ∅ while E 6= ∅ do wähle eine beliebige Kante e = (v, u) ∈ E w(v) w(u)+w(v) w(u) w(u)+w(v) wähle mit P = C := C ∪ {u} bzw. mit P = C := C ∪ {v} E := E \ {e | e ist inzident zu dem gewähltem Knoten} end while Satz: (Pitt 1985) W-Rand-Greedy hat eine erwartete Gütegarantie von 2. Weighted Vertex Cover 66 Approximationsalgorithmen Formulierung als lineares ganzzahliges Programm (ILP): (Nemhauser, Trotter 1975) minimiere n X wi xi i=1 unter xi + xj ≥ 1 ∀(i, j) ∈ E xi ∈ {0, 1}, i = 1, . . . , n. xi = 1 ⇐⇒ Knoten i ist in Cover enthalten. Satz: Das lineare Programm (LP) für Vertex Cover mit xi ∈ [0, 1] hat die semi-integral Eigenschaft, d.h. in der Optimallösung sind alle Variablen 0, 1/2 oder 1. Die Lösung des linearen Programms (LP) kann effizient berechnet werden. Das Aufrunden der Lösung des linearen Programms (LP) liefert einen Approximationsalgorithmus mit Gütegarantie 2. Approximationsalgorithmen Weighted Vertex Cover 67 Modifizierte Version von W-Greedy 2: Algorithmus Clarkson: Cover C := ∅ while E 6= ∅ do wähle den Knoten v ∈ V mit maximalem Grad(v) w(v) im aktuellen Graphen G w(v) (d.h. mit minimalem Grad (v) ) C := C ∪ {v} for all edges e = (v, u) w(v) w(u) := w(u) − Grad (v) w(v) cost(e) := Grad (v) (nur für Analyse) lösche e end for w(v) := 0 (nur für Analyse) end while Satz: (Clarkson 1983) Der Algorithmus hat eine Gütegarantie von 2. Approximationsalgorithmen Set Cover 69 Set Covering Problem: gegeben: Grundmenge M , Familie von Teilmengen {S1, . . . , Sm}, Si ⊆ M , Bewertung wi für jede Menge Si. Problem: Finde eine Auswahl der Teilmengen mit minimalem Gesamtgewicht, sodass jedes Element aus M in mindestens einer der ausgewählten Teilmengen enthalten ist. Zusammenhang mit Vertex Cover: Darstellung als Hypergraph H = (V, E), wobei e ∈ E eine Hyperkante mit e ⊆ V ist. Jedes Subset Si entspricht einem Knoten vi ∈ V , jede Hyperkante einem Element der Grundmenge. Die Hyperkante ist inzident zu allen Knoten/Subsets, in denen das entsprechende Element enhalten ist. Verallgemeinerung von Vertex Cover (für jede Hyperkante ist mindestens ein Knoten in Cover enthalten) entspricht dann einem Set Cover. Set Cover 70 Approximationsalgorithmen Notation: Es ist d die Anzahl der Elemente im größten Subset, d.h. der maximale Grad eines Knoten im Hypergraphen H. Es ist f die größte Zahl von Subsets in denen ein einzelnes Element enthalten ist, d.h. die Anzahl der Knoten in der größten Hyperkante. Formulierung als lineares ganzzahliges Programm (ILP): minimiere n X wi xi i=1 unter X xi ≥ 1 ∀ej ∈ E i∈ej xi ∈ {0, 1}, i = 1, . . . , n. xi = 1 ⇐⇒ Knoten i, also Subset Si, wird ausgewählt. Überdeckungsproblem z.B. in der Personaleinsatzplanung Set Cover 71 Approximationsalgorithmen Unterscheide die Varianten: Set Covering: Minimiere Pn i=1 wi xi unter P i∈ej xi ≥ 1 ∀ej ∈ E jedes Grundelement mindestens einmal auswählen =⇒ Überdeckung (Covering) der Grundelemente Set Partitioning: Minimiere Pn i=1 wi xi unter P i∈ej xi = 1 ∀ej ∈ E jedes Grundelement genau einmal auswählen =⇒ Partition der Grundelemente Set Packing: Maximiere Pn i=1 wi xi unter P i∈ej xi ≤ 1 ∀ej ∈ E jedes Grundelement höchstens einmal auswählen =⇒ Maximale Auswahl disjunkter Teilmengen Approximationsalgorithmen Set Covering: Algorithmus LP-Rundung: Löse des (LP) zu (ILP) mit Lösung x∗ Set Cover S := ∅ for all Si if x∗i ≥ 1/f then S := S ∪ {i} end for LP-Rundung hat eine Gütegarantie von f . Set Cover 72 Approximationsalgorithmen Set Cover 73 Greedy (für den ungewichteten Fall) Algorithmus Greedy: Cover C := ∅ while E 6= ∅ do wähle den Knoten v ∈ V mit maximalem Grad im aktuellen Hypergraphen H C := C ∪ {v} E := E \ {e | v ∈ e} end while Satz: (Lovasz 1975) Greedy hat eine Gütegarantie von O(log d). Der analoge Algorithmus für den gewichteten Fall hat ebenfalls eine Gütegarantie von O(log d). (Chvatal 1979) Satz: (Feige 1996) Es gibt keinen polynomiale Approximationsalgorithmus mit Gütegarantie (1 − ε) log(d) (unter P6= N P).