Computing Library › Glossary
Glossary

NP-Completeness

A class of problems believed to have no efficient exact algorithm, all reducible to one another.

Definition

NP-completeness describes the hardest problems in NP, the class of problems whose solutions can be verified quickly. A problem is NP-complete if it is in NP and every NP problem reduces to it. No polynomial-time algorithm is known for any of them.

In practice, NP-hardness is a starting point, not a dead end: real instances often have structure that solvers exploit, and modern satisfiability and integer-programming tools routinely dispatch problems that are hard in the worst case. Knowing a problem is NP-hard redirects effort toward these pragmatic tools.

The P versus NP question, whether every quickly checkable problem is also quickly solvable, is among the deepest open problems in mathematics, and most researchers expect the answer is no. Practically, an NP-hardness result is a signal to stop seeking a fast exact algorithm and instead use approximation, heuristics, or solvers that exploit real-instance structure, which routinely dispatch problems that are hopeless in the worst case.

Implications

Why it matters

Recognizing that a problem is NP-complete redirects effort from seeking an exact fast algorithm, which likely does not exist, toward approximations, heuristics, or exploiting special structure. It is one of the most practically important ideas in computer science.

Fusion connection

Many engineering optimization problems are NP-hard, so Kronos relies on strong heuristics and problem structure rather than guaranteed optimal solutions when laying out complex systems.