computer-aided mechanism design ye fang, swarat chaudhuri, moshe vardi 1

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

Upload: jose-balderson

Post on 14-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

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.