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

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

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

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

1

Computer-aided mechanism design

Ye Fang, Swarat Chaudhuri, Moshe Vardi

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

2

$150$100$200

$130$175

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

Winner = …Price = …

A B C D E

Utility function = value -price

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

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!

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

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

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

5

Second-Price Auction

Rule:• Winner highest bidder• Payment second highest bid

How will you bid under this rule?

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

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

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

7

Second-Price Auction

Bidding truthfully is the best strategy.

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

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

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

9

Decision making mechanismOnline Auction System

Voting SystemReputation System

……

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

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.

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

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

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

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!

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

13

How to formalize this problem?

Outcome PropertySystem Setting

Mechanism

Magic Box

Agent model rule

procedure

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

14

Our Solution

Outcome PropertySystem Setting

Mechanism

Our System

Agent model rule

procedureLanguage

Synthesis Compiler

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

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

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

16

$150$100$200

$130$175

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

Winner = …Price = …

A B C D E

Utility function = value -price

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

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

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

18

Agent Model

Class Agent {real bidreal valuefunction utility(result){

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

else { ut = 0 }return ut

}

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

19

Mechanism

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

}

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

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

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

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!

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

22

How to replace the question mark?

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

}

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

23

Sort inputs first

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

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

}

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

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

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

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

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

26

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

27

An Easier Problem

Find an implementation of Foo: @assume: x < y Foo(int x, int y){

x = ? * x y = ? * y } @assert: x > y

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

28

Replace ? with identifiers

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

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

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

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

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

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)

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

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

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

32

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

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

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

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

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

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

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

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)

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

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]

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

38

Our Contribution

Outcome PropertySystem Setting

Mechanism

Our System

Agent model rule

procedureLanguage

Synthesis Compiler

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

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

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

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.