P ≟ NP

The limits of efficient computation.

Last updated: 2025-10-25

P vs NP asks whether every problem whose solution can be verified quickly can also be solved quickly. If P=NP, search collapses to verification; if P≠NP, there are inherent barriers to efficient algorithms.

The stakes range from cryptography and logistics to AI and scientific discovery.

Formal statement

Let Σ be an alphabet. A decision problem L ⊆ Σ* is in P if there exists a deterministic Turing machine that decides membership in L in time polynomial in the input size. L is in NP if there exists a polynomial-time verifier V(x,w) and a polynomial p such that x∈L iff there is a witness w with |w|≤p(|x|) and V accepts.

P vs NP asks: is P = NP?

P=?NPP \stackrel{?}{=} NP
  VP,  p  :  xL    w, wp(x)  V(x,w)=1\exists\; V\in\mathrm{P},\; p\;:\; x\in L \iff \exists w,\ |w|\le p(|x|)\ \land\ V(x,w)=1
Complexity class diagram
Landscape of P, NP, coNP, and NP-complete reductions.

Why it matters in the real world

Many real tasks reduce to NP-complete cores (SAT, Max-Cut, TSP). Today we lean on heuristics and relaxations; P=NP would upend that. Conversely, a proof that P≠NP would formalize the computational limits behind secure communication and resource allocation.

Further reading