Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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