CS 501 / MCS 501 - Computer Algorithms II
University of Illinois - Chicago
Fall 2020


This course will introduce students to the fundamental ideas underlying modern algorithmic techniques. Students will be taught how to design and analyze approximation algorithms and randomized algorithms, as well as other advanced topics. Knowledge of topics covered in Computer Algorithms I (CS 401 / MCS 401 or equivalent) is required.

This course is represented in the CS Ph.D. prelim exam in the MSCS department.

Basic Information

Syllabus: pdf
Time and Location: M-W-F 10:00–10:50 a.m., online
Instructor Contact Information: Lev Reyzin, SEO 418, (312)-413-3745
Required Textbook: D. P. Williamson and D. B. Shmoys, The Design of Approximation Algorithms (available free online)
Instructor's Office Hours: T 9:00-9:50am, F 2:00-2:50pm, online

Exam Dates

midterm exam: Friday October 30th, 2020 (1 hour + 30 min for upload, any time during that day)
final exam: Friday December 11th, 2020 (2 hours + 30 min for upload, any time during that day)

Problem Sets

problem set 1, due 9/16/20
problem set 2, due 10/5/20
problem set 3, due 10/19/20
problem set 4, due 11/20/20
problem set 5, due 12/4/20

Lectures and Readings

Note: lectures will have material not covered in the readings.

Lecture 1 (8/24/20)
covered material: intro to the course, discussion of modern algorithms vs traditional approaches

Lecture 2 (8/26/20)
covered material: review of Ford-Fulkerson algorithm, reduction from min-cut to min-s-t-cut
reading: review these notes on flows by Kevin Wayne (Princeton)

Lecture 3 (8/28/20)
covered material: Karger's randomized algorithm for min-cut
reading: these notes by Eric Vigoda (Georgia Tech)

Lecture 4 (8/31/20)
covered material: the Karger-Stein improvement to randomized min-cut
reading: these notes by Sasho Nikolov (Toronto)

Lecture 5 (9/2/20)
covered material: introduction to approximation algorithms via metric k-center
reading: 2.2 of Williamson and Shmoys

Lecture 6 (9/4/20)
covered material: optimization and decision problems, vertex cover (VC) and set cover (SC)
reading: these notes by Patrick Jaillet (MIT)

Lecture 7 (9/9/20)
covered material: greedy algorithms for SC and VC
reading: 1.6 of Williamson and Shmoys and these notes by Dieter van Melkebeek (Wisconsin)

Lecture 8 (9/11/20)
covered material: linear programming (LP) relaxations for SC and VC
reading: 1.1 and 1.2 of Williamson and Shmoys
optional reading: appendix A of Williamson and Shmoys for background on LP

Lecture 9 (9/14/20)
covered material: deterministic rounding of LP relaxation for VC
reading: 1.3 of Williamson and Shmoys

Lecture 10 (9/16/20)
covered material: randomized rounding of LP relaxation for SC
reading: 1.7 of Williamson and Shmoys

Lecture 11 (9/18/20)
covered material: hardness of approximation (of k-center) by reducing from NP-Complete (NPC) problems
reading: 16.1 of Williamson and Shmoys
optional reading: appendix B of Williamson and Shmoys for background on NPC

Lecture 12 (9/21/20)
covered material: minimum spanning trees (MST), nearest addition for metric traveling salesman problem (TSP)
reading: these notes by Santosh Vempala (Georgia Tech) for review of MSTs

Lecture 13 (9/23/20)
covered material: using MSTs for approximating TSP
reading: begin 2.4 of Williamson and Shmoys

Lecture 14 (9/25/20)
covered material: Christophides algorithm, definition of (fully) polynomial-time approxmation scheme (FPTAS/PTAS)
reading: finish 2.4 of Williamson and Shmoys

Lecture 15 (9/28/20)
covered material: went over problem set 1 (asynchronous)

Lecture 16 (9/30/20)
covered material: review of dynamic programming, subset sum and knapsack
reading: these notes by Deeparnab Chakrabarty (Dartmouth)

Lecture 17 (10/2/20)
covered material: dynamic programming with rounding, FPTAS for knapsack
reading: 3.1 of Williamson and Shmoys

