NP, NP-Completeness & Reductions

NP does not mean non-polynomial

Here is the single most common misunderstanding in all of complexity theory. People see 'NP' and read 'not polynomial', as though it named the slow, intractable problems. It does not. The N stands for NONDETERMINISTIC and the P for POLYNOMIAL TIME: NP is 'nondeterministic polynomial time'. Reading it as 'non-polynomial' gets both the letters and the meaning wrong, and it leads to a cascade of false conclusions.

Why does the mix-up matter? Because 'non-polynomial' would suggest NP problems are by definition unsolvable in polynomial time, which would mean P and NP are obviously different and there would be no famous open problem at all. The truth is the opposite: every problem solvable in deterministic polynomial time is ALSO in NP (just ignore the certificate), so P is a subset of NP. Sorting, shortest paths, primality testing, all sit comfortably inside NP. NP is not a club of hard problems; it is the club of efficiently-verifiable problems, and the easy ones are members too.

The correct mental model is: NP = problems whose yes-answers have short, polynomial-time-checkable certificates, equivalently problems a nondeterministic machine solves in polynomial time. Whether NP contains problems that are genuinely harder than P (not solvable in polynomial time) is the unresolved P versus NP question. So when you hear 'this problem is NP-complete', it does NOT by itself mean 'proven to need exponential time'. It means 'among the hardest in NP', and the hardness is conditional on the widely-believed but unproven conjecture that P is not equal to NP.

Shortest-path is in P, and is also in NP: hand the verifier the path itself as a 'certificate' and it checks the length in polynomial time. So a problem can be both easy and in NP. 'NP' never meant 'hard'; it meant 'easy to check'.

NP = Nondeterministic Polynomial time. It includes all of P, so 'NP' is not a synonym for 'intractable'.

Saying 'NP-complete' is loose shorthand for 'hard assuming P is not equal to NP'. No NP-complete problem has ever been PROVEN to require super-polynomial time; that would settle P versus NP.

Also called
the NP naming mythNP misconceptionNP 命名迷思