David Evans
March 19, 2019
620

# Class 17: Algorithmic Mechanism Design

Class 17: Algorithmic Mechanism Design
https://uvammm.github.io/class17

Markets, Mechanisms, and Machines
University of Virginia
cs4501/econ4559 Spring 2019
David Evans and Denis Nekipelov
https://uvammm.github.io/

March 19, 2019

## Transcript

1. MARKETS, MECHANISMS, MACHINES University of Virginia, Spring 2019
Class 17:
Algorithmic
Mechanism
Design
19 March 2019
cs4501/econ4559 Spring 2019
David Evans and Denis Nekipelov
https://uvammm.github.io

2. Reminder: Trial Auction Thursday!
Your team should be prepared to participate in trial auction in-class
Thursday:
• Bring laptop (at least one for your team): on the network, with your
• Client code ready to compete in trial auction
limited number of rounds (will run throughout the class)
• Winning team gets \$1000 bonus for final auction
• Teams that are not able to compete penalty \$1000
1

3. Plan for Today
Algorithmic Mechanism Design
Crash Course Computational Complexity
Complexity of Multi-Unit Allocation
2

4. Algorithmic Mechanism Design
3
(Classical)
Mechanism Design
Algorithms
(Computer Science)
Algorithmic
Mechanism Design
Goal
Design mechanism that
achieves economic goal
(e.g., maximize social
welfare)
Design solution to problem
that is computationally-
efficient
Design computationally-
efficient mechanism that
achieves economic goal
Participants Models of rational agents Models of abstract machines Models of rational agents
History
1928: von Neumann,
Theory of Games of
Strategy
1961: Vickey
1673: Leibniz
1930s: Turing, Church
1999: Nissan and Ronen
(STOC)

5. Multi-Unit Auction
! identical items, " bidders
Each bidder has private valuation function:
#\$
: 0, … , ! → ℝ+
#\$
, = value to bidder 9 for receiving , units
#\$
0 = 0, ∀, ∈ 0, … , ! − 1 : #\$
, ≤ #\$
(, + 1)
Goal: maximize social welfare = ∑
\$
#\$
!\$
where ∑
\$
!\$
≤ !
4
Noam Nisan, Algorithmic Mechanism Design, 2014.

6. Multi-Unit Allocation Problem
Input:
Output:
5
Noam Nisan, Algorithmic Mechanism Design, 2014.

7. Multi-Unit Allocation Problem
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.
6
Noam Nisan, Algorithmic Mechanism Design, 2014.
What does it mean to have a computationally-efficient solution?

8. Measuring Cost (Recap from Class 4)
Computation:
number of steps needed by a model computer
Communication:
total amount of data communicated
number of rounds of messages
7
Actual cost usually dominated by communication cost: bandwidth is expensive
But, computation cost determines if your program will actually finish

9. Complexity Classes
Complexity Class: a set of problems that can be solved with the
defined resource constraint
Typically: given machine model (e.g., deterministic Turing
Machine) within a limited amount (usually function of input size)
of time or space
8

10. How many complexity classes are there?
9

11. How many complexity classes are there?
10
535 “interesting” classes (and counting)

12. Most Important Complexity Class
11
P
“Tractable”

13. Polynomial Time
12
! = #
\$ ∈ ℕ
TIME(,\$)

14. Problems in Class P
13

15. How can we prove a problem is in P?
14

16. How can we prove a problem is not in P?
15

17. How can we prove a problem is not in P?
16

18. Is Multi-Unit Auction in P?
17
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.

19. Is Multi-Unit Auction in P?
18
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.
Polynomial in what?
Length of input ' = log '
How is the input represented?
Query model:
!)
is an arbitrary function with !)
0 = 0, ∀1 ∈ 0, … , ' − 1 : !)
1 ≤ !)
(1 + 1)
Cost = number of queries to !)

20. Is Multi-Unit Auction in P?
19
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.
Is it possible to find optimal allocation with +(log0 ') queries to !)
?

21. Is Multi-Unit Auction in P?
20
Input: Valuations for the two players: !"
, !\$
Output: Allocation, %"
, %\$
where ∑
'
%'
≤ % that maximizes ∑
'
!'
%'
.
Is it possible to find optimal allocation with )(log. %) queries to !'
?

22. Proof: Multi-Unit Auction ∉ "
21
Input: Valuations for the two players: #\$
, #&
Output: Allocation, '\$
, '& where ∑
)
')
≤ ' that maximizes ∑
)
#)
') .
If the algorithm makes fewer than 2' – 2 queries, this means there is some value
of either #\$ or #& below ' that wasn’t queried.
Without loss of generality lets assume it is #\$.
Suppose #\$
- = - and #&
- = - for all queried inputs.
The output is ('\$
, '&
). Value = #\$
'\$
+ #&
'&
= '\$
+ '&
= '.
For the unqueried point, 3 ∉ '\$
, '&
: #\$
3 = 3 + 1.
The allocation (3, ' − 3) has value:
#\$
3 + #&
' − 3 = 3 + 1 + ' − 3 = ' + 1 > '.

23. Multi-Unit Auction: Input Representation
22
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.
Polynomial in what?
Length of input ' = log '
How is the input represented?
Query model:
!)
is an arbitrary function with !)
0 = 0, ∀1 ∈ 0, … , ' − 1 : !)
1 ≤ !)
(1 + 1)
Representing input as arbitrary function requires '9 bits for each valuation function,
so solution that requires querying each value once is polynomial in input size number of queries.

24. Multi-Unit Auction: Input Representation
23
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.
Query model:
!)
0 = 0, ∀. ∈ 0, … , ' − 1 : !)
. ≤ !)
(. + 1)
Single-Minded Step Bids:
!)
. = 0 for . < .)
∗; !)
. = <)
∗ for . ≥ .)
∗.
Downward Sloping:
∀. ∈ 0, … , ' − 1 : !)
. + 1 − !)
. ≤ !)
. − !)
(. − 1)

25. Downward Sloping Valuations
24
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.
Downward Sloping:
∀, ∈ 0, … , ' − 1 : !)
, + 1 − !)
, ≤ !)
, − !)
(, − 1) “convex economy”
'
0
!(')

26. Downward Sloping Valuations
25
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.
Downward Sloping:
∀, ∈ 0, … , ' − 1 : !)
, + 1 − !)
, ≤ !)
, − !)
(, − 1) “convex economy”
'
0
!(')
Some clearing price 5 such that: for all 6,
!)
')
− !)
')
− 1 ≥ 5 > !)
')
+ 1 − !)
')
and ∑
)
')
= '
Use binary search (: log ') to find 5 and allocation.

27. Multi-Unit Auction: Input Representation
26
Input: Valuations for the players: !"
, … , !%
.
Output: Allocation, '"
, … , '%
where ∑
)
')
≤ ' that maximizes ∑
)
!)
')
.
Query model:
!)
0 = 0, ∀. ∈ 0, … , ' − 1 : !)
. ≤ !)
(. + 1)
Single-Minded Step Bids:
!)
. = 0 for . < .)
∗; !)
. = <)
∗ for . ≥ .)
∗.
Downward Sloping:
∀. ∈ 0, … , ' − 1 : !)
. + 1 − !)
. ≤ !)
. − !)
(. − 1)
No polynomial (in log ') time solution
Know polynomial (in log ') time solution
???

28. Next class:
Computational complexity of Multi-Unit
Auctions with Step Bids
P = NP?
Charge