Announcements
Evaluation (Tentative)
Course description
Many combinatorial optimization problems that arise in real-world situations are NP-hard. Consequently, we do not expect to be able to come up with efficient algorithms that find optimal solutions to these problems. The area of approximation algorithms deals with the design of efficient algorithms that output a solution which is guaranteed to be close to the optimal solution.
This course will familiarize you with various techniques used in the design and analysis of such approximation algorithms. A significant part of the course will focus on the use of Linear Programming (LP) based methods and relevant extensions, which have emerged as fundamental tools in the design of algorithms.
The course will focus on proving mathematical guarantees on the performance of algorithms. The goal is to emphasize how this not only leads to breakthroughs in our understanding of the problems considered, but also helps design robust algorithms for a variety of problems.
In the last one-third of the course, we will focus on other models of algorithms such as online and streaming algorithms, and possibly techniques to prove lower bounds on the performance of algorithms.
Prerequisites
Undergraduate Algorithms. Familiarity with algorithms, basic probability, discrete mathematics and some linear algebra is expected. You should get a flavour of the course in the first few lectures. Contact the instructor if you are unsure of having satisfied the requirements.
This list will be updated with time to include auxillary references to papers or other notes.