Charitable donations, public goods, cost sharing Vincent Conitzer conitzer@cs.duke.edu One donor (bidder) u( u( )=1 ) = .8 U=1 Two independent donors u( u( )=1 ) = .8 U=1 u( u( )=1 ) = .8 U=1 Two donors with a contract u( u( )=1 ) = .8 u( u( U = .5 + .8 = 1.3 > 1 U = .5 + .8 = 1.3 > 1 )=1 ) = .8 Matching offers • Matching offers are such a contract • Two problems: Promise to match donations – One-sided Big institution – Involve only a single charity Private individual(s) Two charities u( u( u( )=1 ) = .8 ) = .3 U = 1.1 u( u( u( U = 1.1 )=1 ) = .3 ) = .8 A different approach [Conitzer & Sandholm EC04] • Donors can submit bids indicating their preferences over charities • A center accepts all the bids and decides who pays what to whom What do we need? • A general bidding language for specifying “complex matching offers” (bids) • A computational study of the clearing problem (given the bids, who pays what to whom) One charity • A bid for one charity: “Given that the charity ends up receiving a total of x (including my contribution), I am willing to contribute at most w(x)” Bidder’s maximum payment Budget w(x) x = total payment to charity Bid 1 maximum payment w(x) $50 Budget $30 $10 x = total payment $10 $100 $500 Bid 2 maximum payment w(x) $75 Budget $45 $15 x = total payment $10 $100 $500 Current solution 45 degree line w(x) total $125 payment bidders are $75 willing to make max donated $25 max surplus x = total payment $10 $100 $43.75 $500 Tsunami event (Dagstuhl 05) 1100 1000 900 800 700 600 500 400 300 200 100 0 0 100 200 300 identity 400 500 600 700 800 900 total promised 1000 Problem with more than one charity • • • Willing to give $1 for every $100 to UNICEF Willing to give $2 for every $100 to Amnesty Int’l BUDGET: $50 wu(xu) $50 $5000 xu wa(xa) $50 $2500 xa • Could get stuck paying $100! • Most general solution: w(x1, x2, …, xm) – Requires specifying exponentially many values Solution: separate utility and payment; assume utility decomposes • Willing to give $1 for every $100 to UNICEF • Willing to give $2 for every $100 to Amnesty Int’l • Budget constraint:ua$50 u (x ) u (xu) a $50 1 util 1 util $100 xu $50 xa w(uu(xu)+ua(xa)) u 50 utils u (xu)+ ua(xa) The general form of a bid (utils) (utils) u1(x1) u2(x2) (utils) um(xm) … x1 ($) x2 ($) ($) w(u1(x1) + u2(x2)+ … + um(xm)) u1(x1) + u2(x2)+ … + um(xm) (utils) xm ($) What to do with the bids? • • Decide x1, x2, …, xm (total payment to each charity) Decide y1, y2, …, yn (total payment by each bidder) y1 x1 y2 x2 • Definition. x1, x2, …, xm ; y1, y2, …, yn is valid if – x1+ x2 + … + xm ≤ y1 + y2 + …+ yn (no more money given away than collected) – For any bidder j, yj ≤ wj(uj1(x1) + uj2(x2) + … + ujm(xm)) (nobody pays more than they wanted to) Objective • Among valid outcomes, find one that maximizes • Total donated = x1+ x2 + … + xm y1 x1 y2 x2 • Surplus = y1 + y2 + …+ yn - x1 - x2 - … - xm y1 x1 y2 x2 Hardness of clearing • We showed how to model an NP-complete problem (MAX2SAT) as a clearing instance – Nonzero surplus/total donation possible iff MAX2SAT instance has solution • So, NP-complete to decide if there exists a solution with objective > 0 • That means: the problem is inapproximable to any ratio (unless P=NP) General program formulation • Maximize – x1+ x2 + … + xm , OR – y1 + y2 + …+ yn - x1 - x2 - … - xm • ($) Subject to w(u1(x1) + u2(x2)+ … + um(xm)) – y1 + y2 + …+ yn - x1 - x2 - … - xm ≥ 0 – For all j: yj ≤ wj(uj1 + uj2 + … + ujm) – For all i, j: uji ≤ uji(xi) nonlinear u1(x1) + u2(x2)+ … + um(xm) (utils) nonlinear (utils) u1(x1) (utils) u2(x2) (utils) um(xm) … x1 ($) x2 ($) xm ($) Concave piecewise linear constraints l1(x) l2(x) l3(x) b(x) y ≤ b(x) y ≤ l1(x) y ≤ l2(x) y ≤ l3(x) x Good news… • So, if all the bids are concave… – All the uji are concave (utils) – All the wj are concave ($) uji(xi) wj(uj) xi ($) uj (utils) • Then the program is a linear program (solvable to optimality in polynomial time) Clearing with quasilinear bids • Quasilinear bids = bids where w(u) = u • For surplus maximization, can solve the problem separately for each charity • Not so for donation maximization – Weakly NP-hard to clear – But, if in addition, utility functions are concave, simple greedy approach is optimal Mechanism design (quasilinear bids) • Theorem. There does not exist a mechanism that is ex-post budget balanced, ex-post efficient, ex-interim incentive compatible (BNE), and ex-interim IR … • …even in a setting when there is only one charity, two quasilinear bidders with identical type distributions (both for step functions and concave piecewise linear functions) Proof (for step functions) • • Let there be a (nonexcludable) public good that costs 1 Two agents; each agent’s distribution – – • • • • • • • With probability .5, utility 1.25 for public good (H) With probability .5, utility 0 for public good (L) Assume efficient, BB, ex-interim IR, BNE IC mechanism 1 should not misreport L instead of H, i.e. 5/4-π1(L,L)π1(L,H)≤5/4+5/4-π1(H,L)-π1(H,H) By IR, -π1(L,L)-π1(L,H)≥0, hence π1(H,L)+π1(H,H)≤5/4, by symmetry π2(L,H)+π2(H,H)≤5/4 By BB, π1(H,H)+π2(H,H)+π1(L,H)+π2(L,H)+ π1(H,L)+π2(H,L)=3; hence π1(L,H)+π2(H,L)≥3-10/4=1/2 By BB, π1(L,L)+π2(L,L)=0, hence π1(L,L)+π1(L,H)+π2(L,L)+π2(H,L)≥1/2 But by IR, π1(L,L)+π1(L,H)≤0 and π2(L,L)+π2(H,L)≤0 Contradiction! A multicast cost sharing problem [Feigenbaum et al. 00] [these slides inspired by a talk by Tim Roughgarden] • Vertices (agents) are organized in a tree • Need to select a subset that will receive service from root • Need to construct the minimal subtree that connects all nodes that receive service • Edges have costs • Agents have utilities for service 6 3 1 5 5 1 10 4 1 2 6 Total utility = 10 + 5 + 1 + 6 = 22 Total cost = 3 + 5 + 6 + 1 + 2 = 17 Surplus = 22 - 17 = 5 2 Mechanism design considerations • Agents’ utilities are private knowledge • We need a mechanism that – takes utilities as input – produces a subset of served agents + payments as output • Desiderata: – Efficiency: choose the surplus-maximizing subset – No deficit: payments collected should cover the costs incurred • Even nicer would be (strong) budget balance: payments collected = costs incurred “Marginal cost” mechanism (Clarke mechanism) • Agent i pays: – surplus that would have resulted if i had reported 0, minus – surplus that did result, not counting i’s utility • Efficient. Deficit? 6 3 1 5 5 1 10 1 2 6 4 2 Serious deficit for the Clarke mechanism 1 2 0 2 The Shapley mechanism • Iterative mechanism 3 • Start with everyone 3/2 = 1.5 1 included • Divide the cost of an 5 6/4 + 1/2 =2 edge among agents that 10 make use of it 3/2 + 5 = 6.5 2 • Note that this sets too 6 high a price for some 6/4 + 1/2 users… +2=4 6 1 1 6/4 = 1.5 5 4 2 6/4 + 4 = 5.5 Shapley mechanism continued… • … so we drop those users • Recalculate prices for 6 3 remaining users 1 • Repeat until convergence 5 • ~ ascending auction (prices 1 keep increasing) 10 1 • Might as well stay in until 3+5=8 price too high 2 • Generalization: use any cost 6 sharing function so that 6/2 + 1 + 2 = 6 prices only increase (Moulin mechanisms) 6/2 = 3 5 4 2 Serious inefficiency for the Shapley mechanism 1.1 0 0 0 0 0 … 1 1/2 1/3 1/k Results • Clarke requires less communication than Shapley [Feigenbaum et al. 00] • More recent results approximate both budget balance and efficiency – Most recently Mehta et al. [EC 07] study a generalization of Moulin mechanisms (“acyclic” mechanisms) that correspond naturally to various approximation algorithms