VII · Computational complexity

NP-completeness

What it is

A problem is NP-complete if every NP problem reduces to it in polynomial time. Cook-Levin (1971): SAT is NP-complete. Karp (1972): 21 problems are.

Where it lives

TSP, graph colouring, knapsack, vertex cover, scheduling — most "looks like" NP-hard problems are.

The key insight

A polynomial-time algorithm for any NP-complete problem would solve all of them. Reductions are how you prove your problem is hard without designing a new algorithm.