Klasse NP

Die Klasse NP (nondeterministic polynomial time) ist die Vereinigung aller polynomiellen NTIME-Klassen:

NP=⋃k≥1NTIME(nk)

Alternative Definition ("Guess and Check"):
Eine Sprache L ist in NP, genau dann wenn es eine deterministische Turingmaschine V (Verifizierer) und ein Polynom p gibt, sodass für alle x∈Σ∗ gilt:

x∈L⇔∃c∈Σ∗ mit |c|≤p(|x|):V(x,c) akzeptiert

Hierbei nennt man c das Zertifikat (oder den Zeugen).