(rev. May 5, 2017)


The Class NP

The Class NP is the set of all decision problems for which there exists an efficient certifier.

What is an Efficient Certifier?

When we say that a decision problem X has an efficient certifier, it means that there is a positive integer k and a polynomial-time decision algorithm "CheckX" that inputs pairs of strings. Furthermore, CheckX has the property that if s is a string, then

s is in X

if and only if

There exists a string t of length ≤ |s|k such that
CheckX outputs "yes" when (s,t) is its input.


Problems like "3-Sat" and "Hamiltonian Cycle Existence" are examples of NP problems. Given a specific problem instance s and a proposed solution t, we can determine if the solution t is correct by utilizing a polynomial-time checking algorithm.