CPS 590.4, Spring 2014
Computational Microeconomics: Game Theory, Social Choice, and Mechanism Design

W, 10:05-11:20am, Soc. Sci. 311 (facing south, enter Soc Sci in the left door; the room is at the top of the stairs)
F, 10:05-11:20am, SocPsy 126 (facing south, the room is on the ground floor all the way on the left of SocPsy, which is the building to the left of Soc. Sci).

Instructor: Vincent Conitzer. (Please call me Vince.)

Office hours: Tuesday 8:45-10am (LSRC D207), Wednesday 11:20-11:40am (catch me right after class), Friday 11:20-11:45am (catch me right after class).

Teaching Assistant: Andrew Kephart.

Office hours: Wednesday 11:20am-noon, Friday 11:20-noon, and by appointment in North building 03.

Optional additional resources:
We will occasionally have cs-econ seminars that are interesting from the perspective of this course; these will usually be in Gross Hall 304B at noon on Fridays (but not every Friday) with lunch served. You can sign up for the mailing list here. Attending these is completely optional but may help you find a project!

Computer scientists are increasingly confronted with settings where multiple self-interested parties interact. Two prominent examples are electronic marketplaces and networked computer systems.

To act optimally in such settings, each party (or "agent") must take into account how the other agents are likely to act. Game theory studies how this should be done, and it provides various solution concepts which prescribe how agents should act when the actions of other agents affect their utilities. For example, agents are said to play in Nash equilibrium if no single agent can benefit by deviating. In this course, we will review these concepts and study algorithms to compute the solutions. This will allow us to write software that performs well in multiagent settings (as well as to create good computer players for game-theoretically nontrivial games, such as poker).

Playing the game is only half the story. As computer scientists, we often get to design the game (the rules of the electronic marketplace, the system protocols, etc.). While we cannot directly control the behavior of (self-interested) users, we can give them incentives to behave in a desirable way. Mechanism design studies how to design the game (or "mechanism") so that self-interested behavior will lead to good outcomes. In this course, we will review basic results in social choice and mechanism design, including standard mechanisms as well as impossibility results. We will also study computational aspects of social choice and mechanism design, including efficiently eliciting information from the agents, computing the outcomes of mechanisms in various settings, and even optimizing the mechanism itself.

Throughout the course, we will consider applications such as (combinatorial) auctions, exchanges, and voting.

Recommended for:
1. Anyone in computer science who is interested. The amount of research on these topics in both the AI and theory communities has surged in recent years. There is also increasing interest in the systems community.

2. The course will also be open to interested students outside of computer science, for example students in economics or mathematics. Such students should talk to Vince before the start of the course to discuss background issues and what they hope to get out of the course.

Basic knowledge of probability, algorithms, and (very basic) computational complexity. Undergraduates are welcome provided they have the required background. Interested students without computer science backgrounds (e.g., students in economics or mathematics) should talk to Vince first. I plan to teach a bonus ridiculously short intro to algorithms and complexity lecture.

Participation: 10%
Assignments: 20%
Midterm: 20%
Project: 50%

You may discuss assignments with at most one other person. Each person must do her or his own writeup. Moreover, you may not simply write down a solution and give it to the other person. You may present things to each other on (say) a whiteboard, but the other person should not simply be copying things over. You should always acknowledge everyone you worked with, as well as all other sources, on the writeup. Assignments are always due immediately at the beginning of class.

We will use parts of a book by Shoham and Leyton-Brown (SLB), Multiagent Systems. A free electronic copy is available at that link though the printed version is very reasonably priced as well.

Some additional books that you could use as references (very much optional):

Noam Nisan, Tim Roughgarden, Eva Tardos, Vijay V. Vazirani, Algorithmic Game Theory.

General microeconomic theory:
Andreu Mas-Colell, Michael D. Whinston, Jerry R. Green, Microeconomic Theory. (Especially Part 2: Game Theory, and Part 5: Welfare Economics and Incentives (which studies mechanism design).)

Game theory:
Martin J. Osborne and Ariel Rubinstein, A Course in Game Theory. (freely available online!)
Drew Fudenberg and Jean Tirole, Game Theory.

Combinatorial auctions:
Peter Cramton, Yoav Shoham, Richard Steinberg, Combinatorial Auctions. (Some of the chapters of this book can be found online.)

In the below, SLB refers to the Shoham/Leyton-Brown book. We will not cover all of this book, we will not always go in the same order as the book, and we will cover some things not in the book. The below tries to line up our lectures with the book, but of course you are welcome to read the book in its original order, read other parts of book, etc. If you would like advice on further reading on some topic, talk to Vince.

