310 likes | 321 Views
A - exam. Cost Sharing and Approximation. Martin P ál joint work with Éva Tardos. Cost Sharing. Internet: many independent agents Not hostile, but selfish Willing to cooperate, if it helps them. cost. Steiner tree. # users. cost. No sharing. # users. cost. Rent or buy. M. # users.
E N D
A-exam Cost Sharing and Approximation Martin Pál joint work withÉva Tardos Martin Pál: Cost sharing & Approx
Cost Sharing • Internet: many independent agents • Not hostile, but selfish • Willing to cooperate, if it helps them Martin Pál: Cost sharing & Approx
cost Steiner tree # users cost No sharing # users cost Rent or buy M # users How much does it pay to share? Martin Pál: Cost sharing & Approx
4 3 4 2 2 3 ? 3 1 0 4 4 2 4 3 ? 3 2 3 ? Cost shares Cost shares Steiner tree: how to split cost Martin Pál: Cost sharing & Approx
Steiner tree: how to split cost OPT( ) = 3 OPT( ) = 5 p( ) = 5-3 = 2 No “fair” cost allocation exists! Martin Pál: Cost sharing & Approx
u1’=5 p1=15 p1=0 Problem: users may not reveal true utilities u2=25 p2=15 p2=22.5 u3=25 p3=15 p3=22.5 Utilities uj – utility of agent j u1=25 $45 internet Martin Pál: Cost sharing & Approx
Cost sharing mechanism • ..is a protocol/algorithm that • requests utility uj from every user j • selects the set S of people serviced • builds network servicing S • Computes the payment pj of every user jS Martin Pál: Cost sharing & Approx
ΣjS pj ≤ c*(S) (competitiveness) ΣjS pj ≥ c(S)/β (approx. cost recovery) Desirable properties of mech’s • ΣjS pj=c*(S) • (budget balance) • Only people in S pay • (voluntary participation) • No cheating, even in groups • (group strategyproofness) • If uj high enough, j guaranteed to be in S • (consumer sovereignity) Martin Pál: Cost sharing & Approx
Cost sharing function • ξ : 2UU ℛ • ξ(S,j) – cost share of user j, given set S • Competitiveness: ΣjSξ(S,j)≤c*(S) • Cost recovery: c(S)/β≤ΣjSξ(S,j) • Voluntary particpiation: ξ(S,j) = 0 if jS • Cross-monotonicity: for jST • ξ(S,j) ≥ ξ(T,j) Martin Pál: Cost sharing & Approx
The Moulin&Shenker mechanism Let ξ : 2UU ℛ be a cost sharing function. • S U • while unhappy users exist • offer each jS service at price ξ(S,j) • S S – {users j who rejected} • output the set S and prices pj = ξ(S,j) Thm: [Moulin&Shenker]: ξ(.) cross-monotonic mech. group strategyproof Martin Pál: Cost sharing & Approx
Designing x-mono functions • We construct cross-monotonic cost shares for two games: • Metric facility location game • Single source rent or buy game • Facility location: competitive, recovers 1/3 of cost • Rent or buy:competitive, recovers 1/15 of cost Martin Pál: Cost sharing & Approx
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) fi: cost of facility i Martin Pál: Cost sharing & Approx
Facility Location 1) Pick a subset F’ of facilities to open 2) Assign every client to an open facility Goal: Minimize the sum of facility and assignment costs: ΣiF’fi + ΣjS c(j,σ(j)) Martin Pál: Cost sharing & Approx
=4 =4 =6 Existing algorithms.. each user j raises its j j pays for connection first, then for facility if facility paid for, declared open (possibly cleanup phase in the end) Martin Pál: Cost sharing & Approx
with , ( )=6 without , ( )=5 was stopped prematurely in the first run =5 =5 ..do not yield x-mono shares Martin Pál: Cost sharing & Approx
=4 =4 =5 Ghost shares • Two shares per user: • ghost share j • real share j • j grows forever • j stops when connected Martin Pál: Cost sharing & Approx
Easy facts Fact 1: cost shares j are cross-monotonic. Pf: More users opens facilities faster each j can only stop growing earlier. Fact 2 [competitiveness]: ΣjSj≤c*(S). Pf: j is a feasible LP dual. Hard part: cost recovery. Martin Pál: Cost sharing & Approx
Constructing a solution =2 tp:time when facility p opened Sp: set of clients connected to p at time tp facility p is well funded, if 3j≥tp for every jSp each facility is either poisoned or healthy p is poisoned if it shares a client with a well funded healthy facility q and tp> tq tp=2 =2 tq =7 =7 Martin Pál: Cost sharing & Approx
Well funded p q ≤tp1 ≤tp ≤tp1 ... tp tp1 ≤ j tq j≤tp/3 healthy c(p,q’) ≤tp q’ Building a solution Open all healthy well funded facilities Assign each client to closest facility Fact 1: for every facility p, there is an open facility q within radius 2tp. c(p,q) ≤2(tp-tq) c(q,q’)≤2 tq Martin Pál: Cost sharing & Approx
Fact 2: p open clients in Sp can pay 1/3 their connection + facility cost Pf: fj = ΣjS(p)tp – cjp and j≥tp/3 Sp Fact 3: j is in no Sp can pay for 1/3 of connection Pf: fj = ΣjS(p)tp – cjp and j≥tp/3 ≤j ≤2j open Cost recovery Martin Pál: Cost sharing & Approx
Sp ≤j ≤2j open Cost recovery • Summary: • Cost shares can pay for 1/3 of soln we construct • Never pay more than cost of the optimum • With increasing # of users, individual share only decreases Martin Pál: Cost sharing & Approx
Single source rent or buy A set of clients D. A source node s. cij is the distance between any pair of nodes. (assume cij satisfies triangle inequality) Martin Pál: Cost sharing & Approx
#paths using edge e cost of e M # paths Single source rent or buy 1) Pick a path from every client j to source s. Goal: Minimize the sum of edge costs: ΣeE min(pe,M) ce Martin Pál: Cost sharing & Approx
Plan of attack • Gather clients into groups of M • (often done by a facility location algorithm) • Build a Steiner tree on the gathering points Jain&Vazirani gave cost sharing fn for Steiner tree Have cost sharing for facility location Why not combine? Martin Pál: Cost sharing & Approx
“One shot” algorithm • Generate gathering points and build a Steiner tree at the same time. • Allow each user to contribute only to the least demanding (i.e. largest) cluster he is connected to. • not clear if the shares can pay for the tree Martin Pál: Cost sharing & Approx
Growing ghosts Grow a ball around every user uniformly When M or more balls meet, declare gathering point Each gathering point immediately starts growing a Steiner component When two components meet, merge into one Martin Pál: Cost sharing & Approx
Cost shares Each Steiner component C needs $1/second for growth. Maintenance cost of C split among users connected User connected to multiple components pays only to largest component User connected to root stops paying j =∫ fj(t) dt Martin Pál: Cost sharing & Approx
Easy facts Fact: The cost shares j are cross-monotonic. Pf: More users causes more gathering points to open, more “area” is covered by Steiner clusters, clusters are bigger each j can only grow slower&stop sooner. Fact [competitiveness]: ΣjSj≤2c*(S). Pf: LP duality. Again, cost recovery is the hard part. Martin Pál: Cost sharing & Approx
Cost recovery To prove cost recovery, we must build a network. Steiner tree on all centers would be too expensive select only some of the centers like we did for facility location. Need to show how to pay for the tree constructed. Martin Pál: Cost sharing & Approx
Paying for the tree We selected a subset of clusters so that every user pays only to one cluster. But: users were free to chose to contribute to the largest cluster – may not be paying enough. Solution: use cost share at time t to pay contribution at time 3t. Martin Pál: Cost sharing & Approx
Thank you! The last slide • x-mono cost sharing known only for 3 problems so far • Do other problems admit cross-mono cost sharing? • Covering problems? Steiner Forest? • Negative result: SetCover – no better than Ω(n) approx • Applications of cost sharing to design of approximation algorithms. Martin Pál: Cost sharing & Approx