Klasse NP

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

NP=k1NTIME(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:

xLcΣ mit |c|p(|x|):V(x,c) akzeptiert

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