Approximationsalgorithmen Facility Location K-Median Cheng, Wei 12. Juli Facility Location Definition Gegeben: mögliche Standorte F = {F1 , F2 … Fm} Städte C = {C1 , C2 … Cn} Eröffnungskosten fi für Fi Verbindungskosten cij zwischen Fi und Cj Dreiecksungleichung Definition Gesucht: Eröffne Teilmenge I F von Standorten Funktion : C I verbinde jede Stadt mit offenem Standort. Gesamtkosten minimieren Eröffnungskosten der Standorte Verbindungskosten zwischen Stadt und Standort Primales/ Duales LP Primal: Dual: Minimiere: Maximiere: cx fy ij ij i F ,j C i F i i jC Nebenbedienungen: x 1 i F ij , yi xij 0 , xij 0 , yi 0 , j C iF, j C iF, j C iF j Nebenbedienungen: j ijcij , ijfi , i F , j C i F j 0 ij0 j C i F , j C j C , , Verwandte Arbeiten Hochbaum [1982] Shmoys, Tardos and Aardal [1998] Jain and Vazirani [2001] Mahdian, Ye and Zhang [2004] Guha and Khuller [1998] untere Schranke O(log n) 3,16 3 1,52 1,463 Primal-Dual basierter Algorithmus Phase 1 Öffnen mehrere Standorte, und verbinden alle Städte mit Standorten. (Eine Stadt kann mit mehr einem Standort verbinden.) Phase 2 Schließen unnötige Standorte, und verbinden alle Städte mit nur einem Standort. Algorithmus (Phase 1) Am Anfang Zeit 0 Alle Stadte sind unverbunden Alle Variablen = 0 Algorithmus (Phase 1) Erhöhe j der unverbundenen Städte j um 1 Wenn j cij von Kante, ist Kante (i,j) bezahlt . => Duale Variable ij wird erhöht, laut j ij cij. ij bezahlt Eröffnungskosten fi für Fi Kanten (i, j) mit ij 0 heißen besonders. Wenn j ij fi, ist Standort i bezahlt. Standort i ist temporär geöffnet. Algorithmus (Phase 1) Stadt mit bezahlter Kante zu eröffnetem Standort Fi ist verbunden. Standort i ist Verbindungszeuge dieser Städte. j verbundener Städte werden nicht mehr erhöht. Sobald unverbundene Stadt j bezahlte Kante zu eröffnetem Standort i hat: Stadt j ebenfalls verbunden. Standort i ist Verbindungszeuge von j. Achtung: Hier ist ij 0 , und Kante (i, j) unbesonders. Algorithmus (Phase 1) Phase 1 endet, wenn alle Städte verbunden. Eine Stadt zu mehreren Standorten verbunden. Zu viele Standorte geöffnet. Primal-Dual basierter Algorithmus Phase 1 Öffnen mehrere Standorte, und verbinden alle Städte mit Standorten. (Eine Stadt kann mit mehr einem Standort verbinden.) Phase 2 Schließen unnötige Standorte, und verbinden alle Städte mit nur einem Standort. Algorithmus (Phase 2) Ft – temporär geöffnete Standorte T – durch besondere Kanten induzierter Teilgraph 2 ( u , v ) T ( u , v ) T T2 – 2 ( u , v ) T ( v , w ) T ( u , w ) T H – von Ft induzierter Graph in T 2 Algorithmus (Phase 2) Wähle I als Maximal Independent Set in H Maximum Independent Set (NP-schwer) Maximal Independent Set: einfacher Greedy-Algorithmus Alle Standorte in I werden geöffnet. Algorithmus (Phase 2) { i F 0} F , für jede Stadt j j= t|β ij I independent set => höchstens ein Standort in F j geöffnet. Fall 1: Ein Standort i F j ist geöffnet. ( j) i , und Stadt j ist direkt verbunden. Fall 2: Alle Standorte in F j sind ungeöffnet. Algorithmus (Phase 2) Fall 2: Alle Standorte in F j sind ungeöffnet. Betrachte bezahlte Kante (i',j), i ' j 0 i’ ist Verbindungszeuge von j Fall 2.1: i' I Stadt j ist direkt verbunden. ( j) i' Achtung: Bis jetzt ist die Lösung Optimal. Fall 2.2: i' I i eröffneter Nachbar von i’ in Graph H. ( j) i , und Stadt j ist indirekt verbunden. Algorithmus (Phase 2) (I, ) ist Lösung. 1 (j) i x ij yi 1 iI Analyse Definition: j jf ej j indirekt verbunden e f 0 j j j j direkt verbunden e f j cij j ij für ( j) i Analyse Lemma 1: f j fi j:( j)i f Folgerung 2: j C f j i I i Lemma 3: Für eine indirekt verbunden Stadt j: cij 3 ej i ( j) Analyse i ' Verbindungszeuge von Stadt j j verbindet indirekt zu i => (i, i' ) H (i, j ' ) und (i' , j ' ) sind beide besondere Kanten. Analyse Satz 4: c x 3 fy 3 ijij i F ,j C ii i F Beweis: cij 3 (Lemma 3) => e j f j fi j C i I j j C e c x 3 j ij ij i F ,j C j C Zusammenfassung Implementierung mit Priority Queue Jede Kante wird max. 2-mal betrachtet. bezahlt verbunden Der Algorithmus berechnet in O(m log m) Zeit eine 3-Approximation für Facility Location. K-Median Definition Gegeben: Eröffnungskosten fi = 0 für Fi max. K Standorte eröffnen Gesucht: Gesamtkosten minimieren Primales/ Duales LP Primal: Dual: Minimieren: Maximieren: c x iF,jC zk ij ij jC Nebenbedienungen: x 1 i F ij , jC Nebenbedienungen: j ij cij , ij z , iF, jC iF j 0 ij 0 jC iF, jC yi xij 0 , yi k , iF, jC xij 0 yi 0 iF, jC iF z0 i F , , j j C , , , Verwandte Arbeiten Bartal [1998] Charikar [1999] Jain and Vazirani [2001] Arya [2002] O(log n log log n) 6+2/3 6 3+2/p Laufzeit O(n^p) Grundidee z: Eröffnungskosten eines Standorts Suchen geeignetes z, benutzen anschließend Algorithmus für Facility Location. Wir suchen y k iF i Grundidee z = 0 => alle Standorte werden geöffnet. z sehr groß => nur ein Standort wird geöffnet. , max z0nc Finde z mit binärer Suche. Grundidee 2 z z c /( 12 n 1 2 min c) z1 und z2 Finden entspricht k1<k und k2>k (xs,ys) (xl,yl) y y iF iF s i k1 l i k2 (x,y) = a (xs,ys) + b (xl,yl) k = a k1 + b k2 a = (k2-k)/(k2-k1) b = (k-k1)/(k2-k1) Lemma 5 Die Kosten von (x,y) sind höchstens (3+1/nc) mal so groß wie die einer optimalen (nicht notwendig ganzzahligen) Lösung des K-Median Problems . Beweisskizze: 1 c x 3 z k ij ij j 1 n i F , j C j C c Randomisiertes Runden Randomisiertes Runden Mit Wahrscheinlichkeit a werden alle Standorte in A geöffnet . Mit b = 1-a, alle Standorte in B’. Außerdem k-k1 Standorte in B-B’ werden zufällig geöffnet. I ist Menge der geöffneten Standorte, | I | = k. Randomisiertes Runden Definiere : CI : für Stadt j, i1 A i2 B Fall 1: i2 B' => verbinde zu vorhandenem Standort Fall 2: i2 BB' i3 B' ist nächster Standort von i1 Verbinde zu i1 oder i2 oder i3 cost(j) = aci1 j + bci2 j Randomisiertes Runden Lemma 6: erwartete Kosten von Stadt j E [ c ] ( 1 max( a , b )) cost ( j ) ( j ) j Fall 1: Fall 2: E[cΦ(j)j ] = cost(j) = aci1 j + bci2 j i2 geöffnet : wahrscheinlichkeit i2 nicht geöffnet und i1 geöffnet : beide nicht öffnet: 2 E [ c ] bc a c abc ( j ) j i j i j i j 2 1 3 b (1-b)a = a2 (1-b)(1-a) = ab Approximation k c x ( 1 max( a , b )) c x E ij ij ij ij i F , j C i F , j C a11/ nc ( k1 k 1 und k 2 nc ) b11/ k ( k1 1 und k2 k 1 ) 1 max( a ,b )) 2 1 /n ( c Approximationsgarantie ist ( 2 1 /n )( 3 1 /n ) 6 c c Laufzeit 2 Binäre Suche in 0, ncmax bis z z c /( 12 n 1 2 min c) (log( c /c ) log n ) Proben O max min Gesamtlaufzeit O ( m log m (log( c / c ) log n )) max min Zusammenfassung Der Algorithmus berechnet in O(m log m) Zeit eine 3-Approximation für Facility Location. Unser Algorithmus berechnet in O ( m log m (log( c / c ) log n )) Zeit max min eine 6-Approximation für K-Median. Vielen Dank!