260 likes | 390 Views
Universal Facility Location. Mohammad Mahdian MIT. Martin P ál Cornell University. Metric Facility Location. F is a set of facilities . D is a set of clients . c ij is the distance between any i and j in D F . (assume c ij satisfies triangle inequality). 0. 4. 3.
E N D
Universal Facility Location Mohammad Mahdian MIT Martin Pál Cornell University M. Pál. Universal Facility Location
Metric Facility Location F is a set of facilities. D is a set of clients. cij is the distance between any i and j in D F. (assume cij satisfies triangle inequality) M. Pál. Universal Facility Location
0 4 3 5 Problem Statement 1) Allocate capacity ui at each facility i 2) Assign every client to a facility (each facility i is assigned at most ui clients). Goal: Minimize the sum of allocation and assignment costs. M. Pál. Universal Facility Location
cost fi(ui) capacity Assptn: fi(.)is nondecreasing. The cost Cost of facility i is a function fi(.) of demand allocated. Allocation costcf(S): sum offi(ui) over all i in F. Assignment costcs(S): sum of distances from clients to assigned facilities. Goal: Minimize cf(S) + cs(S). M. Pál. Universal Facility Location
cost cost cost cost Uncapacitated FL FL with soft capacities demand demand demand demand Concave cost FL FL with hard capacities Special cases M. Pál. Universal Facility Location
Related work Uncapacitated: primal-dual 1.52 [MYZ02] local search 3+ [CG99] Soft capacities: primal-dual 2 [MYZ03] local search 4+ [AGK+01] Concave cost: reduction to uncapacitated [HMM] Hard capacities: local search 9+ [PTW01] M. Pál. Universal Facility Location
Our result First approximation algorithm for Universal FL Generalizes local search algorithms for above special cases, with the same approx. guarantees Our analysis: 8+ approximation (7.88 w. scaling) [CYZ] just claimed improved analysis: 7+ M. Pál. Universal Facility Location
Local Search 1) Start with any feasible solution. 2) Improve solution with “local operations”. 3) Stop when there are no remaining operations that lower the cost. Well, almost… …we want to finish in poly-time: Each operation is required to lower cost by a factor of /n. M. Pál. Universal Facility Location
1 1 1 The add operation add(s,) – Increase allocation at facility s by . Reassign clients optimally. us +1=2 Givenu=(u1,u2 ,...,un), where do we send clients? Solve a min cost flow. M. Pál. Universal Facility Location
s 0 4 3 2 The pivot operation • pivot(s,Δ): Pick a pivot point s and vector Δ. • For each facility i: • Send -Δi units of demand from i to s (if Δi<0) • Send +Δi units of demand from s to i (if Δi>0) M. Pál. Universal Facility Location
2 3 1 3 The pivot operation • pivot(s,Δ): Pick a pivot point s and vector Δ. • For each facility i: • Send -Δi units of demand from i to s (if Δi<0) • Send +Δi units of demand from s to i (if Δi>0) M. Pál. Universal Facility Location
Finding good operations Want operations that decrease cost the most. Plan: Try every s, find the best and Δ for add(s,) and pivot(s,Δ). Easy to do for add: try all values for . Too many possibilities for Δ to try them all. How to find the best pivot operation? M. Pál. Universal Facility Location
How to find a good pivot? Problem: find Δ to minimize cost(pivot(s,Δ)). Solution: dynamic programming, just like knapsack. Consider facilities in any order. Let p[d,i] be the min cost way of having d excess demand at the pivot from the first i facilities. p[d,i+1] = min{ p[d-,i]+gi+1() } p[0,n] is the optimum M. Pál. Universal Facility Location
Analysis M. Pál. Universal Facility Location
Max(ui,uiOPT) 0 1 1 Current solS 1 2 0 0 1 2 1 1 1 OptimumSOPT Assignment cost Thm: [Korupolu et al] If no add(s,) op. improves a solution S, cs(S)≤ cs(SOPT) + cf(SOPT). M. Pál. Universal Facility Location
Bounding the allocation cost Bounding cf(S): Local opt. cost(pivot(s,Δ)) ≥ 0 for any s,Δ. Every operation gives a bound: Σi fi(ui) ≤ Σifi(ui + Δi) + flow cost lower bound on cf(SOPT) upper bound on cf(S) M. Pál. Universal Facility Location
try pivot(s,d) First attempt Take current S with some SOPT: let di = uiOPT - ui. 2 2 di < 0. sources 0 0 1 0 di > 0. sinks 2 3 Reassignment costs may be high. M. Pál. Universal Facility Location
Flow is cheap: cost(y) ≤ cs(S)+ cs(SOPT) Second attempt Take current S with some SOPT: let di = uiOPT - ui. try swap(d): routing along min cost flow 2 2 di < 0. sources 0 0 1 0 di > 0. sinks 2 3 Don’t have a swap operation. M. Pál. Universal Facility Location
What works • Take the swap(d) operation, let y be the flow. • Tile it with pivot operations so that: • each source covered (at least) once • each sink used at most k times (k=4) • each pivot ships only along flow edges M. Pál. Universal Facility Location
What works Take the swap(d) operation, let y be the flow. 2 di < 0. sources 0 0 1 0 di > 0. sinks 2 3 Example: flow decomposed into two pivot op’s. M. Pál. Universal Facility Location
Fact 1: cost(y) ≤cs(S)+cs(SOPT) Pf: use triangle inequality I.e. the flow is a tree (forest). The flow y Fact 2: y is min cost acyclic Pf: augment along cycle to remove it M. Pál. Universal Facility Location
Covering the tree sources sinks M. Pál. Universal Facility Location
Subtrees of depth 2 sinks sources M. Pál. Universal Facility Location
Problem: flow cost is nondominating if it sends ≥ ½ of its flow down. Almost done.. Every source closed once Every sink used ≤ 1+1=2 times (once as root, once as child) M. Pál. Universal Facility Location
Nondominating sources r s1 s2 s3 sk ... y(s1,r) ≤ y(s2,r) ≤ y(s3,r) ≤ ... ≤ y(sk,r) M. Pál. Universal Facility Location
Every facility opened 4 times Flow at most tripled cf(S)≤ 7c(SOPT) Assignment cost cs(S)≤ 1c(SOPT) Total c(S) ≤ 8c(SOPT) Summing up Hence the algorithm is a (8+є)-approximation. (7.88+є with scaling) M. Pál. Universal Facility Location