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.