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) ).