36 Complexité Algorithmique – B. Mariou – Automne 2016 version du 14 novembre 2016
– Si D6PEalors D6RE(toute réduction polynomiale est récursive).
– Utilité de ces notions.
En pratique, en mathématiques : si on sait résoudre Eet réduire DàEalors on sait résoudre D.
En théorie de la calculabilité : si Eest résoluble par algorithme (on peut dire aussi récursif, ou
décidable) et D6REalors Dest résoluble par algorithme.
En théorie de la complexité : si Eest résoluble par un algorithme polynomial et D6PEalors D
est résoluble par algorithme polynomial (voir proposition ci-dessous).
5.4 –Exemple. – 2-COL 6P2-SAT (Voir aussi l’exercice 12 page 12.)
On a un graphe G= (S, A), à colorier en deux couleurs. On lui associe une famille de clauses de degré 2.
IPour chaque sommet sdu graphe, on se donne une variable propositionnelle xs. (La valeur de vérité de xs
correspondra à la couleur de s.)
Pour chaque arête (s, t)du graphe, on considère la formule xs↔ ¬xt, qui n’est pas une clause, mais qui équivaut à
(xs∨xt)∧(¬xt∨¬xs). (Et qui, si elle est vraie, assurera que set tn’ont pas la même couleur.) L’ensemble ΣGde
clauses de degré 2 associé à Gest donc {xs∨xt|(s, t)∈A} ∪ {¬xs∨ ¬xt|(s, t)∈A}.
IIl faut alors vérifier : 1. qu’il s’agit bien d’une instance de 2-SAT,
2. que Gest 2-coloriable ssi ΣGest satisfaisable,
3. que la calcul de ΣGs’effectue en temps polynomial en la taille de G.
Et on aura alors constaté que l’application G7→ ΣGest une réduction polynomiale de 2-COL à 2-SAT (bien définie
d’après 1, réduction d’après 2, calculable car on a donné une méthode générique pour calculer ΣGà partir de G
quelconque, et calculable en temps polynomial d’après 3).
IVérification de 1. ΣGest constitué uniquement de clauses de degré 2.
Vérification de 3. Pour écrire une description de ΣG, on doit lire les données décrivant le graphe G, et, pour chaque
arête, écrire deux clauses de degré 2. Si Gansommets, on lit, au plus, de l’ordre de n2log nsymboles et on écrit,
au plus, de l’ordre de 2n2log nsymboles.
Vérification de 2. Si Gest coloriable en deux couleurs, vert et rouge. On définit une affectation de valeurs de vérité
pour les variables qui rend vraies toutes les clauses de ΣG: pour tout sommet s, on pose v(xs)=1si sest vert,
et v(xs)=0si sest rouge. On a alors : si (s, t)est une arête, les sommets set tsont de couleurs différentes, donc
v(xs)6=v(xt)donc v(xs∨xt)=1et v(¬xs∨ ¬xt)=1.
Si ΣGest satisfait par une affectation vde valeurs de vérité aux variables (xs)s∈G. On construit une coloration du
graphe Gen deux couleurs : pour tout sommet s, on colorie sen vert si v(xs) = 1 et en rouge si v(xs) = 0. Alors,
pour toute arête (s, t), puisque v(xs∨xt) = v(¬xs∨ ¬xt) = 1, on a v(xs)6=v(xt)et donc set tne sont pas de la
même couleur.
– Cette réduction ne peut pas être adaptée en dimension 3 ou plus pour obtenir une réduction,
par exemple, de 3-COL à 3-SAT (2 couleurs correspondent à 2 valeurs de vérité pour la variable
propositionnelle associée, mais à quoi correspondraient 3 couleurs ?).
– Dans cet exemple, on utilise le problème 2-SAT, et ses instances, comme des outils. Les données
sont les instances de 2-COL, et on fabrique des instances particulières de 2-SAT, dotées ont des
propriétés agréables.
Une réduction “réciproque” de 2-SAT à 2-COL ne peut pas être obtenue simplement à partir de
celle que l’on vient de voir. Ce serait une application qui devrait considérer n’importe quel ensemble
de clauses de degré 2, et lui associer un graphe non orienté particulier, aux propriétés agréables.
§5.2 - Réduction polynomiale et classe P.
5.5 – Proposition 1. Soient Det Edeux problèmes de décision tels que D6PE.
Si E∈Palors D∈P.
Dit autrement : si D /∈Palors E /∈P.
Idée de la démonstration. La seconde formulation est la contraposée de la première. Pour la première, résoudre D
en utilisant l’algorithme polynomial qui réduit DàEet l’algorithme polynomial qui résout E.
Détails. Soient Aun algorithme qui calcule une réduction de DàEet Bun algorithme qui résout E.
Alors l’algorithme Crésout le problème D:CDonnée : i∈I
(1) Transformer ien f(i), grâce à A
(2) Tester si f(i)est une instance positive de E, grâce à B.