CSE 632: Analysis of Algorithms II : Approximation Algorithms (Fall 2017)

Course Information

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

Location: Filmore 319

Credits: 3

Please sign up the course on Piazza.

Instructor

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.

Overview

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.

Prerequisites

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

Recommended Textbooks

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

Grading

Your final grade will be computed as follows:

Homework Policy

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.

Project

A project can be one of the following forms:

  1. A survey of several papers on a topic.
  2. A research paper on some old problem or new problem you introduced. In either case, you need to have some new result.
  3. 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

HomeworksPost DatesDue 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

Tentative Schedule


WeekDateTopicsContentsReadingNotes
1Aug 30 No class today due to CSE50 celebration
Sep 1 Fall Recess
2Sep 6

Other Useful Resources