- week 1: Introduction to the course, algorithms and complexity, growth of
functions. (pptx, pdf)
- week 2: Graphs, Shortest Paths, Breath First Search, Dijkstra's
algorithm, Bellman-Ford algorithm. (pptx, pdf)
- Further reading: See an
extensive overview of shortest path algorithms in both theory and experiments.
- week 3: Greedy algorithms: Minimum Spanning Tree and Huffman code. (pptx, pdf)
- Further reading: See
this paper by Chazelle for an almost linear-time algorithm, and
this paper by Karger, Klein and Tarjan for a randomized algorithm with linear expected time.
- Further reading: Chapter 16.4 of
the CLRS
book has a gentle introduction to matroids and its relation to
greedy algorithms.
- week 4: Randomized Algorithms: Polynomial Identity Testing, Karger's
contraction, random walk, tail bounds. (pptx, pdf)
- Further reading: An excellent textbook for randomized algorithms is
this one by Motwani and Raghavan.
- Further reading: The textbook by Kleinberg and Tardos has a
chapter about randomized algorithms
here.
- week 5: Dynamic Programming: Matrix Chain Multiplication, Longest
Increasing Subsequence, Edit Distance, All-Pair Shortest Path. (pptx, pdf)
- Further reading: The textbook by Kleinberg and Tardos has a
chapter about dynamic programming
here.
- week 6: Linear Programming:
Simplex algorithms, strong duality, applications. (pptx, pdf)
- Further reading: Matoušek and Gärtner has a
nice textbook on LP.
For general (convex) optimization,
please refer to this book by Boyd and Vandenberghe.
- week 7: Divide and Conquer: Master theorem, merge sort, selection, Matrix multiplication, FFT. (pptx, pdf)
- Further reading: FFT and Simplex algorithms (in last
lecture) were among the "Top
10 algorithms in the 20th century"; see what other algorithms are
there.
- week 8: Maximum Network Flows: Ford-Fulkerson method, Edmonds-Karp algorithm, Max-flow-min-cut theorem, maximum bipartite matching. (pptx, pdf)
- Further reading: A
book by Ahuja, Magnanti and Orlin gives a comprehensive introduction to network flows
theory with algorithms and applications.
- week 9: Stable Matching and Secretary problems. (pptx,
pdf)
- Further reading: Both problems are well-studied topics with rich structures and
results. See the wikipedia pages
here and
here for
more information about these two problems. The textbook by Kleinberg and Tardos also has a
related chapter about Stable Matching.
- week 10: NP-Complete problems: NP, examples problems, NP-completeness, reduction. (pptx,
pdf)
- Further reading: See the
wiki
page for a list of commonly seen NP-complete problems related to
graphs, strings, numbers, games, and many others.
- week 11: Approximation Algorithms: 3SAT, Vertex Cover, st-MinCut. (pptx, pdf)
- Further reading: A standard textbook for
approximation algorithms is
here by Vazirani. A more recent one, by Williamson and Shmoys, is available
online here.
- week 12: Online algorithms: deterministic and randomized algorithms for
ski rentals, and multiplicative weight update methods. (pptx,
pdf)
- Further reading: See
this survey
by Buchbinder and Naor about primal-dual online algorithms, and
here and
here
for the multiplicative weight update methods.
Note:
- Slides (in pptx and pdf) will be posted usually one day before the class, and may
be slightly updated right after the class. Open .pptx files using Microsoft
Powerpoint (Office version 2010 or later).
- This is a tentative plan, subject to changes based on the pace of the class.
- The "Further reading" part will
not be tested in any homework or exam.