La tâche de décider de l' appartenance est: pour toute entrée , décider si x ∈ L , c'est-à-dire calculer la fonction suivante:xx∈L
χL(x)={10x∈Lx∉L
D'un autre côté, la tâche de vérification de l' appartenance est la suivante: étant donné toute entrée et une preuve (ou témoin ) d'adhésion (proposée) , vérifiez rapidement si x ∈ L par cette preuve ¹.xx∈L
Par exemple, considérons la factorisation principale. Étant donné , calculez tous les facteurs premiers de n . En revanche, étant donné ( n , { i 1 , … , i k } ) , vérifier que ∏ k j = 1 i j = n . Quel est le plus simple?n∈Nn(n,{i1,…,ik})∏kj=1ij=n
Autre exemple: étant donné un graphique pondéré , décidez s'il existe un cercle de Hamilton (qui visite tous les nœuds) avec un poids au plus k . D'autre part, étant donné ( G , ( v 1 , … , v n ) ) , vérifier si le chemin v 1 → ⋯ → v n visite tous les nœuds exactement une fois et a un poids au plus k . Quel est le plus difficile?G=(V,E)k(G,(v1,…,vn))v1→⋯→vnk
- Vous direz donc "non" si mais la preuve est fausse. C'est bien, cependant, car nous considérons les machines non déterministes dans ce contexte; il est seulement important que nous puissions deviner la bonne preuve et la vérifier (rapidement).x∈L