CMSC 37100: Approximation Algorithms

Instructor: Julia Chuzhoy
Time: Tue-Thu 12:00-1:20
Location: Ryerson 277 until Jan. 29; TTI conference room 530 starting Feb. 3.
Web site:

CMSC 37100 Approximation Algorithms


  • Starting Feb. 3 the course will move to room 530 at TTI's new building: 6045 S. Kenwood. The new location is about 1 block southwest of the old one. Map of new building location.
  • There will be no class on Tuesday, Feb 10 due to the TTI-C approximation workshop.

    Course description:

    Many combinatorial optimization problems are NP-hard, and therefore they are unlikely to have efficient algorithms. A natural approach to handle this intractability is to settle for approximation algorithms: efficient algorithms that always produce near-optimal solutions. In this course we will study approximation algorithms for central combinatorial optimization problems and explore major tools and techniques used in algorithm design and analysis. We will also study hardness of approximation, or inapproximability, proofs that show that for some problems, obtaining good approximation can be as hard as solving the problem exactly.

    Tentative list of topics:

  • Combinatorial algorithms: greedy algorithms and charging schemes.
  • Polynomial time approximation schemes.
  • LP-rounding and integrality gaps; algorithms for Set Cover, Congestion Minimization, directed and undirected Multicut; flow-cut gaps.
  • Metric methods; approximation algorithm for Sparsest Cut.
  • Primal-Dual schema. Algorithms for Set Cover, Steiner Network.
  • Iterative rounding algorithm for Survivable Network Design.
  • Hardness of approximation: Set Cover, Asymmetric k-center.
  • SDP-rounding: Max Cut, Sparsest Cut, Expander Flows.
  • Oblivious routing
  • Text:

    We will not follow any specific textbook. However, Vijay Vazirani's book Approximation Algorithms is a great introduction to the area and contains many of the topics we will cover.

    Course requirements:

    There will be 4-5 homework assignments.

    Detailed description of topics covered

  • Jan. 6: Definition of approximation algorithms; factor-2 approximation for Job Interval Scheduling; greedy algorithm for unweighted Set Cover; notion of hardness of approximation.
  • Jan. 8: Greedy algorithm for weighted Set Cover; application to Shortest Superstring; defined minimum Steiner Tree problem.
  • Jan. 13: Approximation preserving reductions; 2-approximation for Steiner Tree, 1.5-approximation for Metric Traveling Salesman and O(log n)-approximation for Asymmetric Traveling Salesman.
  • Jan. 15: Local Ratio. Approximation algorithms for Vertex Cover, Steiner Forest and Job Interval Selection problems.
  • Jan. 20: 2-approximation for symmetric k-center and 3-approximation for the weighted version.
  • Jan. 22: An O(log*n)-approximation algorithm for asymmetric k-center.
  • Jan. 27: Hardness of approximation for asymmetric k-center.
  • Jan. 29: PTAS for knapsack and bin packing.
  • Feb. 3: PTAS for Euclidean TSP.
  • Feb. 5: Linear programming, randomized rounding and integrality gaps. LP-rounding algorithms and integrality gaps for Vertex Cover, Set Cover, Machine Scheduling.
  • Feb. 12: Congestion Minimization, Edge Disjoint Paths, hardness of directed EDP.
  • Feb. 17: Multiway Cut, a factor (2-1/k)-approximation algorithm.
  • Feb. 19: Primal-Dual method, complementary slackness conditions. Primal-dual algorithm for Set Cover. Min-Cut Max-Flow theorem via LP-duality and LP-rounding.
  • Feb. 24: A 2-approximation for multicut on trees via the primal-dual method. Solving the multicut LP relaxation using Ellipsoids algorithm with a separation oracle.
  • Feb. 26: Approximation algorithm for directed multicut; O(log k)-approximation for undirected multicut and matching lower bound on flow-cut gap.
  • Mar. 3: Sparsest cut: definitions, LP relaxation, approximation via minimum multicut.
  • Mar 5: Sparsest cut: logarithmic approximation via Bourgain's theorem.
  • Mar. 10: Will finish proof of Bourgain's theorem. Semidefinite programming, SDP-rounding for Max Cut.