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
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 run • 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
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)
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?
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
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
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 !)
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 !) ?
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 !' ?
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 > '.
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.