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.30–10AM in STAG 263.

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.

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

## Schedule

**Tuesday March 29 and Thursday March 31**- TSP and Hamiltonian cycle, hardness of approximation and simple approximation algorithms. (See Section 2.4 of DAA.)
**Tuesday April 5 - Problem solving session A**- Read Sections 2.1 through 2.4 of DAA. Solve question 2.5 of DAA and question 2.3 of this file (note that it would be helpful to work through question 2.1 of the same file first).
*By 8.30AM on Thursday April 14*submit a write-up to 2.5(a) and 2.3 (without a discussion of the tightness of the analysis). Note that solutions must be written up in latex! **Thursday April 7 - Tuesday April 19**- Linear programming and semi-definite programming techniques for approximation algorithms. Refer to Jeff Erickson's notes on Linear Programming for a review of LP duality, Chapters 1, 5, and 6.2 of DAA for the material covered in class.
**Tuesday April 26 and Thursday April 28 - Problem solving session B**- Questions 5.5 and 6.2 of DAA.
*By Thursday May 5 at 8.30 AM*, please submit a write up to question 5.5*or*question 6.2 (a) and (b). **Thursday April 21, Tuesday May 3 and Thursday May 5**- Fixed parameter tractablity. Refer to these slides from Daniel Marx.
**Tuesday May 10 - Problem solving session C**- Two questions (from
*Invitation to Fixed-Parameter Algorithms*by Niedermeier):

- Show that the following problem is FPT using the bounded search-tree method: Given a bipartite graph G and a non-negative integer k, determine if you can transform G by adding or deleting (a mixture of both operations is allowed) at most k edges such that every connected component of the resulting graph is a complete bipartite graph.
- The matrix domination problem is, given an n x n binary matrix M and a non-negative integer k, find a set C of at most k non-zero entries such that all other non-zero entries are in the same row or in the same column with at least one entry from C. Give a kernel construction for this problem.

*By Thursday May 19 at 8.30 AM*, please submit a write up to question 2 above.

**Thursday May 12 - Thursday May 19**(class cancelled Tuesday May 17)- 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 Sections 11.1 and 11.2 of Jeff Erickson's notes on Treewidth

DP for TSP over branch decompositions, refer to: Scribe notes: TSP on graphs of bounded branch width, Hung Le **Tuesday May 24 - Problem solving session D**- Two questions (from
*Invitation to Fixed-Parameter Algorithms*by Niedermeier):

- A path decomposition is a tree decomposition where the tree is a path. Pathwidth is defined just as treewidth is, with this in mind. Show that a graph that has a vertex cover of size k has pathwidth at most k+1.
- Give a dynamic program to determine whether the vertices of a graph of treewidth k or branchwidth k can be colored with at most 3 colors.

*By Tuesday May 31 at 8.30 AM*please submit a solution to both questions.

**Thursday May 26 - Thursday June 2**- Poly-time approximation schemes for planar graphs. Refer to Section 11.3 of Jeff Erickson's notes on Treewidth
**Thursday June 2 - Problem solving session E**- One question:

- Give a PTAS for the following problem: Given a planar graph G find an assignment of at most 3 colors to each of the vertices that maximizes the number of edges that have endpoints of different colors.

- You should submit a solution to this problem with your final hand-in.

**Final hand-in**- As described below, your final hand-in is due by 5PM on Friday June 10 at 5PM to KEC 3071 (slipped under my office door -- please paperclip or envelope your submission). Note:

- Any handin I receive after noon on Wednesday June 8 will not be graded until Monday June 13 (and note that I will assume that any submission made between 5PM on Wednesday June 8 and 5AM on Monday June 13 was submitted by 5PM on Friday June 10).
- I will do my best to grade any submissions (and assign final grades) made by noon on Wednesday June 8 by Thursday June 9.

## Evaluation

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

### 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**. You will submit a printed copy of your first draft to Prof. Borradaile**before the next problem solving session**. - Students will receive feedback from Prof. Borradaile on their first drafts. Students use this feedback to prepare a
**final draft**of their solution in lieu of a final exam as described below. - Note that any resources (textbooks, papers, websites) that you used in preparing your solutions (outside of help from fellow students during the problem solving session) must be cited. Not doing so will be considered an act of plagiarism.

### Final Submisssions

In lieu of a final exam, you will submit:

- A first draft for your assigned question from the last problem solving session.
- For each of the problem solving sessions (except the last problem solving session):
- The first draft you submitted earlier in the quarter with Prof. Borradaile's comments on it.
- A second draft of the write-up, taking into account Prof. Borradaile's comments.
- A latexdiff between the first and second drafts. Make sure to get the order of arguments right for latexdiff!

### 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 correct.
- Improvement in your writing. Did you take into account suggestions on your first draft in producing your second draft?

I will provide some feedback on your final grade mid-way through 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