Computing Library › Complexity & Computation
Complexity & Computation

The P versus NP Question

P versus NP asks whether every problem whose solution can be checked quickly can also be solved quickly.

The question in one line

Is P equal to NP? That is, if a problem's proposed solutions can be verified in polynomial time, can a solution also be found in polynomial time? It is the most famous open problem in computer science and one of the Clay Millennium Prize problems.

Why it matters

If P equals NP, then thousands of NP-complete problems, from scheduling to protein folding to circuit design, would have efficient algorithms. Much of modern cryptography, which relies on certain problems being hard, would collapse. If P does not equal NP, that hardness is permanent and can be built upon safely.

What most believe

The consensus is that P does not equal NP: verifying is genuinely easier than solving. Decades of effort have found no polynomial algorithm for any NP-complete problem, and there are strong intuitive reasons search should be harder than checking. But belief is not proof.

Why it resists proof

The role of NP-completeness

Because every NP problem reduces to any NP-complete one, the whole question hangs on a single thread: find a polynomial algorithm for one NP-complete problem and P equals NP; prove one impossible and P does not. This concentration is what makes SAT and its kin so studied.

Living without the answer

In practice, engineers assume P is not NP and design around it: they use approximation, heuristics, and restricted cases. The unresolved theory does not stop useful work; it just marks which problems deserve those workarounds rather than a hunt for an exact fast solver.