Pour prouver qu’un problème est NP-complet, il faut démontrer deux points.
Étapes de la preuve
1. Montrer que NP
Trouver :
- Un Certificat de verification de taille polynomiale
- Un algorithme de vérification en temps polynomial
2. Montrer que est NP-difficile
Choisir un problème déjà connu comme NP-complet et construire une Réduction polynomiale :
Problèmes de référence courants
Problème de base
- SAT (théorème de Cook, 1972)
Problèmes souvent utilisés comme source
Exemple : Prouver que Vertex Cover (VC) est NP-complet
Étape 1 : VC NP
- Certificat : Ensemble
- Vérification : Vérifier que et que toute arête a au moins une extrémité dans
Étape 2 : Stable maximum (MIS) VC
Transformation :
Preuve de correction : est un stable de taille ssi est une couverture de taille .
Conclusion
VC est NP-complet.
Propriétés utiles
Transitivité
Si et alors
Permet de chaîner les réductions.
Théorème
Si est NP-complet et où NP, alors est NP-complet.