15-457A/15-859E: Advanced Algorithms, Spring 2015
Description
An advanced course on the design and analysis of algorithms, more specialized
than the Graduate Algorithms course 15-750.
The current list of topics are:
- MSTs. Recap Prim/Kruskal/Boruvka, an $O(m \log^* n)$ time
algorithm, a randomized linear-time algorithm, MSTs in directed graphs
- Shortest paths. recall Dijkstra/Bellman-Ford/etc, Seidel's
algorithm using matrix multiplication, Williams' APSP algorithm
from 2014.
- Matchings: classical matchings using augmenting paths,
matching using matrix inversions (Tutte/Lovasz, Mucha-Sankowski).
- The Experts algorithm via multiplicative weights, and
online gradient descent.
- Flows, including via electrical flows.
- Linear and Convex Programming
- Using convex programming to solve combinatorial optimization problems
- Solving convex optimization problems
- Fixed-parameter algorithms
- High-dimensional geometry: Dimension reduction and singular value
decompositions.
- Streaming algorithms (a.k.a. algorithms for big data)
- Online algorithms
- Approximation Algorithms
- ...
The goal is to give a glimpse into some ideas/techniques from each area.
As an example, here is
the 2009
version of the course (though with fewer HWs, and a greater
emphasis on data structures).
Prerequisites:
A thorough understanding of basic algorithms, e.g., from a previous algorithms course (like 15-451 or 15-750). Basic Probability, Algebra, graph theory, combinatorics. Mathematical maturity essential.
Remarks
Grades will be based on 4-5 problem sets, attendance, and class
participation. Some of the homeworks allow collaboration, others must
be done individually. Students will be required to write LaTeX notes
for 1-2 lectures, and possibly help with grading. One of the HWs
will count as a take-home final.
There is no textbook for the course. References and readings from books, research paper and other material will be provided as the course progesses.
Maintained by Anupam Gupta