What is this course about?

Strategic thinking and reasoning: A modern way of making sense of the complex world

Studying interdependent systems: Agents/components impact each other through their choices

Diving into the depth of algorithms: A compelling story of the equivalence among several algorithmic paradigms




Course Description:

Advanced algorithms course with a focus on game theory. Topics include non-cooperative and cooperative games, linear programming, network flow, computational complexity, explainable AI (XAI), graphical games, and computational social choice. Game theory, also known as the mathematical theory of strategic interactions, rose to prominence due to its applicability to a variety of strategic scenarios ranging from markets and auctions to kidney exchanges to social influence. These scenarios often involve complex interactions in large-scale systems, giving rise to many computational questions, including: how algorithms for certain games are devised; how local interactions lead to global outcomes; how individual choices, such as selfishness, impact outcomes. Most questions will be addressed theoretically, some by programming. (Fulfills the Algorithms and Theory and 3000-level course requirements for majoring in CS.)

Prerequisites:

  • CSCI 2200: Algorithms
  • Intrest in learning outside of the class (e.g., in office hours)— a pillar of liberal arts education
  • Ability to attend morning (10am) classes
  • Interest in the mathematical foundation of CS
  • Strong programming background
  • Some experience with probability theory and matrix algebra

Learning Goals

Even after 5 years:

  • Know: concepts of game theory, computational complexity, duality theorem.
  • Able to do: design and implement linear programming solutions, design game-theoretic models.
  • Find value in: abstraction in terms of deep theoretical knowledge and translation of knowledge to a wide range of real-world scenarios.


What does it look like on a day-to-day basis?

  • This is a lecture-based course with in-class activities designed for student engagement and learning.
  • There will be regular assignments, both formative and summative.
  • There is no final exam. Students will do a final project or make a final presentation.

What are the central themes?

This course is structured into the following units:

Unit 1: Foundational Topics (6 weeks)

We'll get a very brief introduction to game theory. We'll then look at game theory from a computational perspective, where the focus will be on linear programming (LP). LP will also help us transition from the basics of grame theory to several important topics in advanced algorithms.

John Nash proved the existence of an equilibrium point in any finite game.

Christos Papadimitriou and colleagues proved the hardness of computing a Nash equilibrium, even though it always exists.

Unit 2: Advanced Topics (~5 weeks)

We'll learn about the computational hardness of a problem, especially for game-theoretic problems. We'll also learn a new algorithmic framework known as network flow, which has numerous applications, including studying the strategic interaction between buyers and sellers in a market. We'll also dive into a different branch of game theory known as cooperative or coalitional game theory and will investigate its connection with explainable AI (XAI), a rapidly growing field in AI.

Application of game theory to markets: A microfinance meeting is in progress in Kerala, India (Source). Microfinance programs are recognized as one of the most effective poverty alleviation tools.

Unit 3: Selected Topics on Computational Game Theory (~3 weeks)

Computer scientists, both from the AI and theory communities, have been giving a great deal of attention to how the new advances in game theory can be applied to real-world scenarios. One example is games on networks or "graphical games" (see an illustration below). For computer scientists, the main attraction of these games is their succinct representation size. We'll examine various computational problems on games on networks. Another topic of intense research right now is computational social choice. Within computational social choice, we will in particular look into how game theory can be used in a broad array of real-world problems that fall under the the category of "fair allocation."

Irfan and Ortiz (2014) captured the network of influence among the US senators using a game-theoretic approach. Above is a partial picture of the network. Black arcs represent positive influence, red negative influence. Darker shades of nodes (i.e., bubbles) represent higher threshold (or stubbornness).

In Unit 3, we'll also take a step back and look at the "quality guarantee" of Nash equilibria. For example, do Nash equilibria maximize social welfare? If not, how far off are they? We'll see that for special types of games, such as selfish routing, Nash equilibria are not that far off from the most desirable outcomes. This is, in fact, a surprising result. We'll also talk about other topics based on students' interests.

Instructor

Professor: Mohammad T. Irfan
Email: mirfan@bowdoin.edu
Office Hrs:
Wed 3-5:30pm
Fri 10am-12pm
Office room: Mills 209
LA: None

Time & Place

Lectures: MW 10:05-11:30
Room: Mills 210

Course Details

Textbooks:

[EGT] Essentials of Game Theory (3 Chapters)
Amazon link
See Canvas

[AGT] Algorithmic Game Theory (3 Chapters)
Amazon link
Non-printable pdf file
Also available on Canvas

[CSC] Computational Social Choice (4 Chapters)
Amazon link
Instructions to download as pdf
Also available on Canvas

Other book chapters and papers will be linked through this website.


Programming Language:

For programming assignments, the language of our choice is Python 3. You are free to use any IDE, but Visual Studio Code is recommended.

Evaluation:

  • 25% Points: Formative assessment: Regular formative assignments, class participation, and attendance

  • 60% Points: Summative assessment: problem solving and programming assignments

  • 15% Points: Final presentation or project:
    1. Either presentation on an advanced topic (preferably computational social choice)
    2. Or a final project on an implementation-oriented problem

  • Points to letter grade conversion: 94% A, 90% A-, 85% B+, 80% B, 75% B-, 70% C+, 65% C, 60% C-, 55% D, below 55% F


