ClassW04ApproxAlgs/WojciechJawor

ClassS04CS141 | ClassW04ApproxAlgs | recent changes | Preferences

Showing revision 8
Chapter 24 in the text.

Problem

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) is 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 cities to open facilities in such a way that a total cost of opening the facilities and connecting the cities is minimized.

LP formulation

Let y(i) be an indicator variable 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. Consider the following integer program for the problem

IP

minimize i,j c(i,j)x(i,j) + i f(i)y(i)

s.t i ∈ F x(i,j) ≥ 1 j∈ C

y(i)-x(i,j) ≥ 0 i ∈ F, j∈ C

x(i,j) ∈ {0,1} i ∈ F, j∈ C

y(i) ≥ 0 i ∈ F

Primal

The LP-relaxation of the program is

minimize i,j c(i,j)x(i,j) + i f(i)y(i)

s.t

i ∈ F x(i,j) ≥ 1 j∈ C

y(i)-x(i,j) ≥ 0 i ∈ F, j∈ C

x(i,j) ≥ 0 i ∈ F, j∈ C

y(i) ≥ 0 i ∈ F

Dual

The dual program is

maxizmize j ∈ C αj

s.t

αj - βij ≤ c(i,j) i ∈ F, j∈ C

j ∈ Cβij ≤ f(i) i ∈ F

αj ≥ 0 j∈ C

βij ≥ 0 i ∈ F,j∈ C

Algorithm

Algorithm runs in 2 phases. In the first phase we declare some facilities to be open temporarily, in the second phase we shut some of the down.

Phase 1.

We want the dual solution to be as large as possible. This motivates the following approach. We start from αi = 0 for all i, and raise the variables 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). Such facilities are declared temporarily open, and unconnected cities with tight edges get connected to facility 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.

Phase 2.

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 facilities to which it is eventually connected.

Let Ft denote the set of temporarily open facilities 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.


ClassS04CS141 | ClassW04ApproxAlgs | recent changes | Preferences
This page is read-only | View other revisions | View current revision
Edited February 14, 2004 5:28 pm by 66-215-219-217.riv-eres.charterpipeline.net (diff)
Search: