Download presentation
Presentation is loading. Please wait.
Published byJose Balderson Modified over 10 years ago
1
Computer-aided mechanism design Ye Fang, Swarat Chaudhuri, Moshe Vardi 1
2
$150 $100$200 $130$175 $210$225 $140 $150 Private info: Winner = … Price = … A B C D E 2 Utility function = value -price
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! 3
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 4
5
Second-Price Auction Rule: Winner highest bidder Payment second highest bid How will you bid under this rule? 5
6
b rest = highest bid of rest bidders winning region b my > b rest lose region b my < b rest If the camera worth $200 to me, profit = ($200 – Price) or 0. $200 >= b rest, bid $200 $200 < b rest, bid $200 6
7
Second-Price Auction Bidding truthfully is the best strategy. 7
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 8
9
Decision making mechanism Online Auction System 9 Voting System Reputation System ……
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. 10
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 11
12
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 easy!
13
How to formalize this problem? Outcome Property System Setting Mechanism Magic Box 13 Agent model rule procedure
14
Our Solution Outcome Property System Setting Mechanism Our System 14 Agent model rule procedure Language Synthesis Compiler
15
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
16
$150 $100$200 $130$175 $210$225 $140 $150 Private info: Winner = … Price = … A B C D E 16 Utility function = value -price
17
Model Truth-telling Auction Setting Mechanism Our System 17 Agent model rule procedure bid Private value Utility function How the auction is conducted Partial rule Complete
18
Agent Model Class Agent { real bid real value function utility(result){ If(bid = winningbid) { ut = value – price } else { ut = 0 } return ut } 18
19
Mechanism function Rule(real[] B){ real winningbid = ?? real price = ?? return (winningbid, price) } 19
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); } 20
21
Specify the Desired Behavior main (){ … 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! 21
22
How to replace the question mark? function Rule(real[] B){ real winningbid = ?? real price = ?? return (winningbid, price) } 22
23
Sort inputs first @assume: sorted(B) function Rule(real[] B){ real winningbid = ?? real price = ?? return (winningbid, price) } 23
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) } 24
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’)) } 25
26
26
27
An Easier Problem Find an implementation of Foo: @assume: x < y Foo(int x, int y){ x = ? * x y = ? * y } @assert: x > y 27
28
Replace ? with identifiers @assume: x < y Foo(int x, int y){ x = c0 * x y = c1 * y } @assert: x > y 28
29
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 29 x<y x/c0<y/c1
30
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/c1) 30
31
Solve Generated Formula Exsits(c0, c1), ForAll(x, y), (x y/c1) SMT Solver (Satisfiability Modulo Theories) values for c0, c1 31
32
32
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’)) } 33
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) } 34
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’)) 35
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) 36
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] 37
38
Our Contribution Outcome Property System Setting Mechanism Our System 38 Agent model rule procedure Language Synthesis Compiler
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 properties Voting System no absolute fair mechanism 39
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. 40
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.