3-Approximation Algorithm for Uncapacited Facilty Location |
opening the facility i and c(i,j) is the cost of connecting |
opening the facility i and c(i,j) be the cost of connecting |
-> I\) assigning cities to open facilities in such a way that |
-> I\) assigning (connecting) cities to open facilities in such a way that |
equal to 1 iff facility i is open, and let x(i,j) be an indicator variable iff facility i is connected to city j. |
equal to 1 iff facility i is open and 0 otherwise. Let x(i,j) be an indicator variable equal to 1 iff facility i is connected to city j and 0 otherwise. |
s.t |
x(i,j) ∈ {0,1} i ∈ F, j∈ C |
x(i,j),y(i) ∈ {0,1} i ∈ F, j∈ C |
y(i) ≥ 0 i ∈ F |
s.t |
x(i,j) ≥ 0 i ∈ F, j∈ C y(i) ≥ 0 i ∈ F |
x(i,j),y(i) ≥ 0 i ∈ F, j∈ C |
s.t |
∑j ∈ Cβij ≤ f(i) i ∈ F αj ≥ 0 j∈ C |
∑j ∈ C βij ≤ f(i) i ∈ F |
βij ≥ 0 i ∈ F,j∈ C |
αj, βij ≥ 0 j∈ C, i ∈ F |
phase we declare some facilities to be open temporarily, in the second phase we shut some of the down. |
phase we open some facilities temporarily; in the second phase we shut some of them down. |
αi = 0 for all i, and raise the variables gradually. |
αi, βij = 0 for all i,j, and raise the variables αj gradually. |
Facility i is paid for if ∑j βij=f(i). Such facilities are declared temporarily open, and unconnected cities with tight edges get connected to facility i. The facility i |
Facility i is paid for if ∑j βij=f(i). If a facilities i is paid for, it is opened temporarily, and unconnected cities with tight edges are connected (assigned) to i. The facility i |
phase we ensure that a city only pays for opening facilities to which it is eventually connected. |
phase we ensure that a city only pays for opening facility it is eventually connected to. (Can you find an example that shows that the second phase is really needed - that is - the algorithm is not a 3-approximation algorithm w/o the second phase. How bad can the approximation ratio get without the second phase?) |
Let Ft denote the set of temporarily open facilities and T |
Let Ft denote the set of facilities that are temporarily opened and T |
i in graph H such that i' ∈ I. Connect i to j and |
i in graph H such that i' ∈ I. Connect i' to j and |
AnalysisThe algorithm constructs a feasible solution (x,y) to the primal, and a feasible solution (α, β) to the dual. It is enough to show that cost(x,y) ≤ 3cost(α, β) , this will imply that the approximation ration of the algorithm is 3. If a city j is connected directly to facilty i, then set αfj = βij and αej = c(i,j) . If a city j is connected indirectly then set αfj = 0 and αej = αj . Clearly, for all cities αj = αfj + αej . First we show that if i ∈ I, then ∑j:φ(j)=i αfj =fi. Indeed, since the facility i must be fully paid for, we have ∑j:(i,j) is special βj =fi. Since only cities connected directly to j pay for it, and for these cities αfj = βj , the claim follows. The claim immediatelly implies that ∑j ∈ C αfj =∑i ∈ I fi. If a city is connected directly then c(i,j) = αej . We will now show that for an indirectly connected city j to i c(i,j) ≤ 3 αej . Let j be an indirectly connected city, and let i' be the facility j is connected to (we use the notation from the algorithm). Let j' <> j be any city connected to i' (j' must exists, since j does not pay for the facility) and let i be the facility j was connected to in the first phase. It is enought to show that αej ≥ c(i, j), c(i, j'), c(i', j') . First observe that αej > c(i, j) and that αej' > c(i, j'), c(i',j) since all these edges are special. It remains to show that αej > αej' . This inequality holds because city j' was connected to i' before j was connected to i. (Since otherwise j' would be connected to i, not i'.) i' *---* j' / / / / i *---* j Using the results from the two last paragraphs, we have ∑i ∈ F, j ∈ C c(i,j)x(i,j) + ∑i ∈ F f(i)y(i) ≤ ∑i ∈ F, j ∈ C c(i,j)x(i,j) + 3∑i ∈ F f(i)y(i) ≤ ∑i,j: j = φ(i) c(i,j) + 3 ∑i ∈ I f(i) ≤ 3 ∑i,j: j = φ(i) αej + 3 ∑j ∈ C αfj ≤ 3 ∑j αj References: * Primal-Dual Approximation Algorithms for Metric Facility Location and k-Median Problems. http://citeseer.nj.nec.com/3752.html |
We are given a bipartite graph G=(F,C;E) where F is the set of facilities and C is the set of cities (aka customers). Let f(i) be a cost of opening the facility i and c(i,j) be the cost of connecting facility i to city j. The connection costs satisfy the triangle inequality. The problem is to find a subset I ⊆ F of facilities that should be opened, and a function φ:C -> I assigning (connecting) cities to open facilities in such a way that a total cost of opening the facilities and connecting the cities is minimized.
Let y(i) be an indicator variable equal to 1 iff facility i is open and 0 otherwise. Let x(i,j) be an indicator variable equal to 1 iff facility i is connected to city j and 0 otherwise. Consider the following integer program for the problem
minimize ∑i,j c(i,j)x(i,j) + ∑i f(i)y(i)
∑i ∈ F x(i,j) ≥ 1 j∈ C
y(i)-x(i,j) ≥ 0 i ∈ F, j∈ C
x(i,j),y(i) ∈ {0,1} i ∈ F, j∈ C
The LP-relaxation of the program is
minimize ∑i,j c(i,j)x(i,j) + ∑i f(i)y(i)
∑i ∈ F x(i,j) ≥ 1 j∈ C
y(i)-x(i,j) ≥ 0 i ∈ F, j∈ C
x(i,j),y(i) ≥ 0 i ∈ F, j∈ C
The dual program is
maxizmize ∑j ∈ C αj
αj - βij ≤ c(i,j) i ∈ F, j∈ C
∑j ∈ C βij ≤ f(i) i ∈ F
αj, βij ≥ 0 j∈ C, i ∈ F
Algorithm runs in 2 phases. In the first phase we open some facilities temporarily; in the second phase we shut some of them down.
We want the dual solution to be as large as possible. This motivates the following approach. We start from αi, βij = 0 for all i,j, and raise the variables αj gradually. When αj = c(i,j) for some edge (i,j), the algorithm will declare this edge to be tight. From now on to keep the solution feasible we will have to raise variable βij. We will say that an edge (i,j) is special if βij > 0.
Facility i is paid for if ∑j βij=f(i). If a facilities i is paid for, it is opened temporarily, and unconnected cities with tight edges are connected (assigned) to i. The facility i is a connecting witness for those cities. In the future if an edge connecting a temporarily open facility i and a city j gets tight we connect facility i to j, and i becomes the connecting witness (note that in this case βij = 0 and the edge is not special). The first phase terminates when all cities get connected.
Note that in the first phase, a city might have paid for opening a facility it is not connected to. In the next phase we ensure that a city only pays for opening facility it is eventually connected to. (Can you find an example that shows that the second phase is really needed - that is - the algorithm is not a 3-approximation algorithm w/o the second phase. How bad can the approximation ratio get without the second phase?)
Let Ft denote the set of facilities that are temporarily opened and T denote the subgraph of G with special edges. Let H be the subgraph of T2 induced on Ft. Find maximal independent set in H, say I. The facilities in I are opened.
Now we need to connect cities to the opened facilities. For a city j, define Mj={i ∈ Ft: (i,j) is special}. For a city j if there is an opened facility in Mj we connect j to it. We call j directly connected. Otherwise, consider a city j and a facility i such that i was a connecting witness for j. If i ∈ I we connect i to j (direct connection) again (note that in this case the edge (i,j) is not special). In the remaining case let i' be any neighbor of i in graph H such that i' ∈ I. Connect i' to j and declare j indirectly connected.
The algorithm constructs a feasible solution (x,y) to the primal, and a feasible solution (α, β) to the dual. It is enough to show that cost(x,y) ≤ 3cost(α, β) , this will imply that the approximation ration of the algorithm is 3.
If a city j is connected directly to facilty i, then set αfj = βij and αej = c(i,j) . If a city j is connected indirectly then set αfj = 0 and αej = αj . Clearly, for all cities αj = αfj + αej .
First we show that if i ∈ I, then ∑j:φ(j)=i αfj =fi. Indeed, since the facility i must be fully paid for, we have ∑j:(i,j) is special βj =fi. Since only cities connected directly to j pay for it, and for these cities αfj = βj , the claim follows. The claim immediatelly implies that ∑j ∈ C αfj =∑i ∈ I fi.
If a city is connected directly then c(i,j) = αej . We will now show that for an indirectly connected city j to i c(i,j) ≤ 3 αej . Let j be an indirectly connected city, and let i' be the facility j is connected to (we use the notation from the algorithm). Let j' <> j be any city connected to i' (j' must exists, since j does not pay for the facility) and let i be the facility j was connected to in the first phase. It is enought to show that αej ≥ c(i, j), c(i, j'), c(i', j') . First observe that αej > c(i, j) and that αej' > c(i, j'), c(i',j) since all these edges are special. It remains to show that αej > αej' . This inequality holds because city j' was connected to i' before j was connected to i. (Since otherwise j' would be connected to i, not i'.)
i' *---* j' / / / / i *---* j
Using the results from the two last paragraphs, we have
∑i ∈ F, j ∈ C c(i,j)x(i,j) + ∑i ∈ F f(i)y(i) ≤ ∑i ∈ F, j ∈ C c(i,j)x(i,j) + 3∑i ∈ F f(i)y(i) ≤ ∑i,j: j = φ(i) c(i,j) + 3 ∑i ∈ I f(i) ≤ 3 ∑i,j: j = φ(i) αej + 3 ∑j ∈ C αfj ≤ 3 ∑j αj
References: