COM 3391: Advanced Algorithms: Topics in approximation algorithms

Fall 1999

Instructor:  Rajmohan Rajaraman

113 Cullinane Hall                                                                      Work: 617-373-2075
College of Computer Science                                                 Email: rraj@ccs.neu.edu
Northeastern University                                                           Home: 617-864-1596
Boston, MA 02115                                                                     Fax:    617-373-5121


Class meeting times/location:     W 5:15--8:15

Office Hours:    M 5:00--6:00 PM, W 2:00--3:00 PM


Course Description

Prerequisites

References

Grading

Project

Handouts (in postscript)

Course Information                            Exercise Set 1                        Lecture 1
Tentative Course Schedule                  Problem Set 1                      Lecture 2, part 1
Reading list                                         Sample Solution to PS1        Lecture 3, part 1
                                                          Problem Set 2                         Lecture 3, part 2
                                                           Sample Solution to PS2         Lecture 4
                                                           Problem Set 3                        Lecture 5
                                                                                                         Lecture 6
                                                                                                         Lecture 7
                                                                                                         Lecture 8
                                                                                                         Lecture 9


Course Description

This course will cover some basic topics in the design and analysis of approximation algorithms.  The study of approximation algorithms has developed from the seeming intractability of a number of widely-applicable NP-hard optimization problems.  These optimization problems are unlikely to admit efficient (polynomial-time computable) optimal solutions.  Consequently, a number of techniques have been designed to provide approximate (near-optimal) solutions that can be obtained efficiently.  Of course, we would like to sacrifice as little optimality as possible, while gaining as much as possible in efficiency.  Trading off optimality in favor of efficiency is the paradigm of approximation algorithms.  Approximation algorithms have recently gained significant attention with the development a number of new techniques this decade. These techniques range from simple ones like greedy algorithms, randomization, and dynamic programming, to more sophisticated techniques based on linear programming. Moreover, these techniques have been applied to a variety of different problems in diverse areas including databases, operating systems, and networking. The goal of this course is to present and analyze the various techniques in approximation algorithms in the context of different applications. Topics covered will be selected from the following:
 
  • Brief review of complexity theory: the classes P and NP, the notion of NP-hardness, polynomial-time reductions.

  •  
  • The framework for analyzing approximation algorithms: approximation ratio, different notions of approximations.

  •  
  • Techniques: greedy algorithms, dynamic programming, randomization, design and analysis techniques based on linear programming.

  •  
  • Network design problems such as the network survivability problem and minimum Steiner Tree problem (that arises in multicast routing).

  •  
  • Classic optimization problems such as the set cover problem and the traveling salesperson problem.

  •  
  • Facility location problems that arise in a wide range of applications in operations research and computer science; for example, the location of base stations in wireless networks, the location of fire stations in a city.

  •  
  • Online algorithms for load balancing, scheduling, and virtual circuit routing.

  •  
  • A brief introduction to hardness of approximations.

  •  

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     


    Prerequisites

    The only prerequisite for this course is COM3390 (Analysis of Algorithms).  The student must be familiar with greedy algorithms, dynamic programming, graph algorithms for minimum spanning trees, and shortest paths. Familiarity with the theory of NP-completeness will be an asset, although not required.  A review of NP-completeness will be done in the first class meeting. It is recommended that the student review the material on NP-completeness given in Chapter 36 of Introdution to Algorithms, Cormen, Leiserson, and Rivest, MIT Press, 1990.


    Textbook

    The material covered in the course will be taken from:
     
  • Introdution to Algorithms, Cormen, Leiserson, and Rivest, MIT Press, 1990.

  •  
  • Approximation Algorithms for NP-Hard Problems, edited by Dorit Hochbaum, PWS Publishing Company, 1997.

  •  
  • Recent research papers that will be handed out in class.

  •  
  • Notes on approximation algorithms by Michel Goemans, Rajeev Motwani, and Vijay Vazirani.


  • Grading

    The course grade will be based on two problem sets (each worth 15%), a midterm (30%),  and a project (40%).  Furthermore, each student is required to scribe one lecture.  We will put together the lecture notes as a manuscript at the end of the course.



     

    Project

    Students will be required to do a course project which could be any one of the following types:
     
  • An implementation project evaluating an approximation technique or different approximation algorithms for an optimization problem.

  •  
  • Presentation of a survey article or a research paper.

  •  
  • Work on a research problem.

  •