NP-Completeness
An NP-complete problem is one that can be solved in O(nk) on a nondeterministic machine, and for which it can be shown that every problem in NP can be reduced to the NP-complete problem using a polynomial time transformation.
Such proofs rely on the definition of Turing Machine.
Concept of NP-completeness is important because:
- Showing a polynomial deterministic solution for any NP-complete problem means P = NP.
- Proving something is NP-complete (or NP-hard) means you’re not likely to find a polynomial algorithm.