CS599: Approximation Algorithms

Most recent message posted: 05/06/10.


Scope of Course

Many of the most important problems in practice are NP-complete to solve optimally. Thus, it is unlikely that any efficient algorithms exist for solving them. Similarly, even if a problem is solvable in polynomial time, the running time of an optimal algorithm may be prohibitively large for instances of practical importance. In both cases, a well-motivated and common approach is to use "Approximation Algorithms", algorithms which find a valid solution whose quality is guaranteed to be "not too much worse" than the optimal solutions.

The field of Approximation Algorithms has become one of the cornerstones of algorithm design. This course aims to provide a fairly comprehensive introduction to the topic, aimed primarily at students at the graduate level or advanced undergraduates. It covers various design techniques and applications, and also explores the limits of approximability.


The following is a preliminary list of topics that will be covered in terms of techniques. It may be expanded or shortened based on time availability.



The following textbook is required:

In addition, we will occasionally reference recent (and not-so-recent) research or survey papers. Another useful sources of information (in some cases covering material beyond the scope of this course) is the following:

For reviewing prerequiste material, see:

Assignments and Grading

There will be about 4-5 homework assignments, one takehome midterm, and one takehome final. The homeworks will cumulatively count for 40% of the grade, the midterm for 25%, and the final for 35%. All assignments will be posted here once issued.

Homeworks should be predominantly done individually. However, limited interaction is appropriate, so long as it is clearly marked on the homework who you discussed ideas with. The midterm and final must be solved individually.

All students are expected to maintain the utmost level of academic integrity. Passing off anyone else's (whether it be a fellow student or someone outside the university) work as your own is a serious infraction, and will lead to appropriate sanctions. Similarly, any collaboration during exams is prohibited. Please consult the USC Student Conduct Code (general overview) for details on what is and is not appropriate, and for the possible consequences of infractions.