Fine-Grained Complexity 20224191


  • 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

Course details:

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:

25.10.21 - Week 1: Overview. [Recording] [Slides] [Survey by Virginia Vassilevska Williams]

1.11.21 - Week 2: 3SUM: Equivalent Versions. [Recording] [Notes]

8.11.21 - Cancelled. 

15.11.21 - Week 3: 3SUM Hard Problems. [Recording] [Part 1: Slides] [Part 2: Notes]

22.11.21 - Week 4: Triangles, Matrix Mult, and APSP [Recording] [Notes] [Notes from MIT]

29.11.21 - Week 5: APSP-Hard Problems [Recording] [Notes]

6.12.21 - Week 6: The Strong Exponential Time Hypothesis [Recording] [Notes] [Detailed notes from MPI] [More on SAT algorithms from MIT]

13.12.21 - Week 7: SETH-Hard Problems. [Recording] [Notes: part 1, part 2]

20.12.21 - Week 8: Hardness for Longest Common Subsequence. [Recording pw: fgcweizmann1] [Part 1: Slides and Detailed notes from MPI] [Part 2: Overview]

27.12.21 - Week 9: Barriers for Reductions. [Recording] [Notes] [The NSETH paper]

3.1.22 - Week 10: Dynamic Graph Problems. [Recording] [Slides+Notes]

10.1.22 - Bonus Guest Lecture by Karthik C.S.: Hardness of Approximation and Parameterized Comeplxity. [Recording] [Slides]

17.1.22 - Week 12: k-Clique. [Recording] [Slides+Notes]

24.1.22 - Week 13: Conclusion. [Feedback form] [Recording] [Slides+Notes]

Problem Sets:

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.

Learning outcomes:

  1. 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).
  2. Familiarity with the most basic computational problems that are not known to be solvable in near-linear time.
  3. Ability to understand state of the art research in fine-grained complexity.

Helpful resources on "Hardness in P":