In nondeterministic computational models, a program is allowed to make ‘guesses’ in the course of computation.
We use an equivalent definition via the notion of ‘certificate’:

Definition

is the set of languages for which there is a polynomial-time algorithm (algorithm takes 2 inputs and ) and a polynomial such that:

\large x \in L \iff \exists y \cdot (\lvert y \rvert \lt p(\lvert x \rvert)) \text{ and } A(x,y) \text{ accepts}

For a given $x \in L$, we may call such a witness $y$ the **certificate** of acceptance. The algorithm $A(x,y)$ is the verifier.

Example: Satisfiability again

SAT =

Example: Clique

A Clique is a set of nodes such that (any 2 nodes in has edge between them)

K-Clique =

For the graph above:

  • is in the set
  • is in the set
  • is not in the set

Another Definition

So, we have concluded that the problem (K-Clique) NP