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

Post on 14-Jan-2016

220 views 0 download

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

1

Computer-aided mechanism design

Ye Fang, Swarat Chaudhuri, Moshe Vardi

2

$150$100$200

$130$175

$210 $225 $140 $150 $150Private info:

Winner = …Price = …

A B C D E

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

brest = highest bid of rest bidders

winning regionbmy > brest

lose regionbmy < brest

If the camera worth $200 to me, profit = ($200 – Price) or 0.

$200 >= brest , bid $200

$200 < brest , bid $200

7

Second-Price Auction

Bidding truthfully is the best strategy.

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

9

Decision making mechanismOnline Auction System

Voting SystemReputation 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.

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

If given rules, we can choose one by finding the best strategy of each player.

Second-Price Auction:1) truth-telling2) efficient allocation

But, what if you are not given a rule, and you want the players to behave in certain way?

easy!

13

How to formalize this problem?

Outcome PropertySystem Setting

Mechanism

Magic Box

Agent model rule

procedure

14

Our Solution

Outcome PropertySystem Setting

Mechanism

Our System

Agent model rule

procedureLanguage

Synthesis Compiler

15

Our SolutionLanguage • to encode the setting • to encode the propertySynthesis Program • reduce to the program to a first order logic

formula• use SMT solver to search for missing

implementations

16

$150$100$200

$130$175

$210 $225 $140 $150 $150Private info:

Winner = …Price = …

A B C D E

Utility function = value -price

17

Model

Truth-tellingAuction Setting

Mechanism

Our System

Agent model rule

procedure

• bid• Private value• Utility function

• How the auction is conducted

• Partial

rule

• Complete

18

Agent Model

Class Agent {real bidreal valuefunction utility(result){

If(bid = winningbid) { ut = value – price }

else { ut = 0 }return ut

}

19

Mechanism

function Rule(real[] B){real winningbid = ??real price = ??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 Behaviormain (){

…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!

22

How to replace the question mark?

function Rule(real[] B){real winningbid = ??real price = ??return (winningbid, price)

}

23

Sort inputs first

@assume: sorted(B)function Rule(real[] B){

real winningbid = ??real price = ??return (winningbid, price)

}

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

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

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

28

Replace ? with identifiers

@assume: x < y Foo(int x, int y){

x = c0 * x y = c1 * y } @assert: x > y

29

Weakest Precondition

@assume: x < yFoo(int x, int y){

x/c0 > y/c1s0: x = c0* xx>y/c1

s1: y = c1* yx>y }

@assert: x > y

x<y

x/c0<y/c1

30

Generated Fornula

@assume: x < yFoo(int x, int y){

x/c0 > y/c1s0: x = c0* xx>y/c1

s1: y = c1* yx>y }

@assert: x > y

Exists (c0, c1), ForAll(x, y),(x < y) implies (x/c0 > y/c1)

31

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

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

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

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’))

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)

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]

38

Our Contribution

Outcome PropertySystem Setting

Mechanism

Our System

Agent model rule

procedureLanguage

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 propertiesVoting System• no absolute fair mechanism

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.