- Here is the exam, due on March 1st 10pm: [exam link].
- For the benefit of future offerings of this course, please fill out this feedback form.
- The fourth (and last) Problem Set is out! Due on January 26th.
- From now on, all lectures will be virtual: zoom link.
Lectures: Mondays 2:15-4:00pm, via Zoom.
TA: Tomer Grossman.
Prerequisites: a basic course in Algorithms, and a basic course in Complexity/Computability.
Other: HW every other week, take-home exam, video recordings will (probably) be availble.
Topics by week:
8.11.21 - Cancelled.
- [HW4 - due 26.1]
- [HW3 - due 2.1]
- [HW2 - due 15.12]
- [HW1 - due 23.11] [Sample solution] [Helpful resource on randomness from the the FGC course at MPI]
List of open questions that we saw in class (ideas for research projects): [Open Questions]
Whereas traditional complexity theory classifies problems into polynomial time solvable (easy) or NP-hard, a more modern complexity theory aims to achieve a more fine-grained classification. For example, we'd like to know if the time complexity is near-linear or quadratic? This is motivated by the fact that, with the growing sizes of data, even quadratic time can be impractical.
This course will present the current approach for obtaining fine-grained complexity results: we start with a small set of conjectures (similar to P \neq NP) about the exact complexity of certain core problems and devise a host of combinatorial reductions to achieve fine-grained lower bounds for many other problems.
The course will cover:
- The main conjectured-to-be-hard problems, what we know about them algorithmically, and how to reduce them to other problems. These problems include: k-SAT, 3-SUM, All-Pairs Shortest Paths, and k-Clique.
- Various examples of fine-grained results for important problems on strings (e.g. Edit-Distance), graphs (e.g. Diameter), and geometric data (e.g. Closest Pair).
- Other topics such as hardness of approximation, parameterized complexity, and barriers for reductions.
- Whereas a basic course in complexity theory provides the students with tools to prove whether a problem that they encounter is in P or not (assuming P \neq NP), this course provides them with tools to prove whether a problem is in near-linear time or probably not (assuming certain conjectures).
- Familiarity with the most basic computational problems that are not known to be solvable in near-linear time.
- Ability to understand state of the art research in fine-grained complexity.
Helpful resources on "Hardness in P":
- SETH vs Approximation, SIGACT News 2019 by Rubinstein and Vassilevska Williams.
On some fine-grained questions in algorithms and complexity, ICM 2018 survey by Vassilevska Williams.
Some Open Problems in Fine-Grained Complexity, SIGACT News 2018 by Vassilevska Williams.
Tutorial Slides for the Highlight of Logic, Games, and Automata 2018.
- Hardness in P, Ph.D. thesis (2017)
Fine-Grained Algorithms and Complexity course at MIT by Virginia Vassilevska Williams and Ryan Williams, Fall 2020.
Algorithms from the Fine-Grained Perspective, course at UIUC by Timothy Chan, Fall 2020.
Fine-Grained Complexity Theory course at MPI by Karl Bringmann and Marvin Kunnemann, Summer 2019.
Fine-Grained Complexity (TAU theory fest 2020).
Fine Grained Approximation Algorithms and Complexity (Bertinoro 2019).
Structure and Hardness in P (Dagstuhl 2016).
Computational Complexity of Low-Polynomial Time Problems (Simons Institute 2016).
- Hardness and Equivalences in P (STOC 2015).
Open problem lists: Dagstuhl 2016.