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!