Combinatorial Algorithms and Data Structures
This course will focus on some of the most important modern algorithmic
problems, such as clustering, and a set of beautiful techniques that have
been invented to tackle them. The techniques include the use of geometry,
convexity and duality, the formulation of computational tasks in terms of two
person games and algorithms as two dueling subroutines. We will also explore
the use of randomness in MCMC type algorithms and the use of concentration
bounds in creating small core sets or sketches of input data, which can be used
to quickly get a reasonable solution. We will also explore the use of these new
techniques to speed up classical combinatorial optimization problems such
* Routing Disjoint Paths - Toll/congestion game
* Two person zero-sum games, minimax theorem, minimum cost matching
* Experts/multiplicative weights algorithm
* LP duality, LP algorithms
* Support vector machines, VC Dimension
* Markov Chains, eigenvalues, Cheeger inequality
* Random generation, approximate counting, volume computation
* Measure concentration, load balancing, Cuckoo hashing, Bloom filters
* Johnson Lindenstrauss, locality preserving hashing
* Principal components analysis, learning Gaussians
* Streaming algorithms
* Fast linear systems solvers, electrical flows
* Fast max-flow
* SDP and applications
* Power law distributions.
Umesh Vazirani (firstname.lastname@example.org)
Office Hours: TBA
Satish Rao (email@example.com)
Office Hours: Mon. 1:30-2:30 PM
Jonah Sherman (firstname.lastname@example.org)
Office Hours: Will schedule to maximize homework help.
Anupam Prakash (email@example.com)
Office Hours: Wed. 4-5 PM. Will schedule additional w.r.t. homework.
Scheduling The class meets on Tuesdays and Thursdays 2:00-3:30 in
grading will be based on 5 homeworks (40 %) where collaboration, full
credited, is allowed, 1 homework/midterm (25 %) where collaboration
is prohibited, and a project (35 %). The project can be done in
groups of 2 or 3 and should either be connecting your research to
topics in this class, or digesting a topic of interest related to this
class. The main output of the project is a report and a presentation
to the course staff.
This course will cover material at the tougher end of an undergraduate
algorithms course (in review), a bit beyond, and some that is well
beyond, perhaps cresting on research oriented topics.
Topics covered will likely include...
For now please goto the previous version of this course.
The previous sites are here. Spring
Fall 2001 ,
Spring 2005 ,
Spring 2006 ,
Spring 20 ,