The course will be divided into roughly two halves. The first half is primarily a crash course in game theory, social choice, and mechanism design (where we will consider some computational aspects along the way). At the end of this first half we will have a midterm to make sure everyone understands the basics.

In the second half of the course, we will consider a few more basic topics for which we didn't have time in the first half, as well as more advanced topics. (I do not expect to have time to cover anywhere close to all the second-half topics listed below, but I'll leave them there in case people are interested.) During this half of the course, you should also be working intensively on your project (if not sooner).

In the below, one topic will not necessarily take one lecture to finish.

Date Topic Materials
First class:
Course at a glance. What problems are we trying to solve? Example applications: game playing, security, elections, electronic marketplaces, resource allocation, ... Slides: ppt, pdf.
Optional readings: Some CACM articles:
Computer Science and Game Theory, Making Decisions Based on the Preferences of Multiple Agents, Designing the Perfect Auction.
1/15, 1/17 Linear, integer, and mixed integer programs. Slides: ppt, pdf.
SLB Appendices A and B (if you need them).
In case you want to use it: GNU Linear Programming Kit. Let me know if you have trouble installing/using it.
Example files: painting.lp, painting.mod, knapsack.lp, knapsack.mod (or the one from in class), cell.lp, cell.mod (or the one from in class), hotdog.mod (or the one from in class)
1/27 (Bonus lecture.) Ridiculously brief introduction to theoretical computer science: computational problems, algorithms, runtime, complexity. Slides: ppt, pdf.
Modeling files: set_cover.mod, set_cover2.mod, matching.mod.
Sorting spreadsheet.
CACM article on P vs. NP.
1/22 Risk neutrality and risk aversion. Expected utility theory. Slides: ppt, pdf.
SLB Section 3.1.
1/22, 1/24, (snow day 1/29), 1/31 Games in normal form. Dominance and iterated dominance. Computing dominated strategies. Minimax strategies. Computing minimax strategies. Nash equilibrium. Computing Nash equilibria. Correlated equilibrium. Computing correlated equilibria. Slides: ppt, pdf.
Homework 1 out.
SLB 3.2, 3.4.3, 4.5; 3.3.1-3.3.3, 3.4.1, 3.4.5, 4.1, 4.2.1, 4.2.3, 4.2.4, 4.4, 4.6.
Optional: 3.3.4, 4.2.2.
Paper on computing dominated strategies. (You can skip the part on Bayesian games.)
Paper on computing Nash equilibria. (You only need to read the part concerning 2-player games.)
Paper on computing special kinds of Nash equilibria. (You can skip everything from Bayesian games on.)
2/5, 3/5 Games in extensive form. Backward induction. Subgame perfect equilibrium. Imperfect information. Equilibrium refinements. Slides: ppt, pdf.
SLB 5.1 (alpha-beta is optional), 5.2.1, 5.2.2.
Optional: 5.2.3.
Paper on finding optimal strategies to commit to.
2/7, 2/12 (Computational) social choice. Voting rules. Desirable properties of voting rules. Arrow's impossibility theorem. Muller-Satterthwaite impossibility theorem. Manipulation. Gibbard-Satterthwaite impossibility theorem. Single-peaked preferences. Slides: ppt, pdf.
SLB Chapter 9.1-9.4.
Optional: 9.5.
Chapter on computational social choice.
2/12, (snow day 2/14), 2/19, 2/21 Auctions. English, Japanese, Dutch, first-price sealed-bid, second-price sealed-bid (Vickrey). Combinatorial auctions. Winner determination. Combinatorial reverse auctions and exchanges. Bidding languages. Slides: ppt, pdf.
Homework 2 out.
Note: we won't go in the same order as the book in the next few lectures. I'm pointing out the chapters that are associated with each lecture, but for reading purposes you may prefer following the order of the book for the next few lectures, reading mechanism design (Ch. 10) before auctions (Ch. 11), and single-item auctions and their analysis before combinatorial auctions.
SLB 11.3.1-11.3.4, 11.4.1.
Optional: 11.2, 11.3.5.
Lehmann et al. chapter on winner determination.
Sandholm chapter on optimal winner determination.
2/21, 2/26, 2/28 Analyzing auction mechanisms: Bayesian games, Bayes-Nash equilibrium, revenue equivalence, revenue-maximizing (Myerson) auctions, redistribution auctions. Slides: ppt, pdf.
SLB 6.3, 11.1.1-11.1.8.
Optional: 11.1.9, 11.1.10.
2/26, 3/5 Mechanism design. Incentive compatibility. Individual rationality. Revelation principle. Clarke mechanism. Generalized Vickrey Auction. Groves mechanisms. Myerson-Satterthwaite impossibility. Computational topics. Slides: ppt, pdf.
Chapter 10.1-10.4.
Optional: rest of chapter 10.
Alternative resources:
Chapter on mechanism design + chapter on revelation principle.
Parkes chapter on mechanism design.
3/3 (bonus), 3/5 Midterm review. Practice questions: ppt, pdf.
Planned for March 7 MIDTERM
3/18 Midterm solutions and discussion.
3/18, 3/21 Preference elicitation in voting and auctions. Iterative combinatorial auctions. Communication complexity. Restricted classes of valuations. Slides: ppt, pdf.
Parkes chapter on iterative CAs. Sandholm-Boutilier chapter on preference elicitation in CAs.
3/21, 3/26 Repeated games. Folk theorem. Stochastic games. Slides: ppt, pdf.
SLB 6.1, 6.2.
Paper on computing a Nash equilibrium in repeated games.
Paper on stochastic games and learning.
3/26, 3/28 Learning in games. Iterated best response. Fictitious play. No-regret algorithms. Targeted learning. Evolutionary game theory. Slides: ppt, pdf.
SLB Chapter 7.
SKIPPED Concise representations of games. Congestion games. Potential games. Graphical games. Action-graph games. MAIDs. SLB 6.4, 6.5.
Paper on action-graph games.
3/28, 4/2 Cooperative/coalitional game theory. Core. Nucleolus. Shapley value. Computing solutions. Slides: ppt, pdf.
SLB Chapter 12.
4/2 Automated mechanism design. Slides: ppt, pdf.
Chapter on automated mechanism design, read up to and including 6.6.
Remainder of the chapter.
4/4 Algorithmic mechanism design. Approximately efficient truthful combinatorial auctions. Shortest paths. Minimizing make-span. Characterizing allocation rules that can be made incentive compatible. Slides: ppt, pdf.
Paper on algorithmic mechanism design.
Paper on computing Clarke payments for shortest paths.
Paper on approximately efficient, incentive compatible combinatorial auctions.
Paper on characterizing which allocation rules can be made incentive compatible.
SKIPPED Computational hardness as a barrier against manipulation. Limitations. War on manipulation article.
Paper on STV being hard to manipulate.
Paper on hardness with few alternatives.
SKIPPED Collusion. Use of false names over the Internet. Overview article on false names in mechanism design.
Paper on collusion in combinatorial auctions and exchanges.
Paper on false-name bidding.
Another paper on false-name bidding.
Paper on collusion/false names in coalitional game theory.
4/9 (Abhinandan, Jananee, Naga, Rupert; 24 bonus points), 4/11 (Andrew, Brett, Matt, Zijian; 22 bonus points), 4/14 (Ang, Danny+Xu, Dennis+Paul+Rachel, Qiuyun; 12 bonus points -- Monday during regular class time), 4/16 (Garrett+Jiangwei, Mohamed, Seyed, Utku) Student presentations Code used to match students to presentations, student bids (input to solver).

As you can see from the grading, the project is an important part of this course. You may work on it alone or in a team (please check with Vince first if you want to have a team of four or more people); of course, teams are expected to do more significant projects. We will have some checkpoints (e.g., project proposal) during the course, but feel free to discuss possible project ideas with Vince earlier.

The goal of the project is to try to do something novel, rather than merely a survey of existing work. Projects may be theoretical, experimental (based on simulations), experimental (based on real-world data), a useful software artifact, or any combination thereof. Creativity is encouraged. The only real constraint is that it has something to do with the material of the course. Talk to Vince if you are not sure about whether something is an appropriate project.

The final product is a writeup (in the form of a short research paper) and a class presentation (all team members must participate in the presentation). Some projects may well lead to publishable papers (perhaps with some additional work).

In your project proposal, you should explain the topic of your project, what types of results you hope to obtain, and what some of the technical issues are that you will need to address. If necessary, Vince can help with finding topics. Something related to your own research is definitely OK as long as it also has something to do with the course material. An intermediate project progress report is also required. This report should explain what results you have obtained already, what (if any) difficulties you encountered, and what you plan to do to complete your project. Ideally, at this point, you should already have some good results, so that you can spend the rest of your time on answering questions generated by your results, as well as preparing your writeup and presentation.