o

CS 231: Topics in Combinatorial Algorithms

Subhash Suri
TuTh 11:00-12:50
Room: Phelps 1401

o

Administrative Stuff

Course Description

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, indexing the web graph for key word searches, 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.

The following is a tentative list of topics I plan to cover. Some of these are based on research papers of the past decade, and you are strongly encouraged to study them.

Syllabus

Small World Phenomena
An Algorithmic Perspective. Models of Internet connectivity.
6 degrees of separation. Upper and lower bound theorems.
Reading List:
The small-world phenomenon: An algorithmic perspective, by Jon Kleinberg.
The diameter of the world wide web, by Albert, Jeong, Barabasi.
Theory of Network Flows
Flow Networks. Maxflow-Mincut theorem.
Ford-Fulkerson Scheme. Polynomial Schemes for maxflow.
Disjoint paths, other applications, and extensions.
Reading List:
Network Flows: Theory, Algorithms, and Applications, by Ahuja, Magnanti, Orlin.
Introduction to Algorithms, by Cormen, Leiserson, Rivest, Stein.
Algorithm Design, Kleinberg and Tardos.
Network Monitoring
Distributed monitoring. Epsilon-Cut Guarantees.
VC Dimension and Small Detection Sets.
Reading List:
Detecting a Network Failure. Jon Kleinberg, in Internet Mathematics, 2003.
The Probabilistic Method, Noga Alon and Joel Spencer.
Economics and Computer Science
Social choice, voting and Arrow's Theorem.
Combinatorial Auctions.
Reading List:
Introduction to Mechanism Design (for Computer Scientists), by Nisan. Available at http://www.cs.huji.ac.il/~noam/mkts.html.
Roughgarden Lecture Notes on Combinatorial Auctions. Available at http://theory.stanford.edu/~tim/f05/ca.ps
Optimization with Linear Constraints
Linear Programming Formulation.
Simplex Method. Primal-Dual Theorem.
Integer-linear programming.
Reading List:
Linear Programming, V. Chvatal.
Data Streams: Computing in one-pass
Estimating distinct elements.
Estimating frequency moments, quantiles.
Reading List:
The space complexity of approximating the frequenceyu moments, by Alon, Matias, Szegedy.
Data Streams: Algorithms and Applications, by Muthukrishnan

Organization

Lecture Notes

Grading and Policies