In mechanism design, a Vickrey–Clarke–Groves (VCG) mechanism is a generic truthful mechanism for achieving a socially optimal solution. It is a generalization of a Vickrey–Clarke–Groves auction. A VCG auction performs a specific task: dividing items among people. A VCG mechanism is more general: it can be used to select any outcome out of a set of possible outcomes.
There is a set
X
There are
n
i
vi:X\toR+
which expresses the value it has for each alternative, in monetary terms.
It is assumed that the agents have quasilinear utility functions; this means that, if the outcome is
x
pi
i
ui:=vi(x)+pi
Our goal is to select an outcome that maximizes the sum of values, i.e.:
xopt(v)=\argmaxx\in
n | |
\sum | |
i=1 |
vi(x)
In other words, our social-choice function is utilitarian.
The VCG family is a family of mechanisms that implements the utilitarian welfare function. A typical mechanism in the VCG family works in the following way:
1. It asks the agents to report their value function. I.e, each agent
i
vi(x)
x
2. Based on the agents' report-vector
v
x*=xopt(v)
3. It pays, to each agent
i
pi:=\sumj ≠
*) | |
v | |
j(x |
4. It pays, to each agent
i
pi+hi(v-i)
v-i=(v1,...,vi-1,vi+1,...,vn)
hi
Every mechanism in the VCG family is a truthful mechanism, that is, a mechanism where bidding the true valuation is a dominant strategy.
The trick is in step 3. The agent is paid the total value of the other agents; hence, together with its own value, the total welfare of the agent is exactly equal to the total welfare of society. Hence, the incentives of the agent are aligned with those of the society and the agent is incentivized to be truthful in order to help the mechanism achieve its goal.
The function
hi
The function
hi
hi
We could take, for example:
hi(v-i)=0
An alternative function is:
hi(v-i)=-maxx\sumjvj(x)
(social welfare of others if
i
i
i
When the valuations of all agents are weakly-positive, the Clarke pivot rule has two important properties:
vi(x)+pi\geq0
pi\leq0
This makes the VCG mechanism a win-win game: the players receive the outcomes they desire, and pay an amount which is less than their gain. So the players remain with a net positive gain, and the mechanism gains a net positive payment.
Instead of maximizing the sum of values, we may want to maximize a weighted sum:
xopt(v)=\argmaxx\in
n | |
\sum | |
i=1 |
wivi(x)
wi
i
The VCG mechanism from above can easily be generalized by changing the price function in step 3 to:
pi:={1\overwi}\sumj ≠ wj
*) | |
v | |
j(x |
The VCG mechanism can be adapted to situations in which the goal is to minimize the sum of costs (instead of maximizing the sum of gains). Costs can be represented as negative values, so that minimization of cost is equivalent to maximization of values.
The payments in step 3 are negative: each agent has to pay the total cost incurred by all other agents. If agents are free to choose whether to participate or not, then we must make sure that their net payment is non-negative (this requirement is called individual rationality). The Clarke pivot rule can be used for this purpose: in step 4, each agent
i
i
i
See main article: article and Vickrey–Clarke–Groves auction. Vickrey–Clarke–Groves auction is an application of VCG mechanism for welfare maximization. Here,
X
A well-known special case is the Vickrey Auction. Here, there is only a single item, and the set
X
n+1
n
A VCG mechanism can also be used in a double auction. It is the most general form of incentive-compatible double-auction since it can handle a combinatorial auction with arbitrary value functions on bundles. Unfortunately, it is not budget-balanced: the total value paid by the buyers is smaller than the total value received by the sellers. Hence, in order to make it work, the auctioneer has to subsidize the trade.
The government wants to decide whether to undertake a certain project. The cost of the project is C. Each citizen derives a different value from the project. The project should be undertaken if the sum of values of all citizens is more than the cost. Here, the VCG mechanism with the Clarke pivot rule means that a citizen pays a non-zero tax for that project if and only if they are pivotal, i.e., without their declaration the total value is less than C and with their declaration the total value is more than C. This taxing scheme is incentive-compatible, but again it is not budget-balanced – the total amount of tax collected is usually less than C.
The quickest path problem is a cost-minimization problem. The goal is to send a message between two points in a communication network, which is modeled as a graph. Each computer in the network is modeled as an edge in the graph. Different computers have different transmission speeds, so every edge in the network has a numeric cost equal to the number of milliseconds it takes to transmit the message. Our goal is to send the message as quickly as possible, so we want to find the path with the smallest total cost.
If we know the transmission-time of each computer (-the cost of each edge), then we can use a standard algorithm for solving the shortest path problem. If we do not know the transmission times, then we have to ask each computer to tell us its transmission-time. But, the computers have their own selfish interests so they might not tell us the truth. For example, a computer might tell us that its transmission time is very large, so that we will not bother it with our messages.
The VCG mechanism can be used to solve this problem. Here,
X
x\inX
The value of an agent,
vi(x)
i\inx
i\notinx
The Clarke pivot rule can be used to make the mechanism individually-rational: after paying us the cost, each agent receives from us a positive payment, which is equal to the time it would have taken the message to arrive at its destination if the agent would not have been present. Obviously, this time is weakly larger than the time required when the agent is present, so the net gain of every agent is weakly positive. Intuitively, each agent is paid according to its marginal contribution to the transmission.
Other graph problems can be solved in a similar way, e.g. minimum spanning tree or maximum matching. A similar solution applies to the more general case where each agent holds some subset of the edges.
For another example, where the VCG mechanism provides a sub-optimal approximation, see Truthful job scheduling.
A VCG mechanism implements a utilitarian social-choice function - a function that maximizes a weighted sum of values (also called an affine maximizer). Roberts' theorem proves that, if:
X
R
|X|\geq3
X
Moreover, the price-functions of the VCG mechanisms are also unique in the following sense. If:
Outcome
p1,...,pn
Outcome
p'1,...,p'n
h1,...,hn
i
p'i(vi,v-i)=pi(vi,v-i)+hi(v-i)
vi
This means that VCG mechanisms are the only truthful mechanisms that maximize the utilitarian social-welfare.
A VCG mechanism has to calculate the optimal outcome, based on the agents' reports (step 2 above). In some cases, this calculation is computationally difficult. For example, in combinatorial auctions, calculating the optimal assignment is NP-hard.
Sometimes there are approximation algorithms to the optimization problem, but, using such an approximation might make the mechanism non-truthful.[2]