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.
We meet on Tuesdays and Thursdays 8.30-10AM in KEC 1005. Problem solving session questions are available here.
Prof. Borradaile will have a (mostly) open door policy this quarter in lieu of fixed office hours. If you have a quick question, please drop by my office. 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.
Schedule
This schedule is subject to change if we cover material more quickly or slowly than expected.
- Tuesday April 1 and Thursday April 3
- TSP and Hamiltonian cycle, hardness of approximation and simple approximation algorithms.
Refer to Section 2.4 of Design of Approximation Algorithms - Monday April 7
- One-day symposium on computational biology. Please attend as much as you can! Be sure to register ahead of time.
- Tuesday April 8
- A PTAS for Euclidean TSP.
Refer to Section 10.1 of Design of Approximation Algorithms - Thursday April 10 -- Problem Solving Session A
- Read Section 2.6 of Design of Approximation Algorithms and this paper and try solving questions 1-3 before coming to class.
Solutions to questions 1 and 2 are to be submitted in a timely manner. - Tuesday April 15
- 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 - Thursday April 16
- Tree decompositions and dynamic programming over them.
Refer to Section 11.1 and 11.2 of Jeff Erickson's notes on Treewidth - Tuesday April 22
- Branchwidth and TSP.
- Thursday April 24 -- Problem Solving Session B
- Try solving questions 4-7 before coming to class.
- Tuesday April 29
- PTASes in planar graphs via Baker's technique
Refer to Section 11.3 of Jeff Erickson's notes on Treewidth - Thursday May 1
- PTAS for TSP in planar graphs
Refer to Philip Klein's notes on this and here - Tuesday May 6
- Spanner construction for planar graphs and treewidth of radius R planar graphs
- Thursday May 8 -- Problem Solving Session C
- Try solving questions 8 & 9 before coming to class.
- Tuesday May 13 & Thursday May 15
- Approximation algorithms via LP techniques
Refer to Jeff Erickson's notes on Linear Programming for a review of LP duality and Chapter 1 of Design of Approximation Algorithms - Tuesday May 20 & Thursday May 22 -- Problem Solving Session D
- Try solving questions 10 & 11 before coming to class.
- Tuesday May 27
- Semi-definite programming and the ellipsoid method
Refer to Michel Goeman's notes and Section 6.1 of Design of Approximation Algorithms - Thursday May 29
- 2-approximation and an SDP for max-cut
Refer to Sections 5.1, 5.2, 6.2 of Design of Approximation Algorithms - Tuesday June 3 -- Problem Solving Session E
- Try solving questions 12, 13 & 14 before coming to class.
- Thursday June 5
- A poly-time algorithm for max cut in planar graphs
Refer to the orginal paper
Evaluation
There will be two main components to this course, and you will be graded as such:
Participating
- Discussion of problem solutions: It is expected that you will come to class with a solution to the assigned problem. Or a partial solution. Or questions that highlight where you got stuck or need help. You are highly encouraged to work together to solve these problems. The goal during class is to make sure that everyone understands the solution to these problems.
- Evaluation: How helpful you are in helping the class solve problems and understand material? You will evaluate yourself and your classmates after each problem solving session. Participation is important both inside and outside class. If your participation is above average, your grade will be moved up a level (e.g. B+ to A-) or two (e.g. B to A-); if your participation is below average, your grade will be moved down a level or two; if your participation is near average, your grade won't be moved.
Writing
- You will submit roughly 5 written assignments over the course of the quarter. The questions will be taken from those discussed in class. Therefore, the emphasis will be not on correctness (as correct and complete solutions should be obtained during class), but on style. Of course, if your solution is not correct, that will affect your grade (a lot).
- Evaluation: It is my goal to give each student feedback that will improve the quality of their formal, written arguments over the course of the term. These written assignments will account for 70% of your final grade, with adjustments made according to your participation as described above. Your goal should be to improve over the course of the term and this grade will reflect that. It is possible for everyone to improve the quality of their written mathematical arguments (myself included).
- Each assignment is mandatory and written solutions must be prepared individually.
- Submissions must be typeset in latex, compiled and printed for handin. See the right column for more templates and help.
- Late assignments will be accepted within reason, habitual tardiness will cause the revocation of this exception. Written solutions should be turned in within 2-3 days of the problem solving session. You may not submit the next assignment until one day after receiving feedback on the previous assignment (as you are expected to take my comments into consideration for future assignments). Feedback will be provided as timely as possible (hopefully within 2-3 days of your submission).
- In lieu of a final exam, you will submit (by Thursday of exam week) all your assignments from the quarter (with my edits and suggestions) as well new versions of these writeups having taken my suggestions into consideration. This packet will account for 30% of your final grade.
Feedback on your overall performance in the course will be provided mid-way through the quarter.
resources
courses
- CS523, Spring 2020
- CS515, Fall 2018
- CS325, Fall 2018
- CS523, Winter 2017
- CS523, Spring 2016
- CS325H, Winter 2016
- CS325, Fall 2015
- CS507, ECE507, Fall 2015
- CS523, Spring 2015
- CS325, Winter 2015
- CS325, Fall 2014
- CS523, Spring 2014
- CS325, Fall 2013
- CS515, Fall 2013
- CS523, Spring 2013
- CS325, Fall 2012
- CS523, Spring 2012
- CS515, Fall 2011
- CS523, Spring 2011
- CS325, Winter 2011
- CS515, Fall 2010
- CS521, Spring 2010
- CS325, Winter 2010