Late Policy:

Extensions will be given if there is any health or other emergency situation. Otherwise, late submissions will be accepted up until 24 hours after the deadline with a penalty. Each hour after the deadline would cost 4%.

Course Schedule

Week Unit Topics Reference Links and Notes
Week 1
(1/22, 1/24)
Unit 1: Foundation 1. Intro to game theory: solution concepts and examples
2. Inefficiency of NE
1. [Easley-Kleinberg] Ch 6
2. [Easley-Kleinberg] Ch 8
1. Slides (Intro to game theory)
2. Why the movie A Beautiful Mind got Nash equilibrium wrong!
Week 2
(1/29, 1/31)
Unit 1: Foundation Intro to game theory: mixed-strategy NE
[Easley-Kleinberg] Ch 6
Slides (continued)
Week 3
(2/5, 2/7)
Unit 1: Foundation 1. Intro to game theory: formal definitions with examples
2. Discrete math
1. [EGT] Ch 1-2
2. Set Theory Sections A and C.1
1. Slides (continued)
2. Nash's Paper
3. Prof. Irfan's explanation
Week 4 (2/12, 2/14)
Unit 1: Foundation 1. Solution concepts incl. correlated equilibrium
2. Connection to linear programming
1. [EK] Ch 6
2. [AGT] Ch 1
Slides (continued)
Week 5 (2/19, 2/21) Unit 1: Foundation Intro to linear programming (LP) 1. LP book on Canvas (Ch 1, 2, 4)
2. [AGT] Ch 1
Slides (LP)
Week 6 (2/26, 2/28) Unit 1: Foundation LP duality
Zero-sum games
Slides (continued)
Week 7
(3/4, 3/6)
Unit 2: Adv. Topics
Computational complexity of games 1. AGT [Ch 2]
2. Algorithm Design Ch 8 [Canvas]
3. Gottlob et al. paper
Slides (Complexity)
Spring Break        
Week 8
(3/25, 3/27)
Unit 2: Adv. Topics
Market Equilibria: Intro

[AGT] Ch 5

Slides (Market Equilibria)
Week 9
(4/1, 4/3)
Unit 2: Adv. Topics
Market Equilibria:
Nonlinear optimization
KKT conditions
[AGT] Ch 5
KKT conditions
Slides (continued)
Week 10
(4/8, 4/10)
Unit 2: Adv. Topics
Network Flow Algorithm Design Ch 7 [Canvas] 1. Slides (Network Flow)
2. Ford-Fulkerson Demo
Week 11
(4/15, 4/17)
Unit 2: Adv. Topics
Network Flow (continued) Slides (continued)
Week 12
(4/22, 4/24)
Unit 2: Adv. Topics
Cooperative Game Theory [EGT] Ch 8 Slides (Cooperative Game Theory)
Week 13
(4/29, 5/1)
Unit 3: Selected Topics
1. Explainable AI (XAI) and Game Theory
2. Influence games
1. Interpretable ML Book
2. Influence games paper
Sections 1—3 (up to pg. 86), Sections 4.5, 5 (no proof), 6
1. Slides (XAI)
2. Slides (Influence Games)
Week 14
(5/6, 5/8)
Asynchronous: Prof. Irfan in NZ for conf.
Unit 3: Selected Topics
Congestion Games
Papers posted under presentation topics on canvas Slides (Congestion Games)
Presentations/
Projects
Unit 3: Selected Topics
See Canvas for presentation topics Wednesday, 5/15/24 at 8:30am


Collaboration Policy

Students are expected to follow Computer Science's collaboration policy and Bowdoin's Academic Honor Code.

The specific level of collaboration will be mentioned in every assignment. For individual assignments, you are encouraged to discuss ideas and techniques broadly with your classmates, but not specifics of assigned problems. Discussions should be limited to questions that can be asked and answered without using any written medium (e.g., pencil and paper, email, etc.). This means that at no time should a student read anything written by another student. Violation of this policy is grounds for me to initiate an action that would be filed with the Dean's office and would come before the J Board. If you have any questions about this policy, PLEASE do not hesitate to contact me. This will be a zero-tolerance policy.

It is permissible to use software and materials available from other sources (understanding that you get no credit for using the work of others on those parts of your assignment) as long as: 1) You acknowledge explicitly which aspects of your assignment were taken from other sources and what those sources are. 2) The materials are freely and legally available. 3) The material was not created by a student at Bowdoin as part of this course this year or in prior years. To be absolutely clear, if you turn in someone else's work you will not receive credit for it - on the other hand, if you acknowledge it, at least you will not go to the J Board.

All write-ups, code, reviews, documentation, and other written material must be original and may not be derived from other sources, including AI tools like ChatGPT, Bard, etc.

If in the future you provide your work to other students, this will also constitute a violation of Bowdoin's honor code.


Github Policy:

Making assignment solutions publicly available through Github or other media will constitute a violation of the honor code for this course.

If Winter comes, can Spring be far behind? -- Percy Bysshe Shelley