490 likes | 596 Views
Application of Formal Method on Game Mechanism Design. Ye Fang, Swarat Chaudhuri , Moshe Vardi. Bid for an second-hand camera Sealed-bid auction What price will you give?. What are you considering when bidding? Rules? Other players? How much does it actually worth to you?.
E N D
Application of Formal Method on Game Mechanism Design Ye Fang, SwaratChaudhuri, Moshe Vardi
Bid for an second-hand camera • Sealed-bid auction What price will you give?
What are you considering when bidding? • Rules? • Other players? • How much does it actually worth to you?
Rule 1: Winner highest bidder Price highest bid • If you win, pay for (true value – your bid) • Otherwise pay for nothing How to win and make profit? Shade your true value just a little… bit.
Rule 2: Winner highest bidder Price second highest bid How you bid here? en… If I have the highest bid • If my bid is not the highest I should gain as much as I can !! Just bid for your true value.
In the view point of a designer, why all these matter? • Designers want a good rule • What can be a good rule? • Maximize auctioneer’s profit • Efficient allocation of good • Knowledge of how much the good worth to the bidders
Given the players are self-interested (strategic), which means they want to achieve maximum utility (gain) • How can we come up with a GOOD rule?
Manual Mechanism Design • How? • Traditionally, economists come up with some possible mechanism by intuition and prove the property. Magic ?!
Example: Vickery Auction • sealed-bid auction • Highest bidder wins • Price paid for the second highest bid • Property of the rule • Force players to bid for their true value • Efficient Allocation
What if there does not exist a rule? • Arrow impossibility theorem • If everyone prefers a to b, then a will has higher rank than b • Independence of preference • Social preference between a and b only depends on individuals preference of a and b Dictatorship
Automating the Design Procedure Magic • Is there a systematic approach to generate the mechanism of desire property?
Previous Work • “Automated Mechanism Design:ANew Application Area for Search Algorithms” by Tuomas, Sandholm. • “Application of Automated Mechanism Design”, Vincent Conitzer, TuomasSandholm. • “Computationally Feasible Automated Mechanism Design: General Approach and Case Studies∗”, MingyuGuo and Vincent Conitzer
Previous work • Application of search algorithm • Mechanism function is a mapping Agents Type Space outcome space
Previous work • The type space of an agent can be, in the case of auction, true evaluations and bids. • The approach is basically an guided online search with constrains and objectives. • The algorithm takes an instance of the program, output the result. • Not very rule like
In the case of auction, • The type space will be agents’ bid and their true evaluation of the good. • Outcome space will be the winner and the price • Given an instance of the game with • p0(b0, v0),p1(b1,v1),p2(b2,v2) • => Winner is __ Price is__ RULE ?!
Our Solution • Computer-aided programming • Computer-aided mechanism design • A mechanism is naturally a program
Problem modeling first step of Automation • What we observed: Preference aggregation Decision making rule (Resource allocation)
Our solution A collection of Preference input Decision making mechanism (Resource allocation) output
Players/agents • Private field • true evaluation of the good • true preference profile over the candidates • utility function • bid • Rule • Outcome • Who is the winner • How much should each player pay
Properties • Truth-revealing (players behavior) • Maximize profit (outcome) • No dictatorship (outcome) • Efficient allocation (outcome)
Modeling language • agentTemplate
Choice for mechanism • What can be a mechanism function for auction? • Winner = ? (winner’s id#) • Price = ? (constant, linear functions, polynomials, etc) • Let’s start simple: can represent constants Hard to solve for constrain solvers.
Mechanism function • Assuming bids are sorted and winner is the highest bidder @ pre : { sorted(p, 1) } @ mechanism m[list[] p][tuple result]= real winner = p[0][0]; real price = 0; for i = 0 to N-1 do price = price + ? c * p[i][1]; end for tupleresult = Tuple(winner, price); end m
A complete program program main [] = real N = 3; agent template mechanism function execution code end program main @ post : forall(i, 0, N), { a[i].uf(result, a[i].self, a[i].v) <= a[i].uf( m(InsertSorted(Tuple(a[i].self,a[i].v), setExclude(e,i), 1)), a[i].self, a[i].v) } @ B_-i (ai_id, vi)
A typical program includes: • Agent Templates • Mechanism function • Execution code • Generate agents according to templates • Create input for mechanism function • Assumptions of inputs and outputs of program or functions
What we are really solving? • If the mechanism function has missing constants, we will synthesize feasible ones. for i = 0 to N-1 do price = price + ? c * p[i][1]; end for to synthesize
What we are really solving? • If the mechanism function is complete, it becomes a verification problem. to verify
Translate program to formula • Let’s walk through an example • Three players Vickrey Auction • Desired Property formulated in logic expression: • For all Players, b_iv_i • ut(bid for any value) <= ut (bid for true value) • While keep all the others’ bid the same
M(b_0, B_-i) • Assume b0>b1>b2 • ut_0 = v_0-price • M(v_0, B_-i) • Cases: • v0>b1>b2 => ut_0’ = v_0-price • b1>v0>b2 => ut_0’ = 0 • b1>b2>b0 => ut_0’ = 0
((((((b_2<=b_1) and (v_0<=b_2)) and (((v_0<=b_2)and (b_2<=b_1)))) implies • v_0-0.0-c_0*b_0-c_1*b_1-c_2*b_2<=0.0 • ((((b_1<=v_0) and (b_2<=b_1)) and (((b_2<=b_1)and (b_1<=v_0)))) implies • v_0-0.0-c_0*b_0-c_1*b_1-c_2*b_2<=v_0-0.0-c_0*v_0-c_1*b_1-c_2*b_2 • ((((b_2<=v_0) and (v_0<=b_1)) and (((b_2<=v_0)and (v_0<=b_1)))) implies • v_0-0.0-c_0*b_0-c_1*b_1-c_2*b_2<=0.0
The output of the compiler will be formula of the form: • Exists ( Mechanism with missing constants C) • For all (possible inputs of the mechanism) • Phi(C, outcome) where Phi() is the desired property.
Difficulty of nonlinear arithmetic • Only support linear mechanism function • The formula is a booleancombination of linear inequalities. where each ci:
if any of the combinations of ci is unsatisfiable. • Lazy evaluation • From single ci, to two ci, cj, to three ci, cj, ck, …
Application of Farkas Lemma • is unsatisfiable if each di,j(I) is unsatifiable. • Each di,j(I) is a linear system that has no solution. b_x_2<=v_x_0 v_x_0<=b_x_1 b_x_2<=v_x_0 v_x_0-0.0-c_0*b_x_0-c_1*b_x_1-c_2*b_x_2<=0.
Application of Farkas Lemma • If the system has no solution.
Application of Farkas Lemma • Then the original problem becomes:Exists(y, z),
b_x_2<=v_x_0 v_x_0<=b_x_1 b_x_2<=v_x_0 v_x_0-0.0-c_0*b_x_0-c_1*b_x_1-c_2*b_x_2<=0.0 • Exists(y, z),
Last Step • We feed the generated formula to z3 on the fly. • Program stops as long as we find a feasible solution.
Experimental results • We have synthesized mechanism for vickery auction, position auction, multiple same good auction. • We have showed if a linear voting mechanism satisfies Pareto efficiency, Independent of irrelevant alternatives, the solver only able to give mechanisms resulting in dictatorship.
What we have achieved • We have designed a DSL for preference aggregation games. • We have synthesized a sets of linear mechanism which are recorded in literature.
Future work • Limitation of the solver • Currently, we are only able to verify or synthesize linear mechanism functions • We are only able to simulate games with less than ten agents • How can we prove the mechanism to work for N(infinite number of) players instead of an arbitrary number of players?
What should a fair voting achieve? • If everyone prefers a to b, then a will has higher rank than b • Independence of preference • Social preference between a and b only depends on individuals preference of a and b • No dictator
Let’s VOTE • If we use majority vote: • P1: • P2: • P3:
Another problem in Voting • Say, an agent prefers • If he knows a will not win • How will he vote? b? • Strategic bidding