Lecture 11

Slides and Topics

Today we will look at approximation algorithms. This is another way of dealing with NP-completeness. We find a polynomial time algorithm (often greedy) that is guaranteed to find an solution within some bound or ratio of the optimal solution.

Lecture plan

I am not sure how many of the slides I will use. Some of the material is easier on the whiteboard. The slides are only a guide. To master the material you should read the book.

After covering the definitions we will look at a number of techniques for developing approximation algorithms:

  • Greedy algorithms: node/vertex cover and set-covering. Often by analysing the naive greedy algorithm you can work out the approximation ratio.
  • Using existing algorithms to compute something that can be transformed into a solution. Using Minimum Spanning Trees to solve certain classes of TSPs.
  • Proving that there are no approximation algorithms for certain NP-complete problems.
  • Derandomisation: Use a randomised algorithm, but remove the randomness to get a polynomial time algorithm. We look at approximation algorithms for Max-SAT.
  • LP-rounding. Slides 32-41 of Kevin Wayne’s slides on Approximation.
  • TBA, more approximation algorithms. I would like to cover set-covering, but some of the maths gets a bit involved, and you need to take some calculus/analysis on trust.
  • TBA, Load balancing/job-shop scheduling. One of the earliest approximation algorithms. This is covered in Kevin Wayne’s slides on Approximation.

Reading Material

All of Chapter 35 in CLRS4 and 14.1 of Complexity theory in Computer Science

Additional Slides