Transcript lecture 10

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 nonnegative 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
I
1
II
7
III
9
sum 17
b
5
6
8
19
c
10
4
7
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
I
1
II
7
III
9
sum 17
b
5
6
8
19
c
10
4
7
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
I
II
III
sum
a
1
7
9
17
b
5
6
8
19
c
10
4
7
21
price
5
0
0
utility
10-5=5
4
7
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
I
II
III
sum
a
1
7
9
17
b
5
6
8
19
c
10
4
7
21
price
5
0
0
utility
10-5=5
4
7
What if player I lies and says that her value for c is 7?
I
II
III
sum
a
1
7
9
17
b
5
6
8
19
c
10 7
4
7
18
price utility
2
5-2=3
Summary & Example
I
II
III
sum
a
1
7
9
17
b
5
6
8
19
c
10
4
7
21
price
5
0
0
utility
10-5=5
4
7
What if player I lies and says that her value for c is 7?
I
II
III
sum
a
1
7
9
17
b
5
6
8
19
c
10 7
4
7
18
price utility
2
5-2=3
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.