## 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*