Réduction polynomiale version du 14 novembre 2016 35
5 — RÉDUCTION POLYNOMIALE
Pour classer les problèmes selon leur complexité, on exploite la méthode, très traditionnelle en
mathématiques, qui consiste à résoudre un problème en se ramenant à un autre problème, déjà
résolu.
§5.1 - Réduction d’un problème à un autre.
5.1 – Définitions. Soient D= (I, I+)et E= (J, J+)deux problèmes de décision.
?Réduire DàE, c’est transformer chaque instance ide Den une instance jde E, de sorte
que la réponse pour i(au problème D) est la même que la réponse pour j(au problème E).
Ainsi, une réduction de DàEest une application f:IJqui préserve la réponse i.e.
telle que, pour tout iI, on ait iI+ssi f(i)J+. (Une telle application n’est pas
nécessairement injective, et en général pas surjective.)
?Une réduction fde DàEest récursive si elle est calculable i.e. s’il existe un algorithme
calculant f. S’il y a une réduction récursive de DàE, on dit que Dse réduit récursivement
àE, et on note D6RE.
?Une réduction est dite polynomiale si elle est calculable en temps polynomial i.e. s’il existe
un algorithme qui calcule fet qui est de complexité polynomiale (en la taille des instances
de Dqu’on lui soumet).
S’il existe une réduction polynomiale de DàE, on dit que Dse réduit polynomialement
àE, et on note D6PE.
5.2 Exemple. – Au chapitre précédent, nous avons vu comment associer, à un ensemble de clauses
de degré 2, un graphe orienté, de telle sorte que l’ensemble de clauses est satisfaisable ssi le graphe
orienté ne présente pas de circuit entre des sommets particuliers bien choisis. C’était une réduction
du problème 2-SAT au problème suivant :
NO CIRC-PAIRES Entrées : nIN,G= (S, A)graphe orienté d’ordre 2nparitionné en n
paires, S={a1;b1}t{a2;b2} t ··· t {an;bn}.
Question : A-t-on, pour chaque paire, aiet bidans des composantes fortement
connexes distinctes (i.e. pas de circuit passant par aiet bi) ?
Cette réduction est calculable algorithmiquement (la méthode pour construire GFvaut pour toute
instance F) et ceci est effectué en temps polynomial en la taille de l’entrée (qu’on peut mesurer
par n, le nombre de variables de F) : le graphe GFa2nsommets et, au plus, 4n(n1) arcs, dont
on peut donc établir la liste en temps O(n2log n).
5.3 Remarques. – Une réduction de DàEest donc une application f, et elle est dite polynomiale
lorsqu’elle est calculable par un algorithme Ade complexité polynomiale en la taille des données
soumises, i.e. en la taille des instances de D.
Cet algorithme n’est pas, a priori, un simple algorithme de décision : la réponse qu’il doit fournir
n’est pas booléenne et son écriture a un coût en temps et en espace.
Lemme. Si fest une réduction polynomiale du problème Dau problème E, alors la
taille des réponses (images, instances de E) fournies par fest bornée par un
polynome en la taille des entrées (instances de D).
Démonstration. Lorsqu’on dit que l’algorithme Aest de complexité polynomiale, cela signifie qu’il y a un polynôme
Ptel que, pour tout instance ide D, le temps de calcul de Apour l’instance iest au plus P(taille(i)).
Et comme le temps de calcul de Ainclut le temps d’écriture de la réponse, qui est f(i), une instance de E, on peut
conclure que taille(f(i)) 6P(taille(i)).
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 à
(xsxt)(¬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 {xsxt|(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(xsxt)=1et v(¬xs∨ ¬xt)=1.
Si ΣGest satisfait par une affectation vde valeurs de vérité aux variables (xs)sG. 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(xsxt) = 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 EPalors DP.
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 : iI
(1) Transformer ien f(i), grâce à A
(2) Tester si f(i)est une instance positive de E, grâce à B.
Réduction polynomiale version du 14 novembre 2016 37
En effet, Crépond « oui »pour issi Brépond « oui »pour f(i), mais fest une réduction de DàE, donc ceci se
produit ssi iest une instance positive de D.
Si, en plus, Aet Bsont des algorithmes polynomiaux, i.e. on a deux entiers det etels que :
(A) pour toute instance ide D, le temps de calcul de Apour l’entrée iest majoré : tA(i)6(taille(i))d,
(B) pour toute instance jde E, le temps de calcul de Bpour l’entrée jest majoré : tB(j)6taille(j)e.
Alors le temps de calcul de Cpour une instance ide Dest tC(i) = tA(i) + tB(f(i)). Il est donc majoré par
taille(i)d+taille(f(i))e. Cette borne n’est pas exprimée en fonction de la taille de i. Mais, selon le lemme 5.3,
taille(f(i)) 6taille(i)d. Et donc tC(i)6taille(i)d+ (taille(i)d)e, qui est un polynôme en taille(i).
5.6 Exemples.
– Le problème PARTAGE se réduit polynomialement au problème SAC À DOS(voir ci-dessous)
et donc : si SAC À DOSPalors PARTAGE P; si PARTAGE /Palors SAC À DOS/P.
– Cas particulier : si Dest un sous-problème de Ealors D6PE. (exercice)
5.7 Remarques. – La relation 6Psignale une difficulté croissante : D6PEindique qu’il est plus
facile de résoudre Dque E.
– L’idée de la réduction polynomiale, comme on le voit dans la démonstration ci-dessus, est de
fabriquer un algorithme efficace pour résoudre Den utilisant un algorithme efficace connu qui
résout Eet l’algorithme qui calcule la réduction de DàE.
– En théorie de la calculabilité, on utilise souvent la propriété : si D6REet Dest insoluble par
algorithme alors Eest insoluble par algorithme.
5.8 Exemple. – m-MAR 6PSAT
On a mensembles, et Cun sous-ensemble de leur produit cartésien. On veut une instance de SAT qui sera satisfaisable
ssi Ccontient un appariement maximal.
IPour chaque élément cde C(cest un m-uplet), on se donne une variable propositionnelle xc.(on sélectionnera
dans Cles éléments dont la variable correspondante aura reçu la valeur « vrai ».)
Ensuite, pour chaque élément ad’un des mensembles de coordonnées, on considère tous les cCdans lesquels a
apparaît.
S’il n’y en a aucun, Cne contient pas d’appariement maximal et on pose Σ(a) = {xc;¬xc}, ensemble de clauses de
degré 1 qui n’est pas satisfaisable (c, n’importe quel élément de C).
Sinon, on les appelle c1,...,ck. Et alors Σ(a)est composé de la formule xc1... xck(qui est une clause et qui
garantira qu’au moins un des cicontenant asera choisi) et des formules ¬xci∨ ¬xcjpour 16i < j 6k(clauses de
degré 2 qui garantiront qu’au plus un des cicontenant asera choisi).
Enfin Σest la réunion de tous les Σ(a)aest un élément d’un des mensembles de coordonnées.
IIl faut vérifier : 1. qu’il s’agit bien d’une instance de SAT,
2. que Ccontient un appariement maximal ssi Σest satisfaisable,
3. que la calcul de Σs’effectue en temps polynomial en la taille des données.
5.9 Exemple. – PARTAGE 6PSAC À DOS
ISi (n, a1,...,an)est une instance de PARTAGE, on pose T=P16i6nai.
On a alors : on peut partager la famille a1,...anen deux sous-familles de même somme ssi on peut trouver
une sous-famille de a1,...,ande somme égale à T/2. (exercice)
Dans le cas où Test impair, (n, a1,...,an)est bien sûr une instance négative de PARTAGE et on lui associe
n’importe quelle instance négative de SAC À DOS.
Dans le cas où Test pair, (n, a1,...,an)est une instance positive de PARTAGE ssi (n, a1,...,an, T /2) est
une instance positive de SAC À DOS. On associe donc la seconde à la première.
IOn en déduit que l’application f: (n, a1,...,an)7→ (n, a1,...,an, T/2) si Test pair
(1,1,2) si Timpair
est une réduction
polynomiale de PARTAGE à SAC À DOS. On a vérifié les deux premiers points mais il ne faut pas oublier de
préciser que le calcul de f, qui consiste principalement à calculer T, s’effectue en temps polynomial en la taille de
(n, a1,...,an).
§5.3 - Un début de hiérarchie de la difficulté des problèmes.
5.10 Remarques – Dans le cas de 2-COL et 2-SAT, l’existence d’une réduction polynomiale
38 Complexité Algorithmique – B. Mariou – Automne 2016 version du 14 novembre 2016
n’est pas utilisée pour fabriquer un algorithme efficace résolvant 2-COL car on en connaît déjà un
(chapitre précédent). Elle a cependant un intérêt si l’on considère qu’elle permet de comparer la
difficulté des problèmes.
– La proposition qui suit montre qu’entre deux problèmes tous les deux dans la classe P, la
comparaison de la difficulté, via la relation de réduction polynomiale est très simple : ils sont
de difficulté est similaire ... à condition que les problèmes ne soient pas des cas limites, dont la
résolution est triviale.
– Ces problèmes “trop” simples sont ceux qui ont des réponses toutes positives (I+=I) ou bien
toutes négatives (I+=), indépendamment des instances. On les appelle des problèmes triviaux.
Chacun d’eux est résoluble en un temps très court puisqu’il n’est pas nécessaire de connaître (et
donc de manipuler) l’instance pour fournir la réponse.
Exemple. Le problème POSITIF Entrée : aIN
Question : a>0?
n’a que des réponses positives.
– Tous les autres, les problèmes non triviaux, ont donc au moins une instance positive et une
instance négative. Et le rôle d’un algorithme qui résout ce genre de problème est de trier entre les
instances positives et les instances négatives.
5.11 – Proposition 2. Soit Eun problème de décision non trivial et soit Dun problème
de décision dans P. Alors D6PE.
Démonstration. On choisit deux instances de E, une positive j1et une négative j0(Eest non trivial).
Pour une instance ide D, grâce à un algorithme polynomial résolvant D, on décide si iest une instance positive ou
négative de D. Dans le premier cas, on lui associe j1et sinon, j0. Cette application est une réduction de DàEet
elle se calcule grâce à un algorithme polynomial.
5.12 Remarques. – Le procédé utilisé dans la démonstration crée une réduction artificielle fde
DàE. En effet, on sait qu’il existe un algorithme efficace Arésolvant D. Il n’est donc pas naturel
de passer par une réduction de Dà un autre problème.
D’ailleurs, selon la démonstration, fse calcule en utilisant A; alors qu’habituellement c’est la
réduction qui est un outil pour fabriquer un algorithme (efficace) qui résout le problème.
Autre exemple de réduction artificielle. Soit D= (I, I+)un problème quelconque.
L’application f:iI+7→ 1
iI\I+7→ 0
est une réduction de Dà IMPAIR.
Mais elle est artificielle puisque, pour calculer f(i), il faut savoir si iest instance positive ou négative de D.
Ainsi, tout algorithme qui résout D, calcule aussi f. Cependant, rien n’indique fest calculable par un algorithme
de complexité polynomiale.
Et même : fcalculable par un algorithme efficace ssi Dest dans P(propositions 1 et 2).
– La proposition 2 nous indique, par exemple, que le problème 2-SAT se réduit polynomialement
au problème 2-COL ou 3-COL ou PARTAGE, mais une réduction pratique (i.e. qui transformerait
vraiment les ensembles de clauses de degré 2 en graphes à colorier en 2 ou 3 couleurs, ou en suite
de nombres à partager) n’est pas simple à imaginer.
5.13 De la même façon, on démontre le résultat suivant.
Lemme. |Si Dtest trivial et En’est pas trivial alors Dt6PEet E66PDt.
Démonstration. Cas où Dtn’a que des instances positives.
Considérons j0instance négative de Eet j1instance positive de E.
L’application qui a chaque instance de Dtassocie j1, est une réduction de DtàE. De plus, elle est constante donc
calculable par un algorithme de complexité polynomiale.
Inversement, toute application de l’ensemble des instances de Edans l’ensemble des instances de Dtdoit envoyer
j0, instance négative de Esur une instance positive de Dt, et n’est donc pas une réduction de EàDt.
On peut ajouter pour compléter que si D0,E0sont triviaux à instances toutes négatives, et D1,
E1sont triviaux à instances toutes positives, alors D0et E0se réduisent polynomialement l’un à
l’autre, de même D1et E1, mais D066PD1et D166D0(démonstrations analogues).
Réduction polynomiale version du 14 novembre 2016 39
5.14 Problèmes de difficulté équivalente. –
Notation. Si D6PEet E6PD, on note DPE, qui se lit Det Ese réduisent polynomia-
lement l’un à l’autre”.
?La relation 6Pest réflexive : D6PDpour tout D(la fonction identité est une réd. polynomiale !) ;
transitive : si D6PEet E6PFalors D6PF(composer les réductions) ;
pas symétrique : on peut avoir D6PEet E66D;
pas antisymétrique : on peut avoir D6=Eet D6PEet E6PD.
?La relation Pest une relation d’équivalence (réflexive car 6Pest réflexive, symétrique par
construction, et transitive car 6Pest transitive). Une classe, pour cette relation, est une
famille de problèmes qui se réduisent polynomialement les uns aux autres, et sont donc de
difficulté équivalente.
?La relation 6Pinduit une relation sur les classes d’équivalence : si αet βsont deux classes,
on dit que αβssi pour un (tout) Dαet un (tous) Eβ, on a D6PE. La relation
est réflexive, transitive et antisymétrique, i.e. une relation d’ordre (sur les classes modulo
). Mais attention, cet ordre n’est pas nécessairement total.
?Ces deux relations, 6Pet Psont utiles pour classifier les problèmes selon leur complexité.
Une classe modulo Pest un niveau de difficulté, et 6Pétablit des comparaison entre ces
niveaux.
5.15 – Corollaire. L’ensemble P=P\{problèmes triviaux}des problèmes polynomiaux non tri-
viaux est une classe d’équivalence modulo P.
Démonstration. Si D, E Palors ils sont polynomiaux et non triviaux, et d’après la proposition 2, D6PEet
E6PD. Donc, dans P, tous les problèmes se réduisent polynomialement les uns aux autres, ils sont donc tous
dans la même classe modulo P. Autrement dit Pest inclus dans une unique P-classe.
Réciproquement, si DPet DPE, alors déjà E6PDavec DP, donc EP(proposition 1). Ensuite
D6PEavec Dnon trivial, donc Eest non trivial (lemme ci-dessus). Finalement EP. Donc, Pcontient la
classe de Dmodulo P.
En conclusion, si on considère D0P(car Pn’est pas vide, prendre par exemple D0=PAIR), et sa classe modulo
P, notée α, on a vu d’abord que Pα, et ensuite on a vu que αP. Par conséquent P=α.
5.16 Remarques. – Parmi les classes d’équivalence modulo P, si on ne tient pas compte des
problèmes triviaux, Pest le plus petit élément pour 6PAppliquer la proposition 2 ci-dessus.
5.17 Exemple. – PARTAGE PSAC À DOS.
Démonstration. Il reste à voir que SAC À DOS 6PPARTAGE.
On suppose qu’on sait résoudre PARTAGE, comment s’en servir pour résoudre SAC À DOS?
exemple — SAC À DOS6PPARTAGE
Le travail est tout différent. On a (n, a1,...,an, S)instance de SAC À DOS. Posons encore T=P16i6nai.
Parvenir à obtenir la somme Savec une sous-famille de a1,...,an, c’est parvenir à obtenir TSavec le reste
des ai. La différence entre Set TSest b=|T2S|(qui vaut T2Sou 2STselon que TS>Sou pas).
Si on obtient Savec une sous-famille de a1,...,an, on obtient TSavec la sous-famille complément, et il suffit
d’ajouter bà une des ces deux sous familles (selon que TS>Sou pas) pour obtenir un partage de a1,...,an, b
en deux sous-familles de même somme.
Réciproquement, un partage de a1,...,an, b en deux sous-familles de même somme fournit, si on supprime b,
une sous-famille de a1,...,ande somme Sou TSet la sous-famille complément est de somme TSou S.
Ainsi, g: (n, a1,...,an, S)7→ (n+1, a1,...,an, b =|T2S|)est une réduction de SAC À DOSà6PPARTAGE.
Il reste à vérifier que c’est une réduction polynomiale.
§5.4 - Exercices.
Exercice 36 Montrez que si D6PEalors D6PE.
Exercice 37 Montrez que la relation 6Pest réflexive et transitive, mais pas antisymétrique.
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !