CS 231: Topics in Combinatorial Algorithms
Room: Phelps 2510
- Office hours: Tues 11-12 (HFH 2111).
Algorithmic thinking is at the heart of computer science.
Whether we are concerned with sending messages in the Internet,
understanding the structure of a social network, designing autonomous
robots, measuring reliability of complex systems, or auctioning the wireless
spectrum, the underlying core problem is often an algorithmic one.
The problems, however, rarely come as cleanly packaged, mathematically
precise questions, and so the algorithmic enterprise necessarily
consists of first getting to the mathematical core of a problem, and then
identifying the appropriate algorithm design technique.
The goal of this course is to expose students to this process using a
variety of topics and techniques. The general theme of the course is combinatorial
algorithms, which can be described loosely as those dealing with discrete
structures such as graphs and networks. The course is structured around a
loosely related set of techniques and topics that I consider both fundamental
and great examples of theoretical elegance. You can get a high-level outline
of the course content and philosophy in this (Handout) .
- 1. Network Flows (Lecture Notes)
- Ford-Fulkerson, MaxFlow-MinCut , Edmonds-Karp Improvements.
- Global mincut algorithm.
- Mincost flows (Lecture Notes)
- 2. Shortest Paths and Spanning Trees
- 3. Matching in Graphs (Lecture Notes)
- Bipartite matching, Hungarian method, Stable matching.
- 4. Structure of Social Networks (Lecture Notes)
- Small World Phenomenon, Kleinberg's Model.
- 5. Optimizing with Linear Constraints (Lecture Notes)
- 6. Voting and Arrow's Impossibility Theorem. (Lecture Notes)
- Counter-intuitive behavior in popular voting schemes.
- Arrow's axiomatic approach and the impossibility theorem.
- 7. Learning from Data (Lecture Notes)
The tentative schedule for the course can be found here.
- 1. Binary Search in Graphs by Emamjomeh-Zadeh and Kempe.
- 2. Distance
Oracles Beyond the Thorup-Zwick Bound by Patrascu and Rodity.
An Impossibility Theorem for Clustering by Jon Kleinberg.
Three Brief Proofs of Arrow's Impossibility Theorem by John Geanokoplos.
- 1. Homework #1. Due Apr 15.
- 2. Homework #2. Due May 6.
- 3. Homework #3. Due May 27.
There was a small typo in Problem 3. Corrected version is now linked.