420 likes | 561 Views
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 :
E N D
Computer-aided mechanism design Ye Fang, SwaratChaudhuri, 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: • 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!
First-Price Auction If everyone thinks like me: • Payment EQUALS highest bid • Highest bid LESS THAN true value • Profit LESS THAN highest true value
Second-Price Auction Rule: • Winner highest bidder • Payment second highest bid How will you bid under this rule?
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
Second-Price Auction Bidding truthfully is the best strategy.
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
Decision making mechanism Online Auction System Reputation System Voting System ……
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.
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
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?
How to formalize this problem? System Setting Outcome Property Agent model rule Magic Box procedure Mechanism
Our Solution System Setting Outcome Property Agent model rule Language Our System procedure Synthesis Compiler Mechanism
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
Winner = … Price = … $200 $100 $150 $175 $130 C B D A E $150 $140 Private info: $210 $225 $150 Utility function = value -price
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
Agent Model Class Agent { realbid realvalue functionutility(result){If(bid = winningbid) { ut = value – price } else{ ut = 0 } returnut }
Mechanism function Rule(real[] B){ realwinningbid= ?? realprice = ?? return (winningbid, price) }
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);}
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!
How to replace the question mark? functionRule(real[] B){ realwinningbid= ?? real price = ?? return(winningbid, price) }
Sort inputs first @assume: sorted(B) functionRule(real[] B){ realwinningbid= ?? real price = ?? return(winningbid, price) }
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) }
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) }
An Easier Problem Find an implementation of Foo: @assume: x < y Foo(int x, int y){ x = ? * x y = ? * y } @assert: x > y
Replace ?with identifiers @assume: x < y Foo(int x, int y){ x = c0 * x y = c1 * y } @assert: x > y
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
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)
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
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) }
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) }
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’))
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)
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]
Our Contribution System Setting Outcome Property Agent model rule Language Our System procedure Synthesis Compiler Mechanism
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
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.