CS 787 Course Log Lecture 1 Friday Sept 3 Ways to compute the greatest common divisor: exhaustive search, factoring, subtractive and division versions of Euclid's algorithm. Lame's theorem (logarithmic number of division steps). Lecture 2 Wednesday Sept 8 Induction as an algorithm design tool Manber, Using induction to design algorithms, CACM 1988 Examples: Gaussian elimination Largest permuted set Lecture 3 Friday Sept 10 Dynamic Programming Example: Longest increasing subsequence Pruhs, How to design dynamic programming algorithms sans recursion, SIGACT News 1988 Lecture 4 Monday Sept 13 Divide and Conquer Cauchy's proof that geometric mean <= arithmetic mean Karatsuba subquadratic algorithm for integer multiplication Cauchy's proof is in Polya and Szego, Problems and Theorems in Analysis, vol. 1, p. 64. Karatsuba and Ofman, Soviet Physics Doklady, 1963. Lecture 5 Wednesday Sept 15 Intro to linear programming Lectures by Richard Karp [Great Algorithms -- CS 292-5, 2006]. Lecture 6 Friday Sept 17 The simplex algorithm (matrix form) Karp, op. cit. Lecture 7 Monday Sept 20 Duality theorem (strong and weak versions) Karp, op. cit. Lecture 8 Wednesday Sept 22 The complexity of LP Simplex doesn't take shortest paths to an optimal vertex (2-d example) Simplex can take exponential time (Klee-Minty) Average-case and smoothed analysis, briefly Papadimitriou and Steiglitz, op. cit., 8.6 Spielman and Teng, Proc. 2001 STOC Lecture 9 Friday Sept 24 Single-source shortest path as LP Dual problem: costs to the sink Papadimitriou and Steiglitz, Combinatorial Optimization, Section 3.4 Lecture 10 Monday Sept 27 Maximum network flow and its dual Max flow - min cut theorem Ford-Fulkerson augmenting path algorithm Lawler, Combinatorial Optimization, Sections 4.1, 4.2, 4.6 [Note: The next three lectures were by Jin-Yi Cai.] Lecture 11 Wednesday Sept 29 Duality as a tool for estimating solution quality V. V. Vazirani, Approximation Algorithms, Section 12.1 Lecture 12 Friday Oct 1 Flows and cuts, unimodularity of network matrices Vazirani, op. cit., 12.2 Lecture 13 Monday Oct 4 A dual-fitting approximation algorithm for set cover V. Vazirani, op. cit., 13.1 Lecture 14 Wednesday Oct 6 Two network flow applications: Bipartite matching Baseball elimination K. Wayne, Proc. 2010 SODA Lecture 15 Friday Oct 8 Baseball elimination (continued) No class Monday Oct 11 Lecture 16 Wednesday Oct 13 Min-cost flow problems Examples: shortest path job assignment problem Hungarian algorithm for job assignment (proof of termination) E. Bach, The Hungarian Algorithm Sans Dual Variables, notes. Papadimitriou & Steiglitz, Section 11.2 Lecture 17 Friday Oct 15 Matchings and vertex covers Koenig-Egervary theorem Strongly polynomial bound for Hungarian algorithm ( O(n^4) ) Lecture 18 Monday Oct 18 O(n^3) Hungarian implementation, using better data structures Linear Programs with Greedy Solutions (Greed before Edmonds) A. Hoffman, Greedy Algorithms that Succeed Lecture 19 Wednesday Oct 20 Transportation problems Monge inequalities Interval graph coloring Lecture 20 Friday Oct 22 Boruvka/Kruskal minimum spanning tree algorithm Introduction to matroids J. Edmonds, Matroids and the Greedy Algorithm, 1971 Lecture 21 Monday Oct 25 Correctness of GREEDY for matroids Partition matroids "Polygamous" bipartite matchings Lecture 22 Wednesday Oct 27 Transversal matroids Unit-job scheduling with deadlines and penalties Lecture 23 Friday Oct 29 Matroids and linear programming Matroid polyhedra Max-weight independent set and its dual (GREEDY solves both) Lecture 24 Monday Nov 1 New topic: Randomized Algorithms Array search under a "density promise" (50% 0's, 50% 1's). Introduction to finite fields Lecture 25 Wednesday Nov 3 Polynomials in one variable Cipolla's algorithm for square roots mod p Bach & Shallit, Algorithmic Number Theory I, pp. 157-158. Lecture 26 Friday Nov 5 Multivariate polynomials Randomized identity testing J. Schwartz, J. ACM 1980 Lecture 27 Monday Nov 8 Matching in general graphs Tutte polynomial Reducing matching to zero testing Lecture 28 Wednesday Nov 10 MVV algorithm: maximum matching from one matrix inversion Mulmuley, Vazirani, Vazirani, Combinatorica v. 7, 1987, 105-113 Lecture 29 Friday Nov 12 Combinatorial algorithm for matching Edmonds, Canadian J. Math, 1965 Chapter 9 of Tarjan, Data Structures and Network Algorithms (SIAM 1983) Lecture 30 Monday Nov 15 Matching polytope General graph extension of Koenig-Egervary (Edmonds) Edmonds, loc. cit. Lecture 31 Wednesday Nov 17 Randomized rounding Vertex cover (briefly) Wire routing Raghavan & Thompson, Combinatorica 7:4, 1987, 365-374. Lecture 32 Friday Nov 19 Randomized rounding for MAX-SAT (unit weights) Goemans & Williamson, SIAM J. Discrete Math., 1994. Lecture 33 Friday Nov 19 Convex sets and functions Introduction to convex optimization S. Boyd and L. Vandenberghe, Lecture notes for EE 392X, Stanford University. Lecture 34 Monday Nov 22 Positive definite matrices Semidefinite programming Lecture 35 Wednesday Nov 24 Approximating MAX-CUT via semidefinite programming Goemans & Williamson, J. ACM 1995 Lecture 36 Monday Nov 29 MAX-CUT (cont'd) Algorithms for MIN-CUT: network flow, edge shrinking Motwani & Raghavan, pp. 7-9 Lecture 37 Wednesday Dec 1 Introduction to the Ellipsoid algorithm Aspvall & Stone, J. Algorithms, v. 1, 1980. Lawler, The Great Mathematical Sputnik of 1979. Lecture 37 Friday Dec 3 A polynomial-time algorithm for linear programming Aspvall & Stone, op. cit. See also: Papadimitriou & Steiglitz, pp. 170-184. Lecture 38 Monday Dec 6 Polarity (a variant of classical geometric duality) Separation oracles from optimization algorithms Matroid intersection examples: bipartite matching, directed spanning trees Lecture 39 Wednesday Dec 8 Integrality for matroid polyhedral intersection Ellipsoid-based poly time algorithm for matroid intersection problems Lecture 40 Friday Dec 10 Odds and ends: Combinatorial separation oracles (e.g. for directed spanning trees) Separation oracle for trace-zero semidefinite matrices Lecture 41 Monday Dec 13 Introduction to submodular functions Examples: cuts in graphs, matroid rank, cooperative games Course evaluation Lecture 42 Wednesday Dec 15 Survey of algorithmic problems for submodular functions and polymatroids Randomized approximations for submodular maximization Feige, Mirrokni, and Vondrak, Maximizing non-monotone submodular functions, manuscript, 2009. (Preliminary version in FOCS 2007.)