Download Computer-aided mechanism design

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Mechanism design wikipedia , lookup

Transcript
Computer-aided mechanism
design
Ye Fang, Swarat Chaudhuri,
Moshe Vardi
1
Winner = …
Price = …
$200
$100
$150
$175
Private info:
$130
A
B
C
D
$210
$225
$140
$150
E
$150
Utility function = value -price
2
First-Price Auction
Rule:
• Winner
• Payment
highest bidder
highest bid
How much will you bid based on this rule?
• Try to maximize my profit.
• If I am the bidder, I will UNDERBID!
3
First-Price Auction
If everyone thinks like me:
• Payment EQUALS highest bid
• Highest bid LESS THAN true value
• Profit LESS THAN highest true value
4
Second-Price Auction
Rule:
• Winner
• Payment
highest bidder
second highest bid
How will you bid under this rule?
5
If the camera worth $200 to me, profit = ($200 – Price) or 0.
$200 >= brest , bid $200
$200 < brest , bid $200
winning region
bmy > brest
brest = highest bid of rest bidders
lose region
bmy < brest
6
Second-Price Auction
Bidding truthfully is the best strategy.
7
Rules & Behaviors
First-Price
– Bidders bid lower than how much they think the
camera worth to them
Second-Price
– Bidders’ bids equal to how much they think the
camera worth to them
8
Decision making mechanism
Online Auction System
Reputation System
……
Voting System
9
What is common?
Multi-agents
• private information
• conflicting preferences
The decision-making entity
• aiming to achieve a desirable outcome
– In auction, reveal bidders private information or try to
maximize the seller’s profit
– In public resource auction, achieve efficient allocation
of resources.
10
How to achieve desirable outcome?
Decision maker has no control over their
behaviors.
Agents are self-interested.
Answer:
• Design mechanisms
• Agents are better to behave “nicely”
• Deter liars, cheaters
11
If given rules, we can choose one by finding the
best strategy of each player.
Second-Price Auction:
1) truth-telling
2) efficient allocation
But, what if you are not given a rule, and you
want the players to behave in certain way?
12
How to formalize this problem?
System Setting
Agent model
procedure
Outcome Property
rule
Magic Box
Mechanism
13
Our Solution
System Setting
Agent model
procedure
Outcome Property
rule
Our System
Language
Synthesis Compiler
Mechanism
14
Our Solution
Language
• to encode the setting
• to encode the property
Synthesis Program
• reduce to the program to a first order logic
formula
• use SMT solver to search for missing
implementations
15
Winner = …
Price = …
$200
$100
$150
$175
Private info:
$130
A
B
C
D
$210
$225
$140
$150
E
$150
Utility function = value -price
16
Model
Auction Setting
Truth-telling
rule
Agent model
• bid
• Private value
• Utility function
• Partial
Our System
procedure
rule
• How the auction is conducted
Mechanism
• Complete
17
Agent Model
Class Agent {
real bid
real value
function utility(result){
If(bid = winningbid) { ut = value –
price }
else { ut = 0 }
return ut
}
18
Mechanism
function Rule(real[] B){
real winningbid = ??
real price = ??
return (winningbid, price)
}
19
When auction starts
main (){
Agent a_1 = new Agent(“1”)
Agent a_2 = new Agent(“2”)
Agent a_3 = new Agent(“3”)
real[] B = [a_1.b, a_2.b, a_3.b]
return result = Rule(B);
}
20
Specify the Desired Behavior
main (){
Bidding truthfully always yields more profit!
…
real[] B = [a_1.b, a_2.b, a_3.b]
return result = Rule(B);
@assert: forall a_i,
Let B’ = swap(B, i, v[i])
a_i.ut(result) <= a_i.ut(Rule(B’))
}
21
How to replace the question mark?
function Rule(real[] B){
real winningbid = ??
real price = ??
return (winningbid, price)
}
22
Sort inputs first
@assume: sorted(B)
function Rule(real[] B){
real winningbid = ??
real price = ??
return (winningbid, price)
}
23
Linear Function
@assume: sorted(B)
function Rule(real[] B){
real winningbid = ? * B[0] + … + ? *
B[B.size-1]
real price = ? * B[0] + … + ? * B[B.size-1]
return (winningbid, price)
}
24
Put together
@assume: sorted(B)
function Rule(real[] B)
{ real winningbid = …
real price = …
return (winningbid,
price)
}
main(){
…
return result =
Rule(B);
@assert: forall a_i,
Let B’ = …
a_i.ut(result) <=
a_i.ut(Rule(B’))
}
25
26
An Easier Problem
Find an implementation of Foo:
@assume: x < y
Foo(int x, int y){
x=?*x
y=?*y
}
@assert: x > y
27
Replace ? with identifiers
@assume: x < y
Foo(int x, int y){
x = c0 * x
y = c1 * y
}
@assert: x > y
28
Weakest Precondition
@assume: x < y
Foo(int x, int y){
x/c0 > y/c1
s0: x = c0* x
x>y/c1
s1: y = c1* y
x>y
}
@assert: x > y
x<y
x/c0<y/c1
29
Generated Fornula
@assume: x < y
Foo(int x, int y){
x/c0 > y/c1
s0: x = c0* x
x>y/c1
s1: y = c1* y
x>y
}
@assert: x > y
Exists (c0, c1), ForAll(x, y),
(x < y) implies (x/c0 > y/c1)
30
Solve Generated Formula
Exsits(c0, c1), ForAll(x, y), (x < y) implies (x/c0 > y/c1)
SMT Solver
(Satisfiability Modulo Theories)
values for c0, c1
31
32
Original Problem
@assume: sorted(B)
function Rule(real[] B)
{ real winningbid = …
real price = …
return (winningbid,
price)
}
main(){
…
return result =
Rule(B);
@assert: forall a_i,
Let B’ = …
a_i.ut(result) >=
a_i.ut(Rule(B’))
}
33
Replace ? with Identifiers
@assume: sorted(B)
function Rule(real[] B){
real winningbid = c[0] * B[0] + … +
c[B.size-1] * B[B.size-1]
real price = d[0] * B[0] + … + d[B.size-1] *
B[B.size-1]
return (winningbid, price)
}
34
Original Problem
@assume: sorted(B)
function Rule(real[] B){
real winningbid = c[0] * B[0] + … + c[B.size-1]
* B[B.size-1]
real price = d[0] * B[0] + … + d[B.size-1] *
B[B.size-1]
return (winningbid, price)}
@assert: forall a_i,
Let B’ = swap(B, I, v[i])
a_i.ut(result) >= a_i.ut(Rule(B’))
35
Generated Formula
Compute weakest precondition given assertion
• f(c[0], …, c[B.size-1], d[0], …, d[B.size-1])
Formula to solve:
• Exists(C, D), ForAll(B), sorted(B) implies f(C, D)
36
Solve Generated Formula
• Exists(C, D), ForAll(B), sorted(B) implies f(C, D)
SMT Solver
(Satisfiability Modulo Theories)
values for c[0], …, c[B.size-1], d[0], …, d[B.size-1]
37
Our Contribution
System Setting
Agent model
procedure
Outcome Property
rule
Our System
Language
Synthesis Compiler
Mechanism
38
What we have achieved?
We reconstructed a set of classical mechanisms
• single-item auction
• Google online ads auction
New mechanisms
• multistage auction
• result in new properties
Voting System
• no absolute fair mechanism
39
Future Work
Extend to model with arbitrarily large number of
agents.
Enrich the kind of mechanism functions that can
be handled.
Explore more complicated real-life preference
aggregation systems.
40