240 likes | 703 Views
Mechanism Design and the VCG mechanism. The concept of a “mechanism”. A general (abstract) solution for welfare maximization: the VCG mechanism. This is a very important building block to the design of many multi-item auction formats. The setting. A set of “alternatives”, A.
E N D
Mechanism Design and the VCG mechanism • The concept of a “mechanism”. • A general (abstract) solution for welfare maximization: the VCG mechanism. • This is a very important building block to the design of many multi-item auction formats.
The setting • A set of “alternatives”, A. • Player types: vi: A -> R. vi(a) is the value of player i if alternative a is chosen. • The function vi() is private information to player i. All we know is that it must belong to a domain Vi of all possible player types. • Example: One-item auction. • There are n alternatives a0, a1,...,an. In alternative ai for i>0 player i gets the item, and in alternative a0 no one wins. • The domain Vi contains all functions such that vi(ai)=v and vi(aj)=0 for all j ≠ i.
The setting (2) • A social planner wants to choose an alternative according to players’ types: f : V1 × ... × Vn -> A • For example, in one-item auctions, to allocate the item to the player with the highest value. • Problem: the planner does not know the types.
The setting (2) • A social planner wants to choose an alternative according to players’ types: f : V1 × ... × Vn -> A • For example, in one-item auctions, to allocate the item to the player with the highest value. • Problem: the planner does not know the types. • Suggestion: design a (direct-revelation) mechanism M=(f,p1,...pn), where pi : V1 × ... × Vn -> R is the price that player i will pay, given the players' declarations. • We want to construct prices that will induce truthfulness (in dominant strategies): For any i, v-i, vi, v'i, vi(f(vi,v-i)) - pi(vi,v-i) > vi(f(v'i,v-i)) - pi(v'i,v-i) Player i’s utility if declaring vi
Implementation • A truthful mechanism (f,p) implements the function f. • Can we do this in general? • We will consider a specific function: f(v) = argmaxa in A{ v1(a) + … + vn(a) } This function maximizes the “social welfare”. • In a single-item auction, we know how to construct a truthful mechanism that maximizes the social welfare – this is the 2nd price auction that we already know. • How about doing this in general?
Redoing the case of the 2nd price auction • Another mechanism: • Each bidder reports his type. • The winner is the player with the highest value. • The mechanism pays all other players the winners’ value. • In other words, we equate the utility of all players to be the highest value. • Is this truthful?
Redoing the case of the 2nd price auction • Another mechanism: • Each bidder reports his type. • The winner is the player with the highest value. • The mechanism pays all other players the winners’ value. • In other words, we equate the utility of all players to be the highest value. • Is this truthful? Yes: • If a player has the highest value, his utility if being truthful is his value (since he wins). If he lies and loses, his utility will be the second highest value, which is smaller. • If a player does not have the highest value, his utility will still be the highest value if he is truthful, and otherwise will be lower than that.
Problem? • But we pay the players, instead of getting paid??
Useful Lemma Lemma: Suppose the mechanism M=(f,p1,...pn) is truthful, and fix some arbitrary functions hi : V-i -> R (for i=1,…n). Define new price function p’i(v) = pi(v) + hi(v-i). Then the mechanism M’ =(f,p’1,...p’n) is truthful. Proof: Fix any i, v-i, vi, v‘i. Since M is truthful we have: vi(f(vi,v-i)) - pi(vi,v-i) > vi(f(v'i,v-i)) - pi(v'i,v-i) => vi(f(vi,v-i)) - pi(vi,v-i) - hi(v-i) > vi(f(v'i,v-i)) - pi(v'i,v-i) - hi(v-i) => vi(f(vi,v-i)) - p'i(vi,v-i) > vi(f(v'i,v-i)) - p'i(v'i,v-i) => M’ is truthful
Problem? • But we pay the players, instead of getting paid?? • Solution: subtract a constant hi(v-i) from the prices, so that the total will be negative. • For example: hi(v-i) = max j ≠ i vj . Therefore the payments will be: • We pay the winner: 0 - max j ≠ i vj = minus the second highest price, so actually the winner pays us the second highest price. • We pay every loser: max j vj - max j ≠ i vj = 0. • Conclusion: this is exactly the second price auction.
Vickrey-Clarke-Groves (VCG) • A generalization of what we just saw for arbitrary domains. • The mechanism (VCG): • f(v) = argmaxa in A{ v1(a) + … + vn(a) } • pi(v) = -j ≠ i vj(a) + hi(v-i) [ where a = f(v) ] THM: The VCG mechanism is truthful. Proof: Fix any i, v-i, vi, v‘i. Suppose f(vi,v-i) = a and f(v'i,v-i) = b. => i vi(a) >i vi(b) We get: vi(f(vi,v-i)) - pi(vi,v-i) = vi(a) +j ≠ i vj(a) - hi(v-i) = i vi(a) - hi(v-i) >i vi(b) - hi(v-i) = vi(b) + j ≠ i vj(b) - hi(v-i) = vi(f(v'i,v-i)) - pi(v'i,v-i)
Setting the function hi() • Truthfulness alone poses no restrictions on the hi()’s. • However, usually, we would like one additional requirement:“Individual rationality”: the player’s utility will always be non-negative if he is truthful. • Therefore, a good function is: hi(v-i) = j ≠ i vj(f(0, v-i)) Few properties (assuming values are non-negative): • Payments are always non-negative (players always pay). • A player’s utility is non-negative. • If the same outcome will be chosen whether the player participates or not, then his price is zero. • A player pays the “damage” he caused the other players.
Summary & Example • A social designer has a set of alternatives. • Each player has a value for every alternative. • The social planner wants to choose the alternative that maximizes the sum of values. • Example: a b c I 1 5 10 II 7 6 4 III 9 8 7 sum 17 19 21
Summary & Example • A social designer has a set of alternatives. • Each player has a value for every alternative. • The social planner wants to choose the alternative that maximizes the sum of values. • Example: a b c I 1 5 10 II 7 6 4 III 9 8 7 sum 17 19 21 The planner wants to choose alternative c.
Summary & Example • Problem: the designer does not know the values of the players. • A solution (VCG mechanism): • Request players to reveal values. • Choose the alternative according to players' declarations. • Charge a payment from player i that is equal to the “damage” she causes the other players: the aggregate value of the best alternative, if player i was absent, minus the sum of values of all players besides i to the chosen alternative. THM: 1) The VCG mechanism is truthful. 2) Payments are always non-negative (players always pay). 3) A player’s utility is non-negative. 4) If the same outcome will be chosen whether the player participates or not, then his price is zero.
Summary & Example a b c price utility I 1 5 10 5 10-5=5 II 7 6 4 0 4 III 9 8 7 0 7 sum 17 19 21 If player I is absent, alternative a is chosen, with value 16. The chosen alternative when player I is present is c, and its value to the other players is 11. Thus the price of player I is 16 – 11 = 5.
Summary & Example a b c price utility I 1 5 10 5 10-5=5 II 7 6 4 0 4 III 9 8 7 0 7 sum 17 19 21 What if player I lies and says that her value for c is 7? a b c price utility I 1 5 10 7 2 5-2=3 II 7 6 4 III 9 8 7 sum 17 19 18
Summary & Example a b c price utility I 1 5 10 5 10-5=5 II 7 6 4 0 4 III 9 8 7 0 7 sum 17 19 21 What if player I lies and says that her value for c is 7? a b c price utility I 1 5 10 7 2 5-2=3 II 7 6 4 III 9 8 7 sum 17 19 18 smaller than her utility when telling the truth!
Example: public project • Story: The government considers building a bridge. Each citizen, i, will increase his productivity by some value vi if the bridge will be built. The cost of building the bridge is C. The government wants to build the bridge iff i vi> C, but does not know the values. What to do?
Example: public project • Story: The government considers building a bridge. Each citizen, i, will increase his productivity by some value vi if the bridge will be built. The cost of building the bridge is C. The government wants to build the bridge iff i vi> C, but does not know the values. What to do? • We can use VCG. We have two alternatives (YES/NO), and each player, including the government, has a value for each alternative (zero for NO, vi or -C for YES). VCG will choose YES iff i vi - C > 0, which is what the government wants.
Example: public project • Story: The government considers building a bridge. Each citizen, i, will increase his productivity by some value vi if the bridge will be built. The cost of building the bridge is C. The government wants to build the bridge iff i vi> C, but does not know the values. What to do? • We can use VCG. We have two alternatives (YES/NO), and each player, including the government, has a value for each alternative (zero for NO, vi or -C for YES). VCG will choose YES iff i vi - C > 0, which is what the government wants. • Properties: • A player will pay nothing if j ≠ i vj> C, otherwise (in a YES case) he will pay C - j ≠ i vj. • These payments may not cover the entire cost C. • If we can exclude some players from using the bridge, we can use the CostShare method that we saw previously.
The problem with payments • Suppose C=100, we have 102 players, and each player has value=1. Then the price that each player will pay is zero!
Two main disadvantages of VCG • Suitable only when our goal is welfare maximization. Other goals, like revenue maximization, are not answered. • If some values are negative, the mechanism may end up paying the players more than the payments it collects.