Welcome to the Fall 2009 homepage for CMPSCI 611 -
Advanced Algorithms
-
Instructor:
- Andrew McGregor. (mcgregor at cs.umass.edu)
- Office hours: 4:00pm to 5:00pm on Thursday in in CMPS 334 or by appointment.
-
TA:
- Steve Murtagh (smurtagh at cs.umass.edu)
- Office hours: 4:00pm to 5:00pm on Wednesday in Lederle (LGRT) 220. (That's in the highrise and there's a sign outside the room that says CS TA room.) Or by appointment.
-
Lectures:
- Tuesday and Thursday, 2:30 to 3:45 pm in MRST 211.
-
Textbook: The required textbook will
be "Lecture Notes from CMPSCI 611" by Prof. Micah Adler
and this will be available from the Textbook Annex. I'd
also recommend that you get one of the following books:
- Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein (Library has the e-book)
- Algorithm Design by Kleinberg and Tardos
- Algorithms by Dasgupta, Papadimitriou, Vazirani (See here for penultimate draft.)
- Randomized Algorithms by Motwani and Raghavan (Library has the e-book)
- Probability and Computing by Mitzenmacher and Upfal (Library has the e-book)
- Approximation Algorithms by Vazirani (Library has the e-book if you can read French!)
-
Materials:
- Lecture Slides:
- Lecture 1
- Lecture 2
- Lecture 3
- Lecture 4
- Lecture 5
- Lecture 6
- Lecture 7 (Bonus: A visualization of the union-find data structure with path compression)
- Lecture 8
- Lecture 9 (Bonus: A documentary about Dijkstra)
- Lecture 10
- Lecture 11 and 12
- Lecture 13
- Lecture 14
- Lecture 15
- Lecture 16
- Lecture 17
- Lecture 18
- Lecture 19
- Homeworks and Exams:
- Corrections/Typos in "Lecture Notes from CMPSCI 611"
- Lecture Slides:
-
Schedule: Here's an approximate
schedule for the course. Note that this'll be updated
as we go along depending on our progress and,
hopefully, we'll get to squeeze in a couple of extra
topcs.
-
Lectures 1-3: Preliminaries, Divide and
Conquer
- 8 Sept: Preliminaries, Mergesort, Master Theorem (1, 2.1)
- 10 Sept: Strassen's Matrix Multiplication Algorithm, Closest Pairs (2.2-2.4)
- 15 Sept: The Fast Fourier Transform (2.5)
-
Lectures 4-7: Greedy Algorithms and Matroids
- 17 Sept: Minimum Spanning Trees, Greedy Algorithms on Subset Systems (3.1, 3.2)
- 22 Sept: Matroids (3.3)
- 24 Sept: Bipartite Matchings (3.4)
- 29 Sept: The Union-Find Problem, Kruskal's Algorithm (3.5)
-
Lectures 8-11: Dynamic Programming, Shortest
Paths, and Network Flow
- 1 Oct: The Knapsack Problem, Dynamic Programming, Floyd-Warshall (4.1-4.3)
- 6 Oct: The Dijkstra and Seidel Algorithms (4.4, 4.5)
- 8 Oct: More Seidel, Network Flow (4.6, 5.1)
- 13 Oct: No class (Monday Schedule)
- 15 Oct: Network Flow, Ford-Fulkerson Algorithm (5.2-5.5)
-
Lectures 12-15: Randomized Algorithms
- 20 Oct: Network Flow, Ford-Fulkerson Algorithm (5.2-5.5)
- 22 Oct: In class midterm on the first eleven lectures.
- 27 Oct: Quicksort, The Min-Cut Problem, Karger's Algorithm, Polynomial Identities, Matchings (6.1-6.3)
- 29 Oct: Primality Testing (6.4)
- 3 Nov: Median Finding (6.5)
-
Lectures 16-22: NP-Completeness and
Approximation Algorithms
- 5 Nov: NP-Completeness Fundamentals (7.1)
- 10 Nov: NP-Completeness Examples (7.2)
- 12 Nov: Subset Sum, Max-Cut (7.3)
- 17 Nov: P versus NP, Approximations, Independent Set Problem (7.4, 8.1, 8.2)
- 19 Nov: More Approximations, Metric TSP Problem (8.3,8.4)
- 24 Nov: Set Cover Problem, Poly-Time Approximation Schemes (8.5,8.6)
- 26 Nov: NP-Hardness of Approximation Problems (8.7)
- 1 Dec: No class (Thanksgiving)
-
Lectures 23-26: Linear Programming
- 3 Dec: Linear Programming, Simplex Method (9.1,9.2)
- 8 Dec: Analysis of the Simplex Method (9.3)
- 10 Dec: Duality (9.4)
-
Lectures 1-3: Preliminaries, Divide and
Conquer