General Info
The lectures allow us to explain new material, how it relates to the rest of the course (and what you've learned in other courses), and to show examples of applying the material. Lecture notes that go into more details will be made available on this page.
Students often learn a lot from working with one another. You are encouraged to meet with other students from class for this purpose.
Lectures roughly fall into four main topics: randomized algorithms; linear programming and primal-dual algorithms; approximation algorithms; streaming algorithms.
Tentative Schedule of Lectures
Week | Topic | Readings |
Week 1: Jan 7 –13 |
Monte Carlo Algorithms: Global Min-Cut |
From "Algorithm Design" by Kleinberg and Tardos: Min Cut |
Week 2: Jan 14–20 |
Finish Min Cut Las Vegas Algorithms: Closest Pair of Points |
Karger-Stein Algorithm From "Algorithm Design" by Kleinberg and Tardos: Closest Pair of Points Finding triangles |
Week 3: Jan 21–Jan 27 | Approximate Near Neighbors |
Approximate Near Neighbor Search |
Week 4: Jan 28–Feb 3 | Streaming Algorithms | Lectures notes on Streaming Algorithms |
Week 5: Feb 4–10 |
Streaming Fingerprinting for String Matching |
Lectures notes on Streaming Algorithms CLRS Section 32.2. Lecture Notes on Karp-Rabin |
Week 6: Feb 11–17 | Random Walks and Markov Chains |
Lectures notes on Markov Chains You can also read the intro section of Chapter 4 of this book. Section 4.8 of the book covers PageRank. Linear Algebra Review Sheet |
Feb 18–24 | NO CLASS: Reading Week | |
Week 7: Feb 25–March 3 |
Finish Random Walks Linear Programming: Basics |
LP Lecture notes |
Week 8: March 4–10 | Linear Programming Duality |
LP Lecture notes Examples of LP formulations. |
Week 9: March 11–17 |
Complementary Slackness Primal-Dual: the Hungarian Algorithm |
Read M. Goemans's lecture notes. |
Week 10: March 18–24 | Finish the Hungarian Algorithm | |
Week 11: March 25–March 31 |
Deterministic and Randomized Rounding Algorithms Start Primal-Dual Approximation Algorithms |
Sections 1.7, 5.1-5.2 of the Williamson and Shmoys book. All of Chapter 1 is recommended. |
Week 12: Apr 1–5 | Finish Primal-Dual Approximation Algorithms | Section 1.7 and 7.1-7.2 of the Williamson and Shmoys book. |
Suggested Exercises
- Suggested exercises from Williamson and Shmoys: 1.4, 1.5, 5.1, 5.2, 5.3, 5.6, 5.7, 7.2
- Hint for 7.2: You may need to sometimes remove edges from your set F during your algorithm in order to satisfy 2-approximate CS.
- Do the exercises from Goemans's matchings lecture notes.
- Suggested exercises for Min Cut:
- From Motwani and Raghavan's Randomized Algorithms (available through the U of T library at http://go.utlib.ca/cat/8230181) try the exercises 10.13 - 10.15 after Chapter 10.
- From Jeff Erickson's lecture notes, try the exercises after Lecture 14.
- Do the exercises in my lecture notes on the Karger-Stein Algorithm.
- After doing exercise 1 from Erickson's notes, try to give an O(m) time algorithm to execute the contraction algorithm, without using the Klein-Karger-Tarjan MST algorithm.
Further Reading
Below you can find some surveys and research articles related to the topics in this course. The research articles may be challenging for you, and that is normal. As a start, you can just read the introduction and try to understand the statements of results.
- Matchings: Paths, Trees and Flowers, Edmonds's paper which gave the first efficient algorithm for maximum cardinality matching in general graphs. Check the section which argues why "efficient" can be abstracted as "polynomial time". If you want to learn the algorithm, a better place to start may be these lecture notes.
- Markov Chains: survey by Diaconis with lots of pointers to papers and books.
- Streaming Algorithms: old survey; survey on graph streaming algorithms.
- Near Neighbor Search: old survey; new survey; lecture on some of my work.
- Minimum Cut: practical algorithms; deterministic algorithm.