Lecture 18 (10/5/20)
covered material: prize-collecting Steiner tree (PCST), problem of connectivity with exponential-size IPs/LPs
reading: 4.4 of Williamson and Shmoys

Lecture 19 (10/7/20)
covered material: ellipsoid method, separation oracle and rounding scheme for PCST 3-approximation
reading: 4.3 of Williamson and Shmoys
optional reading: these notes by Michel Goemans (MIT)

Lecture 20 (10/9/20)
covered material: randomized approximations for MAX-CUT and MAX-3SAT, derandomization using conditional expectations
reading: 5.1 and 5.2 of Williamson and Shmoys

Lecture 21 (10/12/20)
covered material: discussion of biased rounding for MAX-SAT, LP relaxation and linear rounding scheme for MAX-SAT
reading: 5.4 of Williamson and Shmoys
optional reading: 5.3 of Williamson and Shmoys (for a simpler biased rounding scheme than via an LP relaxation)

Lecture 22 (10/14/20)
covered material: analysis of randomized rounding for MAX-SAT, method of choosing better of two solutions
reading: 5.5 of Williamson and Shmoys

Lecture 23 (10/16/20)
covered material: non-linear rounding schemes, integrality gaps, application to optimal rounding for MAX-SAT
reading: 5.6 of Williamson and Shmoys
optional reading: 5.7 of Williamson and Shmoys for non-linear rounding improvement for PCST

Lecture 24 (10/19/20)
covered material: on the P vs NP problem, a talk by Avi Wigderson (asynchronous)
optional reading: section 2 of this paper by Avi Wigderson (IAS)

Lecture 25 (10/21/20)
covered material: intro to semidefinite programming (SDP), positive semidefiniteness (psd), vector programming (VP) SDP form
reading: 6.1 of Williamson and Shmoys

Lecture 26 (10/23/20)
covered material: LP relaxation for MAX-CUT and its integrality gap, SDP formulation for MAX-CUT
reading: section 3 of these notes by Alantha Newman (Grenoble)

Lecture 27 (10/26/20)
covered material: random hyperplane method for rounding SDPs, Goemans-Williamson MAX-CUT approximation
reading: 6.2 of Williamson and Shmoys

Lecture 28 (10/28/20)
covered material: unit vectors in IPs for clustering, SDP relaxation and approximation for correlation clustering
reading: 6.4 of Williamson and Shmoys

Lecture 29 (10/30/20)
covered material: midterm exam, no lecture

Lecture 30 (11/2/20)
covered material: went over the midterm exam

Lecture 31 (11/4/20)
covered material: Wigderson's algorithm for approximately coloring 3-colorable graphs, SDP formulation for improvement
reading: sections 2 and 3 of these notes by Thore Husfeldt (ITU Copenhagen)

Lecture 32 (11/6/20)
covered material: using SDPs for improved algorithms for approximately coloring 3-colorable graphs
reading: 6.5 of Williamson and Shmoys

Lecture 33 (11/9/20)
covered material: LP duality, LP dual for SC
reading: 7.1 of Williamson and Shmoys

Lecture 34 (11/11/20)
covered material: rounding a dual solution for SC, complementary slackness
reading: 1.4 of Williamson and Shmoys

Lecture 35 (11/13/20)
covered material: introduction to primal-dual methods, a primal-dual algorithm for SC
reading: 1.5 of Williamson and Shmoys

Lecture 36 (11/16/20)
covered material: the feedback vertex set problem (FVS), primal relaxation and dual LP, developing primal-dual algorithm for FVS
reading: 7.2 of Williamson and Shmoys

Lecture 37 (11/18/20)
covered material: choosing cycles for primal-dual FVS approximation, ILP for shortest path problem (SP), review of Dijkstra's algorithm
reading: review these notes on shortest paths by Kevin Wayne (Princeton)

Lecture 38 (11/20/20)
covered material: a primal-dual method for optimally solving SP that yields Dijkstra's algorithm
reading: 7.3 of Williamson and Shmoys

Lecture 39 (11/23/20)
covered material: review of mapping versus Turing reductions, introduction to approximation-preserving reductions
reading: these notes by Dieter van Melkebeek (Wisconsin)

Lecture 40 (11/25/20)
covered material: L-reductions, approximation preserving reduction from MAX-E3SAT to MAX-2SAT
reading: 16.2 of Williamson and Shmoys