Loading in 5 sec....

Mechanism Design and the VCG mechanismPowerPoint Presentation

Mechanism Design and the VCG mechanism

- 184 Views
- Uploaded on
- Presentation posted in: General

Mechanism Design and the VCG mechanism

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

- 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.

- 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.

- 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.

- 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

- 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?

- 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?

- 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.

- But we pay the players, instead of getting paid??

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

- 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.

- 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)

- 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.

- 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:
abc

I1510

II764

III987

sum171921

- 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:
abc

I1510

II764

III987

sum171921

The planner wants to choose alternative c.

- 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.

abcpriceutility

I1510 510-5=5

II764 04

III987 07

sum171921

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.

abcpriceutility

I1510 510-5=5

II764 04

III987 07

sum171921

What if player I lies and says that her value for c is 7?

abcpriceutility

I1510 7 25-2=3

II764

III987

sum171918

abcpriceutility

I1510 510-5=5

II764 04

III987 07

sum171921

What if player I lies and says that her value for c is 7?

abcpriceutility

I1510 7 25-2=3

II764

III987

sum171918

smaller than her utility when telling the truth!

- 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?

- 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.

- 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.

- Suppose C=100, we have 102 players, and each player has value=1. Then the price that each player will pay is zero!

- 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.