Instructor: Viswanath Nagarajan (IOE 2713)

Lectures: Tuesdays and Thursdays, 9:00 – 10:20 AM, Room 1012 EECS.

Description: Many optimization problems are NP-hard, which means that one cannot expect an algorithm to be computationally efficient and make optimal decisions. These “hard” optimization problems arise in various applications such as network design, scheduling, transportation, supply-chain and robotics. Approximation algorithms provide a theoretically sound approach to such problems by obtaining provably near-optimal solutions efficiently. Furthermore, many applications involve uncertain or dynamic data, where an algorithm has to make decisions without complete information. In order to handle such situations, we will extend the notion of approximation algorithms to “online” algorithms for stochastic inputs (when probabilistic information is available) as well as adversarial inputs (when no future information is available). The course will focus on fundamental and broadly applicable techniques such as greedy algorithms, local search, dynamic programming, linear/convex programming, primal-dual algorithms, potential-function methods and decision-tree methods. These techniques will be demonstrated in the context of basic optimization problems such as facility location, matching, scheduling and set cover. All topics involve mathematical proofs.

Course outline and lecture notes

Greedy: matroid basis, max-knapsack, maximum coverage, set cover. Notes.

Local search: bipartite matching, k-median. Notes.

Dynamic programming: knapsack, independent set, tree decomposition. Notes.

Linear programming: Minimum cut, facility location, packing integer programs, load balancing, constrained matroid basis, k-set cover. Notes.

Online basics: rent-or-buy (ski rental), line search (online bidding), deterministic and randomized lower bounds. Notes.

Online LP: fractional covering, set cover, matching, Steiner tree. Notes.

Online potential functions: fractional set cover, load balancing, experts (deterministic, randomized and bandit). Notes.

Stochastic optimization: series testing, k-of-n evaluation, Prophet inequality, constrained max-value. Notes.