Time: WeFr 11:00AM~12:20PM

Location: Filmore 319

Credits: 3

Please sign up the course on Piazza.

Shi Li

Office: 328 Davis Hall

Email: [first name][last name initial][at][buffalo][dot][edu]

Homepage: http://www.cse.buffalo.edu/~shil/

Office hours for the course: Wed 2:00pm-3:00pm and Fri 4:00pm-5:00pm.

This course will mainly focus on approximation algorithms, which is the theoretical study of efficient heuristic algorithms for NP-hard problems with provable guarantee on the quality of the solutions. It not only provides practical algorithms for many applications, but also provides a way to measure different levels of hardness these problems exhibit. The course will present various techniques in designing approximation algorithms, such as greedy algorithm, dynamic programming, linear and semi-definite programming rounding, dual fitting, local search and metric embedding.

A prerequisite of CSE 431/531 is required. A basic knowledge of probability theory, linear programming and graph theory is expected.

There are no required textbooks, but most of the contents we will discuss are covered in the following two books:

- The Design of Approximation Algorithms, David Williamson and David Shmoys, Cambridge University Press, 2011.
- Approximation Algorithms, Vijay Vazirani, Springer-Verlag, Berlin, 2001.
- Links to Similar Courses: Ola Svensson, Chandra Chekuri, Mohammad Salavatipour, Anupam Gupta and R. Ravi.

Your final grade will be computed as follows:

- Participation: 10%.
- Scribe: 10%. Each student in the course is required to provide scribe notes for two lectures. A scribe note is due a week after the lecture. Scribe notes must be typed in LaTex. Here are the tex file containing the macros, a sample tex file for a lecture and a figure included in the tex file.
- Homework: 50%. There are 5 homeworks, each worth 10 points.
- Project: 30%.

No late homeworks will be accepted. You are allowed to discuss with classmates on homework problems. However, it is highly recommended that you first think about each problem for enough time before the discussion. You must write your solutions by yourself, in your own words. You need to write down the names of the students you collaborated with. Those who fail to follow these rules will be treated as cheating and violation of academic integrity. Other than getting an immediate F for the course, further actions consistent with the Department Academic Integrity Policy will be taken.

A project can be one of the following forms:

- A survey of several papers on a topic.
- A research paper on some old problem or new problem you introduced. In either case, you need to have some new result.
- Design and implement an approximation algorithm for a problem rising in applied area of your interest. You need to give a theoretical analysis of the algorithm you implemented, describe the engineering tricks you used to make the implementation faster and/or the solutions better and give an experimental evaluation of the algorithm in terms of the running time and approximation factors. If the approximation factors the are better than those guaranteed by the theoretical analysis, briefly explain why.

If you are using the course to satisfy the master project requirement, you need to do either 2 or 3.

Homeworks | Post Dates | Due Dates |
---|---|---|

Homework 1 | 9/22/2017 | 10/6/2017 |

Homework 2 | 10/11/2017 | 10/25/2017 |

Homework 3 | 10/30/2017 | 11/13/2017 |

Homework 4 | 11/22/2017 | 12/6/2017 |

Homework 5 | 12/9/2017 | 12/22/2017 |

Week | Date | Topics | Contents | Reading | Notes |
---|---|---|---|---|---|

1 | Aug 30 | Introduction | Administrivia, Introduction | Sec 1.1 in WS | lec1.pdf |

Sep 1 | Greedy Algorithms | k-center | Sec 2.2 in WS | lec2.pdf | |

2 | Sep 6 | Maximum coverage, set cover | Lec 3 from CC | lec3.pdf | |

Sep 8 | Scheduling on identical machines | Sec 2.3 in WS | lec4.pdf | ||

3 | Sep 13 | Dynamic Programming | Knapsack Covering and Packing | Sec 3.1 in WS | lec5.pdf |

Sep 15 | Scheduling on identical machines | Sec 3.2 in WS | lec6.pdf | ||

4 | Sep 20 | LP Rounding | Set cover, Maximum coverage | Sec 1.7 in WS | lec7.pdf |

Sep 22 | Set Cover, Maximum coverage | lec8.pdf | |||

5 | Sep 27 | Unrelated machine scheduling | Sec 11.1 in WS | lec9.pdf | |

Sep 29 | No class today due to CSE50 celebration | ||||

6 | Oct 4 | LP Rounding | Concentration bounds | Sec 5.10 in WS | lec11.pdf |

Oct 6 | Machine minimization, Congestion minimization | Sec 5.11 in WS | lec12.pdf | ||

7 | Oct 11 | Dual Fitting | Weighted Set Cover | Sec 1.5 in WS | Lec11, Lec12 from Ola Svensson's course |

Oct 13 | Uncapacitated facility location | Sec 7.6 in WS | |||

8 | Oct 18 | Uncapacitated facility location | |||

Oct 20 | Local Search | Max-cut, sub-modular function maximization | Lec12 of Chekuri | ||

9 | Oct 25 | Uncapacitated facility location | Sec 9.2 in WS | lec17.pdf | |

Oct 27 | Uncapacitated facility location | lec18.pdf | |||

10 | Nov 1 | Semi- Definite Programming | Ellipsoid method | Sec 4.3, 6.1 in WS | lec19.pdf |

Nov 3 | Goemans-Williamson algorithm for max-cut | Sec 6.2 in WS | lec20.pdf | ||

11 | Nov 8 | Multiplicate Weight Update | Multiplicative weighte update | A Survey | lec21.pdf |

Nov 10 | 0-sum game and Nash-equilibrium | lec22.pdf | |||

12 | Nov 15 | Streaming Algorithms | Computing F0 | lec23.pdf | |

Nov 17 | Computing F2 | lec24.pdf | |||

13 | Nov 22 | Fall Recess | |||

Nov 24 | |||||

14 | Nov 29 | Lower Bound via Communication Complexity | Necessity of Approximation | ||

Dec 1 | Necessity of Randomization | ||||

15 | Dec 6 | MapReduce Algorithms | MapReduce Model | Slides by Suri | |

Dec 8 | Computing Triangles |

- Ipe is a drawing editor for creating figures in PDF or (encapsulated) Postscript format. It supports making small figures for inclusion into LaTeX-documents as well as making multi-page PDF presentations.