Ein Problem p heißt NP -schwer, wenn sich jedes Problem r, das in NP liegt, in deterministisch polynomieller Zeit auf p reduzieren lässt. Ein Problem p heißt NP -vollständig, wenn es NP -schwer ist und selbst in NP liegt. Ein NP -schweres Problem ist also mindestens so schwer wie das schwerste Problem in NP.
Alle NP-vollständigen Probleme sind NP-schwer, aber nicht alle NP-schweren Probleme sind NP-vollständig.