
CS 231: Topics in Combinatorial Algorithms
Subhash Suri
TuTh 11:00-12:50
Room: Phelps 1401

Administrative Stuff
- TA for the course is TBD. (tbd@cs.ucsb.edu)
- TA Hours: TBD.
- TA Location: TBD.
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
- This is a theoretical, lecture-based course. There is no single textbook,
and the material is compiled for several books and research papers.
The course web site lists the main resources. For most of the lectures,
I will post below plain ascii lecture notes, but they are
unpolished---no figures,
no fancy formatting---meant to help organize my own thoughts.
Lecture Notes
Grading and Policies
- The course grade will be based on weekly quizzes and a final exam.