11.07.2015 Views

The Facility Location Problem - An algorithm and an ... - Corelab

The Facility Location Problem - An algorithm and an ... - Corelab

The Facility Location Problem - An algorithm and an ... - Corelab

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Facility</strong> <strong>Location</strong><strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>Metric Uncapacitated <strong>Facility</strong> <strong>Location</strong>:Let G be a bipartite graph with bipartition (F, C), where F is theset of facilities <strong><strong>an</strong>d</strong> C is the set of cities. Suppose also that|C| = n c <strong><strong>an</strong>d</strong> |F| = n f . Thus, the total number of vertices in thegraph is n = n c + n f <strong><strong>an</strong>d</strong> the total number of edges ism = n c · n f . Let f i be the cost of opening facility i, <strong><strong>an</strong>d</strong> c ij be thecost of connecting city j to facility i. <strong>The</strong> connection costssatisfy the tri<strong>an</strong>gle inequality. We w<strong>an</strong>t to find a subset I ⊆ F offacilities that should be opened <strong><strong>an</strong>d</strong> a function φ : C −→ Iassigning cities to open facilities, that minimizes the total cost ofopening facilities <strong><strong>an</strong>d</strong> connecting cities to them.Achilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a SolutionInteger Program for FL<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>minimizesubject toy i − x ij ≥ 0x ij , y i ∈ 0, 1∑i∈F ,j∈C c ijxij + ∑ i∈F f iy i∑i∈F x ij ≥ 1∀j ∈ C∀i ∈ F, j ∈ C∀i ∈ F, j ∈ CAchilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


LP - relaxation<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>minimizesubject toy i − x ij ≥ 0x ij ≥ 0y i ≥ 0∑i∈F ,j∈C c ijxij + ∑ i∈F f iy i∑i∈F x ij ≥ 1∀j ∈ C∀i ∈ F, j ∈ C∀i ∈ F, j ∈ C∀i ∈ FAchilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


<strong>An</strong>d the dual:<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>maximizesubject to a j − b ij ≤ c ij∑j∈Cb ijb ij ≥ 0a i ≥ 0∑j∈C a i∀j ∈ C, i ∈ F∀i ∈ F∀i ∈ F, j ∈ C∀i ∈ FAchilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


Algorithm<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>AlgorithmWe introduce a notion of time, so that each event c<strong>an</strong> beassociated with the time at which it happened. <strong>The</strong> <strong>algorithm</strong>starts at time 0. Initially, each city is defined to be unconnected,all facilities are closed, <strong><strong>an</strong>d</strong> a j is set to 0 for every j. <strong>The</strong>Algorithm has two phases:Achilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


Algorithm<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>Phase 1For every unconnected city j ∈ C, increase the parameter a juniformly, at unit rate, until one of the following events occurs (iftwo events occur at the same time, we process them inarbitrary order).(a) For some city j, <strong><strong>an</strong>d</strong> some open facility i, a j = c ij . In thiscase, (i, j) is declared "‘tight"’. If i is open, the city is connected.If not, from now <strong><strong>an</strong>d</strong> on, b ij will be raised uniformly. Every edge(i, j), such that b ij > 0 is called "’special"’.(b) For some closed facility i, we have ∑ j∈C b i,j = f i . Thisme<strong>an</strong>s that the total contribution of the cities is sufficient toopen facility i. In this case, temporarily open this facility, <strong><strong>an</strong>d</strong> forevery unconnected city j with tight edges , j is connected <strong><strong>an</strong>d</strong> iis the connecting witness of j.Achilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


Algorithm<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>Phase 2Let F t be the set of temporarily open facilities, T the subgraphof G consisting of all special edges. <strong>An</strong>d let H be the subgraphof T 2 induced on F t . Let I be a maximal independent set on H.All facilities in I are open. If city j has a tight edge (i, j) to I,connect i to j. Else, for a tight edge (i, j), find <strong>an</strong> i ′ in I, which isa neighbour of i in H <strong><strong>an</strong>d</strong> connect j to it.<strong>The</strong> Algorithm achieves <strong>an</strong> approximation factor of 3Running time: O(mlogm), where m = n c · n fAchilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


Algorithm 2<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>Algorithm 21. We introduce a notion of time, so that each event c<strong>an</strong> beassociated with the time at which it happened. <strong>The</strong> <strong>algorithm</strong>starts at time 0. Initially, each city is defined to be unconnected,all facilities are closed, <strong><strong>an</strong>d</strong> a j is set to 0 for every j.2. While C ≠ ∅, for every city j ∈ C, increase the parameter a jsimult<strong>an</strong>eously, until one of the following events occurs (if twoevents occur at the same time, we process them in arbitraryorder).Achilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


Algorithm 2<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong>Algorithm 2(a) For some unconnected city j, <strong><strong>an</strong>d</strong> some open facilityi, a j = c ij . In this case, connect city j to facility i <strong><strong>an</strong>d</strong> remove jfrom C.(b) For some closed facility i, we have∑j∈C max(0, a j − c ij ) = f i . This me<strong>an</strong>s that the totalcontribution of the cities is sufficient to open facility i. In thiscase, open this facility, <strong><strong>an</strong>d</strong> for every unconnected city j witha j ≥ c ij , connect j to i, <strong><strong>an</strong>d</strong> remove it from C.Achilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>


Greedy form<strong>The</strong> <strong>Problem</strong> <strong><strong>an</strong>d</strong> a Solution<strong>The</strong> <strong>Facility</strong> <strong>Location</strong> <strong>Problem</strong><strong>An</strong> other description, as a greedy <strong>algorithm</strong>In the beginning all cities are unconnected <strong><strong>an</strong>d</strong> all facilities areclosed.While C ≠ ∅ :Among all pairs of facilities <strong><strong>an</strong>d</strong> subsets of C, find the most costeffective one, (i, C ′ ), open facility i, if it is not already open, <strong><strong>an</strong>d</strong>connect all cities in C ′ to i.Set f i := 0, C := C C ′ .Achieves same running timeApproximation factorAchilleos <strong>An</strong>tonios<strong>Facility</strong> <strong>Location</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!