1 / 40

Computer-aided mechanism design

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 :

temple
Download Presentation

Computer-aided mechanism design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Winner = … Price = … $200 $100 $150 $175 $130 C B D A E $150 $140 Private info: $210 $225 $150 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!

  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

  5. Second-Price Auction Rule: • Winner highest bidder • Payment second highest bid How will you bid under this rule?

  6. 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

  7. Second-Price Auction Bidding truthfully is the best strategy.

  8. Rules & Behaviors First-Price • Bidders bid lower thanhow much they think the camera worth to them Second-Price • Bidders’ bids equal to how much they think the camera worth to them

  9. Decision making mechanism Online Auction System Reputation System Voting System ……

  10. What is common? Multi-agents • privateinformation • 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.

  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

  12. easy! If given rules, we can choose one by finding the best strategyof 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?

  13. How to formalize this problem? System Setting Outcome Property Agent model rule Magic Box procedure Mechanism

  14. Our Solution System Setting Outcome Property Agent model rule Language Our System procedure Synthesis Compiler Mechanism

  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 tosearch for missing implementations

  16. Winner = … Price = … $200 $100 $150 $175 $130 C B D A E $150 $140 Private info: $210 $225 $150 Utility function = value -price

  17. Model Auction Setting Truth-telling rule Agent model • bid • Private value • Utility function • Partial Our System procedure rule • How the auction is conducted • Complete Mechanism

  18. Agent Model Class Agent { realbid realvalue functionutility(result){If(bid = winningbid) { ut = value – price } else{ ut = 0 } returnut }

  19. Mechanism function Rule(real[] B){ realwinningbid= ?? realprice = ?? return (winningbid, price) }

  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);}

  21. Specify the Desired Behavior main(){ … real[] B = [a_1.b, a_2.b, a_3.b] return result = Rule(B); @assert:foralla_i, Let B’ = swap(B, i, v[i]) a_i.ut(result) <= a_i.ut(Rule(B’)) } Bidding truthfully always yields more profit!

  22. How to replace the question mark? functionRule(real[] B){ realwinningbid= ?? real price = ?? return(winningbid, price) }

  23. Sort inputs first @assume: sorted(B) functionRule(real[] B){ realwinningbid= ?? real price = ?? return(winningbid, price) }

  24. Linear Function @assume: sorted(B) functionRule(real[] B){ realwinningbid= ? * B[0] + … + ? * B[B.size-1] real price = ? * B[0] + … + ? * B[B.size-1] return(winningbid, price) }

  25. Put together main(){ … returnresult = Rule(B); @assert:foralla_i, LetB’ = … a_i.ut(result) <= a_i.ut(Rule(B’)) } @assume: sorted(B) functionRule(real[] B) { realwinningbid = … real price = … return(winningbid, price) }

  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. Original Problem main(){ … returnresult = Rule(B); @assert:foralla_i, LetB’ = … a_i.ut(result) >= a_i.ut(Rule(B’)) } @assume: sorted(B) functionRule(real[] B) { realwinningbid = … real price = … return(winningbid, price) }

  32. Replace ?with Identifiers @assume: sorted(B) function Rule(real[] B){ realwinningbid = 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) }

  33. Original Problem @assume: sorted(B) function Rule(real[] B){ realwinningbid = 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:foralla_i, LetB’ = swap(B, I, v[i]) a_i.ut(result) >= a_i.ut(Rule(B’))

  34. Generated Formula Compute weakest preconditiongiven 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)

  35. Solve Generated Formula • Exists(C, D), ForAll(B), sorted(B) implies f(C, D) SMT Solver (Satisfiability Modulo Theories) valuesfor c[0], …, c[B.size-1], d[0], …, d[B.size-1]

  36. Our Contribution System Setting Outcome Property Agent model rule Language Our System procedure Synthesis Compiler Mechanism

  37. 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

  38. 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.

More Related