Scroll down to schedule
Course description and content
The field of approximation algorithms has developed in response to the difficulty in solving a good many optimization problems exactly. In the case of NP-hard problems, we sacrifice optimality in the favor of efficient heuristics that give nearly-optimal (approximate) solutions, and aim for provable guarantees on the performance of these algorithms. This course will present some general techniques (such as LP and convex programming-based approaches, randomness, and metric methods) that underly these algorithms. We will then apply these approaches to online problems where the input arrives over time and the algorithm is required to make choices without knowledge of the entire input.
This course meets on M/W/F but on average we will meet twice a week. Please subscribe to the course Google calendar to keep track of meeting times. Use this link to subscribe in iCal format, or this to view the calendar in HTML format.
Students are required to have taken an ungraduate level algorithms and an undergraduate level computational complexity course (e.g. CS 577 and CS 520), and are expected to have a thorough understanding of basic algorithm design techniques, randomness, and basic complexity theory. Graduate level theory courses, particularly good understanding of the design and analysis of randomized algorithms, are a plus. If you have not taken the aforementioned courses but believe you have the necessary background for this course, please contact the instructor for permission.
Instructor: Prof. Shuchi Chawla
Online Forum: We will use Piazza for all course related activity -- discussions, announcements, sharing of resources, etc. Further information about the course can also be found there. Sign-up here.
Schedule and Scribe Notes
(Note: scribe notes are not fully edited and may contain errors and omissions.)
Student presentations and reports