computer-aided mechanism design
DESCRIPTION
Computer-aided mechanism design. Ye Fang, Swarat Chaudhuri , Moshe Vardi. Winner = … Price = …. $200. $100. $150. $175. $130. C. B. D. A. E. $150. $140. Private info:. $210. $225. $150. Utility function = value -price. First-Price Auction . Rule : - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/1.jpg)
1
Computer-aided mechanism design
Ye Fang, Swarat Chaudhuri, Moshe Vardi
![Page 2: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/2.jpg)
2
$150$100$200
$130$175
$210 $225 $140 $150 $150Private info:
Winner = …Price = …
A B C D E
Utility function = value -price
![Page 3: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/3.jpg)
3
First-Price Auction
Rule:• Winner highest bidder• Payment highest bid
How much will you bid based on this rule?• Try to maximize my profit.
• If I am the bidder, I will UNDERBID!
![Page 4: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/4.jpg)
4
First-Price Auction
If everyone thinks like me:• Payment EQUALS highest bid• Highest bid LESS THAN true value• Profit LESS THAN highest true value
![Page 5: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/5.jpg)
5
Second-Price Auction
Rule:• Winner highest bidder• Payment second highest bid
How will you bid under this rule?
![Page 6: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/6.jpg)
6
brest = highest bid of rest bidders
winning regionbmy > brest
lose regionbmy < brest
If the camera worth $200 to me, profit = ($200 – Price) or 0.
$200 >= brest , bid $200
$200 < brest , bid $200
![Page 7: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/7.jpg)
7
Second-Price Auction
Bidding truthfully is the best strategy.
![Page 8: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/8.jpg)
8
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
![Page 9: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/9.jpg)
9
Decision making mechanismOnline Auction System
Voting SystemReputation System
……
![Page 10: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/10.jpg)
10
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.
![Page 11: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/11.jpg)
11
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
![Page 12: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/12.jpg)
12
If given rules, we can choose one by finding the best strategy of each player.
Second-Price Auction:1) truth-telling2) efficient allocation
But, what if you are not given a rule, and you want the players to behave in certain way?
easy!
![Page 13: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/13.jpg)
13
How to formalize this problem?
Outcome PropertySystem Setting
Mechanism
Magic Box
Agent model rule
procedure
![Page 14: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/14.jpg)
14
Our Solution
Outcome PropertySystem Setting
Mechanism
Our System
Agent model rule
procedureLanguage
Synthesis Compiler
![Page 15: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/15.jpg)
15
Our SolutionLanguage • to encode the setting • to encode the propertySynthesis Program • reduce to the program to a first order logic
formula• use SMT solver to search for missing
implementations
![Page 16: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/16.jpg)
16
$150$100$200
$130$175
$210 $225 $140 $150 $150Private info:
Winner = …Price = …
A B C D E
Utility function = value -price
![Page 17: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/17.jpg)
17
Model
Truth-tellingAuction Setting
Mechanism
Our System
Agent model rule
procedure
• bid• Private value• Utility function
• How the auction is conducted
• Partial
rule
• Complete
![Page 18: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/18.jpg)
18
Agent ModelClass Agent {
real bidreal valuefunction utility(result){If(bid = winningbid) { ut = value –
price }else { ut = 0 }return ut }
![Page 19: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/19.jpg)
19
Mechanism
function Rule(real[] B){real winningbid = ??real price = ??return (winningbid, price)
}
![Page 20: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/20.jpg)
20
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);}
![Page 21: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/21.jpg)
21
Specify the Desired Behaviormain (){
…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’))
}
Bidding truthfully always yields more profit!
![Page 22: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/22.jpg)
22
How to replace the question mark?
function Rule(real[] B){real winningbid = ??real price = ??return (winningbid, price)
}
![Page 23: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/23.jpg)
23
Sort inputs first
@assume: sorted(B)function Rule(real[] B){
real winningbid = ??real price = ??return (winningbid, price)
}
![Page 24: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/24.jpg)
24
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)}
![Page 25: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/25.jpg)
25
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’)) }
![Page 26: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/26.jpg)
26
![Page 27: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/27.jpg)
27
An Easier Problem
Find an implementation of Foo: @assume: x < y Foo(int x, int y){
x = ? * x y = ? * y } @assert: x > y
![Page 28: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/28.jpg)
28
Replace ? with identifiers
@assume: x < y Foo(int x, int y){
x = c0 * x y = c1 * y } @assert: x > y
![Page 29: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/29.jpg)
29
Weakest Precondition
@assume: x < yFoo(int x, int y){
x/c0 > y/c1s0: x = c0* xx>y/c1
s1: y = c1* yx>y }
@assert: x > y
x<y
x/c0<y/c1
![Page 30: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/30.jpg)
30
Generated Fornula
@assume: x < yFoo(int x, int y){
x/c0 > y/c1s0: x = c0* xx>y/c1
s1: y = c1* yx>y }
@assert: x > y
Exists (c0, c1), ForAll(x, y),(x < y) implies (x/c0 > y/c1)
![Page 31: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/31.jpg)
31
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
![Page 32: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/32.jpg)
32
![Page 33: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/33.jpg)
33
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’)) }
![Page 34: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/34.jpg)
34
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)}
![Page 35: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/35.jpg)
35
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’))
![Page 36: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/36.jpg)
36
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)
![Page 37: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/37.jpg)
37
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]
![Page 38: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/38.jpg)
38
Our Contribution
Outcome PropertySystem Setting
Mechanism
Our System
Agent model rule
procedureLanguage
Synthesis Compiler
![Page 39: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/39.jpg)
39
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 propertiesVoting System• no absolute fair mechanism
![Page 40: Computer-aided mechanism design](https://reader036.vdocuments.us/reader036/viewer/2022062323/568164ad550346895dd6b550/html5/thumbnails/40.jpg)
40
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.