CS 420/520: Graph theory with applications to computer science (Winter 16)

Instructor: Amir Nayyeri (Office hours: Tue 3:30pm-4:30pm at KEC 3061)

Lectures: Tue, Thr 2:00pm-3:20pm in WNGR 287

Course description: The course covers efficient (exact or approximation) algorithms for fundamental graph optimization problems such as minimum spanning trees, shortest paths, maximum matching, planar separators, Steiner trees and traveling salesmans problem.

Evaluation: Homework (70%), Midterm (30%)

Prerequisites: (CS 325 or CS 325H) and MTH 232

Homework Assignments:


  1. Tue 1/5: Introduction, graph representation and traversal.
    References: (1) Basic graph algorithms, Jeff Erickson.

  2. Thr 1/7: DFS and its applications, finding a cycle, topological sort, strongly connected components.
    References: (1) Depth first search, Jeff Erickson. (2) Wikipedia pages: DFS, topological sorting, strongly connected components.

  3. Tue 1/12: Single source shortest path, dynamic programming on a DAG, Dijkstra, Shimbel.
    References: (1) Shortest paths , Jeff Erickson. (2) Computing shortest paths and detecting negative cycles , Uri Zwick. (3) Wikipedia: Shotest paths.

  4. Thr 1/14: All pairs shortest paths, Johnson, dynamic programming, Floyd-Warshal.
    References: (1) All pairs shortest paths , Jeff Erickson.

  5. Tue 1/19: All pairs distances in unweighted undirected graphs, matrix multiplication.
    References: (1) On the all-pairs-shortest path problem in unweighted undirected graphs, Raimund Seidel. (2) Strassen's algorithm, Wikipedia.

  6. Thr 1/21: Minimum spanning trees.
    References: (1) Minimum spanning trees, Jeff Erickson. (2) MST, Wikipedia.

  7. Tue 1/26: Matroids.
    References: (1) Matroids, Jeff Erickson. (2) Matroid, Wikipedia.

  8. Thr 1/28: Matching, algorithm for bipartite graphs.
    References: (1) Maximum matching in bipartite and non-bipartite graphs , Uri Zwick. (2) Matching algorithms , Piotr Sankowski and Stefano Leonardi. (3) Maximum matching, Wikipedia.

  9. Tue 2/2: Matching, Hopcroft and Karp, Edmond's Blossom.
    References: (1) Maximum matching in bipartite and non-bipartite graphs , Uri Zwick. (2) Matching algorithms , Piotr Sankowski and Stefano Leonardi. (3) Blossom algorithm, Wikipedia.

  10. Thr 2/4: Perfect matching via Tutte matrix.
    References: (1) Testing polynomials and perfect matching , Alistair Sinclair.

  11. Tue 2/9: Eulerian tour, Hamiltonian cycle.
    References: (1) Eulerian paths , Wikipedia. (1) Hamiltonian paths , Wikipedia.

  12. Thr 2/11: P vs. NP, NP-hardness, approximation algorithms, TSP.
    References: (1) NP-hardness, Wikipedia. (2) Approximation algorithm, Wikipedia. TSP, Wikipedia.

  13. Tue 2/16: Midterm, from lectures 1-4, 6-8, 10, 11.

  14. Thr 2/18: Asymetric TSP and minimum Steiner tree, approxiamtion algorithms.
    References: (1) ATSP, Chandra Chekuri.

  15. Tue 2/23: Planar embedding, duality, tree-cotree, Euler's formula.
    References: (1) Planar graphs , Jeff Erickson.

  16. Thr 2/25: Planar separator theorem, applications.
    References: (1) Planar separator theorem and its applications , the applications section, Ran Duan. (2) Applications of a planar separator theorem , Sections 3 and 7, Richard Lipton, Robert Tarjan, 1980. (3) Planar separator theorem on Wikipedia.

  17. Tue 3/1: Probabalistic method, a probabalistic proof of the planar separator theorem.
    References: (1) The probabilistic method, section 3, Jiri Matousek, Jan Vondrak. (2) A simple proof of the existence of a planar separator, Sariel Har-Peled. (3) Circle packing theorem, Wikipedia.

  18. Thr 3/3: Introduction to property testing.
    References: (1) Introduction to sublinear algorithms, Dana Ron. (2) Sublinear algorithms, Sofya Raskhodnikova.

  19. Tue 3/8: Randomized minimum cut.
    References: (1) Randomized minimum cut, Jeff Erickson.

  20. Thr 3/10: Random walks.
    References: (1) Random walks, Sariel Har-Peled. (2) Random walk, Wikipedia.