Essential cookies keep your basket and sign-in working. Optional cookies help us understand visits and measure ads. Privacy details.
The most important open problem in computer science: can every quickly verifiable solution be quickly found?
AI-assisted explanation. It may contain errors; use a textbook or original source to check important details.
The “P vs NP problem” isn’t a single algebraic equation so much as a profound question about what kinds of problems computers can solve efficiently. Imagine a giant combination lock. If someone hands you the correct combination, you can check it quickly: try it once and the lock opens. But if you don’t know the combination, finding it by guessing might take an absurdly long time. That intuition is the heart of P vs NP: - P is the class of problems where we can find an answer quickly (in “polynomial time,” meaning the required steps grow like n, n², n³, etc., as input size n grows). - NP is the class of problems where, if someone gives us a proposed answer (a “certificate” or “witness”), we can verify it quickly (again in polynomial time). So the question “P vs NP” asks: > If a solution can be verified quickly, must there also be a way to find a solution quickly? In symbols, it’s commonly written as: - Is P = NP? If P = NP, then every puzzle whose solutions are easy to check would also be easy to solve—like always being able to find the combination as fast as you can verify it. If P ≠ NP, then there are problems where checking is easy but discovering the solution is inherently hard, no matter how clever we are. Many famous tasks live in NP: scheduling, route planning with constraints, solving Sudoku-like puzzles, and more. The “magic” of the problem is that it draws a bright line between two kinds of difficulty that feel different in everyday life: recognizing a correct answer versus creating one.
The story begins in the 1960s and early 1970s, when computer scientists were trying to understand why some problems seemed to yield to clever algorithms while others stubbornly resisted. - In the 1960s, researchers such as Jack Edmonds and Alan Cobham helped crystallize the idea that “efficiently solvable” should mean “solvable in polynomial time.” This was a philosophical leap: it gave a mathematical definition to the vague human idea of “feasible computation.” - In 1971, Stephen Cook published a breakthrough paper introducing the idea of NP-completeness and proving the Cook–Levin theorem: the Boolean satisfiability problem (SAT) is NP-complete. This meant SAT is, in a precise sense, among the “hardest” problems in NP. - In 1972, Richard Karp expanded Cook’s result by showing that many practical-looking problems (like Hamiltonian cycle, set cover, etc.) are also NP-complete via polynomial-time reductions. This created a unifying theory: a huge zoo of difficult problems were revealed to be different faces of the same underlying mystery. If anyone finds a polynomial-time algorithm for one NP-complete problem, they get polynomial-time algorithms for all of them—and P would equal NP. The importance of the question was formally recognized in 2000 when the Clay Mathematics Institute named P vs NP as one of the seven Millennium Prize Problems, offering $1,000,000 for a correct proof.
Pioneered by: There is no single “discoverer” of the P vs NP problem as a lone equation; it emerged from a sequence of foundational ideas. Key figures: - Jack Edmonds (mid-1960s): advocated polynomial time as the notion of efficient computation. - Alan Cobham (mid-1960s): helped formalize polynomial-time feasibility. - Stephen Cook (1971) and Leonid Levin (independently, 1973): founded NP-completeness theory (Cook–Levin theorem), which placed P vs NP at the center of complexity theory. Cook is most commonly credited for launching the modern P vs NP framework via NP-completeness.