k 1

Werbung
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
jC
Nebenbedienungen:
x 1

i
F
ij
,
yi xij 0 ,
xij 0
,
yi 0
,
j
C
iF, j
C
iF, j
C
iF
j
Nebenbedienungen:
j ijcij ,
ijfi ,

i
F
, j
C
i
F
j 0
ij0
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
iI
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
iF,jC
 zk
ij ij
jC
Nebenbedienungen:
x 1
i
F
ij
,
jC
Nebenbedienungen:
j ij cij ,
ij z ,
iF, jC
iF
j 0
ij 0
jC
iF, jC
yi xij 0 ,
yi k ,
iF, jC
xij 0
yi 0
iF, jC
iF
z0
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
iF
i
Grundidee
 z = 0 => alle Standorte werden geöffnet.
 z sehr groß => nur ein Standort wird geöffnet.
, max
 z0nc
 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
iF
iF
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 : CI :
für Stadt j, i1  A i2  B
 Fall 1: i2  B' => verbinde zu vorhandenem Standort
 Fall 2: i2 BB'
 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




 a11/ nc ( k1  k 1 und k 2  nc )
 b11/ 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!
Herunterladen