Quelques problèmes NP-complets
Quelques problèmes
NP-complets
Maintenant que nous connaissons la NP-complétude d’au moins un problème (SAT), nous allons montrer qu’un très grand nombre de problèmes sont NP-complets.
Le livre [Garey and Johnson, 1979] en recensait plus de 300 en 1979. Nous n’avons pas l’ambition d’en présenter autant, mais de décrire quelques problèmes NP-complets célèbres, de façon à montrer quelques preuves de NP-complétude.
12.1
Quelques problèmes NP-complets
12.1.1
Autour de SAT
Définition 12.1 (3-SAT)
Donnée: Un ensemble de variables {x1 , · · · , xn } et une formule F = C1 ∧C2 · · ·∧
C avec Ci = yi,1 ∨ yi,2 ∨ yi,3 , où pour tout i, j, yi,j est soit xk , soit ¬xk pour l’un des xk .
Réponse: Décider si F est satisfiable : c’est-à-dire décider s’il existe x1 , · · · , xn ∈
{0, 1}n tel que F s’évalue en vraie pour cette valeur de ses variables x1 , · · · , xn .
Théorème 12.1 Le problème 3-SAT est NP-complet.
Démonstration : Notons tout d’abord que 3 − SAT est bien dans NP. En effet, la donnée d’une affectation de valeurs de vérité aux variables constitue un certificat vérifiable en temps polynomial.
On va réduire SAT à 3 − SAT. Soit F une formule SAT. Soit C une clause de F , par exemple C = x ∨ y ∨ z ∨ u ∨ v ∨ w ∨ t. On introduit de nouvelles variables a, b, c, d associées à cette clause, et on remplace C par la formule
(x ∨ y ∨ a) ∧ (¬a ∨ z ∨ b) ∧ (¬b ∨ u ∨ c) ∧ (¬c ∨ v ∨ d) ∧ (¬d ∨ w ∨ t).
Il est facile de vérifier qu’une assignation de x, y, z peut être complétée par une assignation de a, b, c, d de façon à rendre cette formule vraie si et seulement si C est vraie.
1
2
CHAPITRE 12. QUELQUES PROBLÈMES NP-COMPLETS
En appliquant cette construction à toutes les clauses de F et en prenant la conjonction des formules ainsi produites, on obtient ainsi une formule 3 − SAT dont la satisfaction de F équivalente à celle de F .
Le temps de calcul se réduit à écrire les clauses, dont la longueur est polynomiale.
Par