CS672: Approximation Algorithms (Spring 2020)
Basic information
- Lecture time: Monday/Wednesday 2:00pm - 3:50pm
- Lecture place: KAP 164
- Instructor: Shaddin Dughmi
- Email: shaddin@usc.edu
- Office: SAL 234
- Office Hours: Thursdays 10:30am - Noon
Announcements
Schedule by Week
- Week 1: Introduction to Approximation Algorithms.
- Reading: WS chapter 1, 2.4.
- Weeks 1-2: Greedy Algorithms and Local Search
- Week 3: Dynamic Programming and Rounding
- Reading: WS chapter 3.
- Recommended reading: Vazirani chapter 8
- Week 4: Using combinatorial objects as benchmarks
- Recommended reading: Vazirani chapters 3 and 4.
- Week 5: Linear Programming review
- Week 6: Deterministic rounding of linear programs
- Reading: WS Chapter 4
- Recommended reading: Vazirani chapter 17
- Week 7: Randomized rounding of linear programs
- Weeks 8-9: The primal/dual method
- Reading: WS Chapter 7.1 and 7.4, Vazirani Chapter 22
- Recommended reading: The rest of WS chapter 7.
- Week 10-11: Cuts and Metrics
- Reading: WS Chapter 8.1, 8.2, and 8.3, and Vazirani chapters 19 and 20
- Recommended reading: The rest of WS chapter 8.
- Weeks 12-13: Rounding of semi-definite programs
- Slides for first lecture
- Reading: WS Chapter 6, Vazirani Chapter 26.
- Weeks 14-15: Hardness of Approximation
- Reading: WS Chapter 16, Vazirani Chapter 29.
Course Description
We will examine combinatorial optimization problems which are intractable to solve optimally, assuming P is not equal to NP. For such problems, we will examine the design of "approximation algorithms," which compute solutions which are "not too much worse" than optimal. This paradigm has become a cornerstone of algorithm design, and this course aims to provide a comprehensive overview of the topic at the graduate level. Towards the end of the semester, we will also explore the limits of this approach --- "hardness of approximation."
Prerequisites
The main prerequisites for this class are mathematical maturity, exposure to algorithm design and analysis at the beginning graduate level (CS570 or 670), and a solid grounding in linear algebra and probability theory. Exposure to convex optimization, in particular linear programming, is also desirable. Students without such background can seek permission of the instructor.
Requirements and Grading
There will be 3 homeworks, a take-home midterm, and a take-home final. The midterm will count for 20%, and the final for 30%. Homeworks will count for 50%, including a peer grading component. The homeworks and exams will be proof-based, and are intended to be very challenging. Collaboration and discussion among students on the homeworks is allowed, even encouraged, though students must write up their solutions independently. The exams, however, must be independent work.
Late Homework Policy: Students will be allowed 6 late days for homework, to be used in integer amounts and distributed as the student sees fit. No additional late days are allowed. There are no late days allowed on the take-home exams.
References
Our primary reference will be The Design of Approximation Algorithms by Williamson and Shmoys, and we will proceed through that book roughly in order. A useful secondary reference is Approximation Algorithms by Vazirani. The WS books is available free online, and both books will be placed on reserve at the USC libraries. Additionally, we might refer to research papers throughout the course, which will be linked on the course homepage.