

Brief Course Description  
This course covers a variety of techniques for designing approximation algorithms. Two central themes are: (a) linear programming based techniques, and (b) combinatorial methods. Recent results on hardness of approximation, approximate counting, and semidefinite programming might also be touched upon if time allows. We shall spend roughly a third of the semester on each of linear programming and combinatorial methods. The other third is reserved for more specialized topics. We shall attempt to cover a broad range of commonly faced optimization problems, mostly on graphs, which can be naturally modelled and/or solved using linear programming and other approximation techniques. In addition to that, students are expected to gain substantial discrete mathematics problem solving skills essential for computer engineers and scientists. The textbook is meant mostly to be a reference. We shall cover many topics not covered in the texts. Appropriate lecture notes shall be given. This course is mathematical in nature. One aim is for students to be able to formulate practical problems mathematically, and find familiar techniques to solve them if possible. 

Class Syllabus


Prerequisites: A solid background on
basic algorithms. (A formal course like CSE531 suffices.) Ability to read
and quickly grasp new discrete mathematics concepts and results. Ability
to do rigorous formal proofs.


Teaching staff and related info  


Place and Time: Tuesdays &
Thursdays 02:00  03:20, Norton 214.


Required Textbook: Vijay Vazirani, Approximation Algorithms, SpringerVerlag, 397 pages hardcover, ISBN: 3540653678, published 2001.


Recommended Reference books:

