
V possède les propriétés P1 et P2 suivantes :
Propriété P1 :
si I & YCLIQUE , il existe un certificat T tel que V répond 
oui pour la donnée (I,T) ;
si I * YCLIQUE,  V répond non pour toute donnée (I,T) 
Propriété P2 :
V est de complexité polynomiale en n
L’existence :
- de certificats de longueur polynomiale en n ;
- d’un algorithme de vérification possédant les 
propriétés P1 et P2 ;
définit l’appartenance de CLIQUE à la classe NP.
Plus généralement, soit ! un problème de décision.
S’il existe une fonction « certificats » ) telle que :
- pour tout I dans D!, )(I) est l’ensemble des certificats de I ;
- la longueur d’un certificat est polynomiale en l!(I) .
S’il existe un algorithme de vérification V, dont les 
inputs sont les couples (I,c) où c & )(I), tel que :
- si I & Y! , il existe un certificat c & )(I) tel que V répond 
oui pour la donnée (I,c) ;
- si I * Y!,  V répond non pour toute donnée (I,c) ,
- V est de complexité polynomiale en l!(I).
Alors ! est dans la classe NP .
Le couple (),V) est appelé « algorithme non déterministe 
polynomial » résolvant  !. 
(N signifie non déterministe, P signifie polynomial)
Autres exemples :
Les problèmes PARTITION et SAT sont aussi dans NP.  
Propriétés de NP
•P$NP
À (),V)  est associé un polynôme p tel que:
pour tout énoncé I de Y! de longueur n,  
il existe un certificat c de )(I) tel que : L(c) + +V(I,c) < p(n)  où :
1. L(c) est la longueur de c ;
2. +V(I,c) est le nombre d’opérations exécutées par V pour la 
donnée (I,c).                            
On peut utiliser l"’algorithme polynomial A qui résout !
comme algorithme de vérification V et un ensemble vide 
de certificats pour chaque énoncé.  
•Si ! &NP, ! est résolu par un algorithme de complexité
O(2q(n)) où q est un polynôme. 
Soit (),V) un algorithme non déterministe polynomial pour !.
Il en résulte que:
1) seuls les certificats de longueur ! p(n) dans )(I) suffisent pour
    prouver que I & Y! (on note G(n) leur nombre); 
2) pour I et c & )(I) fixés, il suffit d"’exécuter les p(n) premières
    opérations de V.
Fonction A(V,I) % I donnée de !, V algorithme de vérification%
Tantque # certificats examinés ! G(n) faire
        Choisir un nouveau certificat c de I ;
        Exécuter V(I,c) jusqu’au 1er événement E1 ou E2 :
        ( E1 : V répond «"oui"» ; E2 : # opérations exécutées par V > p(n));
         Si E1 alors Retourner (oui) 
fintantque;
Retourner (non).
Si Card  #=a, alors A examine au plus O(a p(n)) certificats et 
exécute pour chacun d"’eux au plus p(n) steps. 
D"’où la complexité de A: O(p(n) a p(n))=O(2 q(n) ).