Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer-aided mechanism design Ye Fang, Swarat Chaudhuri, Moshe Vardi 1.

Similar presentations


Presentation on theme: "Computer-aided mechanism design Ye Fang, Swarat Chaudhuri, Moshe Vardi 1."— Presentation transcript:

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


Download ppt "Computer-aided mechanism design Ye Fang, Swarat Chaudhuri, Moshe Vardi 1."

Similar presentations


Ads by Google