types - Carnegie Mellon School of Computer Science

An Algorithm for Automatically
Designing Deterministic Mechanisms
without Payments
Vincent Conitzer and Tuomas Sandholm
Computer Science Department
Carnegie Mellon University
Mechanism design
• One outcome must be selected
• Select based on agents’ reported preferences (types)
types
mechanism
outcome
• Agents report types strategically
• Mechanism designer designs mechanism to achieve
good outcomes in spite of strategic behavior
– “Good” measured relative to true types
– Designer only knows prior distribution over types
Mechanism design constraints
• Incentive compatibility: Agents should always
be best off reporting truthfully
– Revelation principle justifies restriction to truthful
mechanisms
• Participation: Agents should not be made
worse off by participating in mechanism
– Otherwise will not participate
Classical mechanism design
• Classical mechanism design has created a number of
canonical mechanisms
– Vickrey, Clarke, Groves mechanisms; Myerson auction; …
– These obtain a particular goal over a range of settings
• It has also created impossibility results
– Gibbard-Satterthwaite; Myerson-Satterthwaite; …
– Show that no mechanism obtains a goal over a range of settings
Automated mechanism design
Solve mechanism design as an optimization problem
automatically, only for setting at hand
• Advantages: Can be used when…
– Canonical mechanisms are impossible for general class
that setting lies in
– Canonical mechanisms are not known
• Unusual objective; payments not possible; …
– Canonical mechanism is known, but can do better
• Higher objective, stronger nonmanipulability/participation…
Special case studied in this paper
General case
This paper
k agents
1 (type-reporting) agent
payments may/may not be
possible
payments are not
possible
randomization may/may not
be possible
deterministic
mechanisms only
Computational problem
• Input: instance is given by
–
–
–
–
–
O: set of possible outcomes
: set of possible types for the agent
p:   [0, 1]: probability distribution over types
u:   O  : agent’s utility function
g:   O  : designer’s objective function
• Output: mechanism o:   O which
– is nonmanipulable:  , ’  , u(, o()) 
u(, o(’))
– satisfies participation constraint:    , u(,
o())  0
– under these constraints, maximize expected objective:

p()g(o())
Application: one-on-one bartering
•
•
•
•
Two agents each have initial endowment of goods
Each agent has value for every subset of all goods
Can trade goods, but payments are not possible
Agent 1 gets to design rules of the game
– “Mechanism designer”
– Will maximize own expected utility with mechanism
– Must honor agent 2’s participation constraint
• Agent 2 reports type
– “Agent” participating in mechanism
– Mechanism specifies outcome for each type
Naïve search vs. more sophisticated
• Naïve: Search over functions o:   O
• Naïve search space has size |O|||
• We will show how to search over subsets of outcomes
instead
• This search space has size 2|O|
– Typically || >> |O|
• If can independently have k different values for each outcome, || = k|O|
– Otherwise, can restrict search to subsets of outcomes of at most
size || - still smaller
The mechanism oX for X  O
• With every subset X of outcomes, associate mechanism oX over these
outcomes:
– Every type should get outcome that maximizes utility among outcomes in X
– Given this, objective maximizing outcome in X should be chosen
– Further ties broken arbitrarily
• Thrm. Any oX is truthful.
• Thrm. For some X, oX is an optimal truthful mechanism.
• Example: X={o1, o3} in following setting:
Type
1
2
3
u(o1) u(o2) u(o3) g(o1) g(o2) g(o3) outcome
1
1
3
2
2
2
3
1
1
3
1
1
2
3
2
1
2
3
o3
o3
o1
Expected objective
value:
P(1)·1+P(2)·2+P(
3)·1
Searching over subsets of outcomes
• Now we can search over subsets of outcomes
– Let X be those that are definitely in, Y those that are definitely out
X={}, Y={}
O1 out
O1 in
X={}, Y={o1}
X={o1}, Y={}
O2 in
…
O2 out
O2 in
…
X={o1}, Y={o2}
O3 in
X={o1, o3}, Y={o2}
O2 out
…
O3 out
…
Q: How do we evaluate nonleaf nodes?
A: Would like admissible heuristic
Mechanism oX,Y for X,Y  O
• Suppose we have decided for only some outcomes whether they are in or out
– X are definitely in, Y are definitely out.
• What is an optimistic estimate of the best mechanism from here?
– Every type should get at least as much utility as the utility-maximizing outcome
among those that are definitely in. (X)
– Given this, every type should get an objective-maximizing outcome among those that
may still be in. (O-Y)
• Thrm. The expected value of the objective for oX,Y is at least that of any truthful
(leaf) mechanism down the tree.
– oX,Y not necessarily truthful; objective computed as if it were
• Example: X={o1}, Y={o2}
Type
1
2
3
u(o1) u(o2) u(o3) g(o1) g(o2) g(o3) outcome
1
1
3
2
2
2
3
1
1
3
1
1
2
3
2
1
2
3
o1
o3
o1
Expected objective
value:
P(1)·3+P(2)·2+P(
3)·1
Using oX,Y as the heuristic
• Can use the expected value of the objective for oX,Y as the heuristic
– Admissible because it always has at least the value of any
descendant
X={}, Y={}
O1 out
O1 in
X={}, Y={o1}
X={o1}, Y={}
O2 in
…
O2 out
O2 in
X={o1}, Y={o2}
O3 in
X={o1, o3}, Y={o2}
O3 out
…
…
O2 out
…
Participation constraint
• Thrm. oX satisfies participation constraint iff for every
type , there is some o  X such that u(, o)  0
• So, during search, simply do not expand nodes where
this is no longer true
Different search methods
• A* runs out of memory too quickly; not used
• Branch-and-Bound DFS
– DFS except only go to child node if its heuristic exceeds current
best mechanism found
• IDA*
– Same, but have an initial cutoff objective value
– If no mechanism reaching that objective value is found, start again
with cutoff reduced by a fixed percentage
• Or cutoff set to highest heuristic value not explored – whichever is lower
• In both cases, we also use some special tricks and data
structures for computing node’s heuristic
– Use information computed at parent node
Special-purpose algorithms vs. CPLEX
Uniform
utility
log
functions, (seconds)
no
participation
Uniform
utility
log
functions, (seconds)
with
participation
Bartering
a number
of items
3
2.5
CPLEX
IDA*
CPLEX
IDA*
B&B
B&B
0
90
#types
2
0
1.5
CPLEX
#outcomes
30
CPLEX
IDA*
IDA*
B&B
B&B
0
0.5
log
(seconds)
#types
90
0
30
0.5
CPLEX
CPLEX
B&B
B&B
IDA*
0
#outcomes
#types
50
0
IDA*
#outcomes
35
Future research
• Extend algorithm to more general cases…
• …or at least find algorithms for other special cases
• Can extra structure on the instances be used?
– E.g. CPLEX seems able to exploit bartering structure
– Optimal combinatorial auctions?
Thank you for your attention!