This course is (mostly) about how to solve problems that are computationally intractable. We will see how to take advantage of different input assumptions and structures to get better algorithms that you would for the most general inputs. Much of this will center around approximation algorithms and different techniques for the design and analysis of approximation algorithms.

Meets: Tuesdays and Thursdays 8.3010AM in Weniger 287.

Prof. Borradaile will have a (mostly) open door policy in the afternoons this quarter in lieu of fixed office hours. If you have a quick question, please drop by my office in the afternoon. If you would like a longer meeting, please email me and suggest a couple of times that work for you.

There is no textbook to buy for this course. Unless explicitly directed to, you need not read anything before a lecture. I will try to post (free) material that covers what I cover in lecture as a back-up source. You may be directed to read something to help you with the problem-solving session questions.

We will refer to the following freely available textbook Design of Approximation Algorithms as DAA below.


Tuesday March 31 and Thursday April 2
TSP and Hamiltonian cycle, hardness of approximation and simple approximation algorithms. Section 2.4 of DAA.
Tuesday April 7
Problem solving session A: Questions 1-3, below.
Thursday April 8 and Tuesday April 14
Review: Maximum independent set and dynamic programming over paths, trees and beyond.
Refer to Section 5.7 of Jeff Erickson's notes on Dynamic Programming
Tree decompositions and dynamic programming over them.
Refer to Section 11.1 and 11.2 of Jeff Erickson's notes on Treewidth
Thursday April 16
Class is cancelled.
Tuesday April 21
DP for TSP over branch decompositions.
Scribe notes: TSP on graphs of bounded branch width, Hung Leupload
Thursday April 23
Problem solving session B: Questions 4 & 5 below.
Tuesday April 28 -- Tuesday May 5
PTASes for planar graphs and the Euclidean plane.
Refer to Philip Klein's notes on this and this and Section 10.1 of DAA
Thursday May 7
Problem solving session C: Questions 6-8.
Tuesday May 12 -- Tuesday May 19
Approximation algorithms via LP techniques
Refer to Jeff Erickson's notes on Linear Programming for a review of LP duality, Chapters 1 and 5 of DAA for the material covered in class
Thursday May 21 and Tuesday May 26
Problem solving session D: Questions 9 & 10. Draft 2 due midnight of June 2 so that I have time to get feedback to you for the end of quarter.
Thursday May 28 to Thursday June 4
Maximum cut, separation oracles and SDP
Refer to Sections 5.1, 5.2, 6.2 of DAA and these scribe notes on planar maximum cut (Hung Le)upload
Note: there will be no final problem solving session, but you will be required to submit a solution to one final problem with your third drafts. This problem will be posted in week 10.
Thursday June 11
Final drafts due. Submit (by email) a single pdf containing the diff between draft 2 and 3 for PSS A through D followed by the final draft (draft 3) for PSS A through E. Also turn in the hard copy of your draft 2's (that have my comments on them).

Problem Solving Session questions.

  1. Read Section 2.1 and 2.3 of DAA. Solve question 2.3 of DAA.
  2. Read Section 2.2 of DAA. Solve question 2.1 of DAA.
  3. Solve question 2.6 of DAA.
  4. Give an exact algorithm with running time O(c^bw n) for some constant c for the minimum cost vertex cover problem in an n-vertex graph with branchwidth bw. You may assume that a branch decomposition of width bw is given to you.
  5. Give an exact algorithm for the minimum cost Steiner tree problem in a graph with bounded treewidth or branchwidth. You may assume that you are either given a low-width tree decomposition or branch decomposition. (That is, you should decide which type of decomposition to use.)
  6. Read Chapter 3 of DAA (especially sections 3.1 and 3.2).
  7. Question 3.3 of DAA.
  8. Question 3.4 of DAA.
  9. Give an H_n-approximation for set multicover: each element e must be covered a specified number of times, r_e; each set can be picked multiple times; if set S is picked k times, the cost is kc(S).
  10. Question 1.1 of DAA.


All drafts and submissions must use the provided template for Latexupload.

Problem Solving Sessions

There will be 5 or 6 problem sets of 2-3 questions each. At least one lecture slot ('problem solving session') will be set aside for mutual aid on the problems. This will be organized as follows:

  • Attempt the problems (on your own or together) before the problem solving session.
  • During the problem solving session, ensure that you have all the details for correct solutions to all the problems. Prof. Borradaile will not provide solutions, but will make sure big issues are not overlooked, provide guidance, etc.
  • Each student will be assigned one or two problems to write up the solution to. This is the first draft.
  • Each student will be assigned to a group of two or three students. Each group will go over each other's first draft. Based on the group input, each student will prepare their second draft.
  • Each student will rate the helpfulness of the students in their group as follows:
    -> 1: less than helpful -- it would have been better for them to say nothing
    -> 2: neither helpful nor unhelpful
    -> 3: helpful -- their input improved my draft
    -> 4: very helpful -- I learned so much from them
    You will only learn your own average helpfulness at the end of quarter and groups will change with each problem solving session.
  • Students submit a printed copy of their second draft to Prof. Borradaile before the next problem solving session.
  • Students email the pdf resulting from the latexdiff of their first and second drafts before the next problem solving session. Make sure to get the order of arguments right for latexdiff!
  • Students will receive feedback from Prof. Borradaile on their second drafts. Students use this feedback to prepare a final draft of their solution.

Final Submisssions

In lieu of a final exam, you will submit:

  • A first draft for your assigned question in the last problem solving set.
  • A final draft and latexdiff between the second and final drafts of your assigned questions for the first four problem solving sets.
  • The marked up second draft that was returned to you by Prof. Borradaile for the first four problem solving sets.

This final packet will be due on Wednesday June 10. It is highly recommended that you work on your final drafts during quarter (not at the end of quarter).

Final Grade

Your final grade is determined by:

  • The correctness of your solutions. Since you can work together as much as you want to get your solutions written down, there is no excuse for solutions that make no sense and have big logical flaws. To earn a B or better in this class, your solutions must be largely correct.
  • Improvement in your writing. Did you take into account suggestions on your second draft in producing your final draft?
  • Your helpfulness to fellow students in your group. High helpfulness scores will improve your grade and low helpfulness scores will decrease your grade. That is, you can be a super-star and understand the theory perfectly, but keep all that knowledge to yourself and end up with a B+. Or you can not understand everything perfectly, but in asking questions that help your group improve their presentation and end up with an A-.

I will provide some feedback on your final grade mid-way through quarter.