COMPLEXITE DES PROBLEMES COMBINATOIRES Master d’Informatique : spécialité IAD P. Chrétienne : Prof. Université Paris 6
PLAN DU COURS Problèmes de décision. Algorithme déterministe. La classe P. Algorithme non déterministe. La classe NP. Propriétés de la classe NP. Réduction polynomiale dans NP. Problème NP-complet. SAT est NP-complet Quelques réductions.
PLAN DU COURS (suite) Sous-problèmes et complexité Problèmes numériques. Algorithme pseudo- polynomial. Problème NP-complet au sens fort. Réduction pseudo-polynomiale. Problèmes de recherche et d ’optimisation. Réduction de Turing. Problème NP-difficile
Problèmes de décision Un problème de décision est défini par: un nom, des paramètres génériques, une question. PARTITION A={a 1,….,a n } s :A Existe t’il B A tel que s(B)=s(A/B)? CLIQUE Graphe G=(S,A) 1<k<n=Card(S) Existe t’il une clique d’ordre k dans G? SAT n variables logiques p clauses* Existe t’il une fonction de vérité telle que toutes les clauses soient vraies? * une clause est un "ou" logique sur une partie des 2n littéraux associés aux variables. Les 2 littéraux de la variable x sont x et x.
Notations Problème Sous-ensemble des énoncés à réponse « oui »: Y , Si l’on code les énoncés à partir - d’un alphabet ∑, - d’une fonction codage « compacte » : les nombres sont codés dans une base supérieure à 1 (par exemple en base 2). Ensemble des énoncés D (un énoncé est une instanciation des paramètres de ) Chaque énoncé I de D est alors un mot c(I) sur ∑.
Fonction longueur l d'un problème . l (I) est un entier. Il existe 2 fonctions polynômes enti è res P(n) et Q(n) telles que : pour tout énoncé I de : |c(I)| ≤ P(l (I)) et l (I) ≤ Q(|c(I)|) On dit que les fonctions |c| et l sont polynomialement liées. En pratique : Calcul d'une fonction codage compacte c; Recherche d'une fonction l aussi simple que possible polynomialement liée à |c|.
Exemple : SAT ∑ = {a,0,1,;} Si n variables logiques, une clause est codée par un élément de ∑ n. si n=5, le mot a001a est le code de la clause { x 2, x 3,x 4 } Le nombre de caractères pour coder p clauses (séparées par un ;) est en O(np). L SAT (I)=np est donc une fonction longueur possible pour SAT.
Exemple : CLIQUE Soit I=(G,k) un énoncé de CLIQUE. Si le graphe G a n sommets, G peut être cod é sur ∑ = {0,1,;} par sa matrice d'adjacence M=(m ij ) o ù m ij =1 si {i,j} est une arête de G (=0 sinon). Le nombre de caractères pour coder I est en O(n 2 ). Une fonction longueur possible pour CLIQUE est donc L CLIQUE (I)=n Il faut O(log 2 (n)) caractères pour coder k. Le mot 0110;1010;1101;0010 est le code du graphe suivant :
Exemple : PARTITION Si A possède n éléments, chaque entier s(a) est codé sur ∑ = {0,1,;} par sa repr é sentation binaire et les n codes sont s é par é s par n-1 ;. Si n=4, le mot 110;1010;1101;10 est le code de l'énoncé : A = {a 1,a 2,a 3,a 4 } s(a 1 ) = 6, s(a 2 )=10, s(a 3 )=13, s(a 4 )=2. Le nombre de caractères pour coder un énoncé est en O(n log 2 s max ) où s max = Max s(a i ). Une fonction longueur possible pour PARTITION est donc L PARTITION (I)=n log 2 s max
UC une unité centrale UC Algorithme résolvant Machine de Turing déterministe: 1) est un alphabet qui ne contient pas le caractère "blanc" ; 2) est un alphabet incluant et le caractère "blanc"; 3)Q={q 0,q Y,q N,….,q C } est un ensemble fini (états de l’UC) ; 4) q 0 est l’état initial et q Y,q N sont 2 états distincts dits terminaux ; 5) : Q {q Y,q N } Q {-1,+1} est la fonction de transition. Programme P = (Q,q 0,q Y,q N, , , ): L/E une tête de lecture-écriture L/E Bande une bande doublement infinie B
Exécution (notée P(x)) du programme P pour la donnée x. Etat initial global: Exécution de P pour la donnée x: c est le caractère contenu dans la cellule b pointée par LE; et (q,c)=(q',c',d') Tantque q {q Y,q N } faire B[b]:= c'; q:= q'; b:= b+d'; Remarque : le nombre d'étapes de calcul de P(x) peut être infini. q0q0 01 x -22
A=(Q,q 0,q Y,q N, , , ) est un algorithme qui résout si 1) est l'alphabet utilisé pour coder les énoncés de ; 2)pour tout mot x sur ∑, A(x) s’arrête (terminaison); 3)x Y( ) A(x) s’arrête dans l'état q Y. (validité) Complexité de l'algorithme A: Soit A (x) le nombre de steps de calcul exécutés par A(x). La fonction complexité T A : N N est définie par: T A (n)=Max{ A (x) L (x)=n} (Rappel : L (x) est le nombre de caractères du mot x) Si T A (n)=O(p(n)) où p est un polynôme, alors A est un algorithme polynomial. Notation : P est la classe des problèmes de décision résolus par un algorithme polynomial.
Soit un problème de décision. Soit V=(Q,q 0,q Y,q N, , , ) un programme tel que : a) est l'alphabet utilisé pour coder ; b) inclut et le caractère spécial "blanc" (non dans ); c)Q est un ensemble fini d'états ; d)q 0 est l'état initial ; e)q Y,q N sont 2 états terminaux distincts ; f) est une fonction de transition de type : Q {q Y,q N } Q {-1,+1}. Algorithme non déterministe polynomial résolvant
Calcul de V pour la donnée (x,y) où : x * est de longueur n et y * est de longueur k : Le calcul V(x,y) est dit "réussi" s’il s’arrête dans l ’état q Y. 1)le mot x est écrit dans les cellules 0,1,..., n-1 ; 2)le mot y est écrit dans les cellules -k,-k+1,...,-1 ; 3)les autres cellules contiennent le caractère "blanc"; 4)V est exécuté à partir de l’état initial q q0q0 x y Etat initial du calcul V(x,y)
La classe NP est l’ensemble des problèmes de décision résolus par un algorithme non déterministe polynomial. V est un algorithme non déterministe polynomial qui résout s'il existe un polynôme p(n) tel que : 1)pour tout code x de longueur n d'un énoncé à réponse "oui", il existe un mot y de longueur au plus p(n) tel que V(x,y) est réussi après au plus p(n) steps de calcul ; 2)pour tout mot x sur qui n'est pas le code d'un énoncé à réponse "oui", il n'existe aucun mot y * pour lequel V(x,y) est réussi.
Comment montrer qu'un problème de décision est dans NP ? 2) Définition de l'algorithme de vérification. On construit un algorithme de vérification V, dont les données sont les couples (I,c) où c C(I), tel que : - si I Y , il existe un certificat c 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). 1) Définition des certificats. Etant donné un énoncé I de longueur n, on se pose la question: A partir de quelle information sur I, de longueur polynomiale en n, peut-on vérifier que I est à réponse "oui"? On appelle alors certificats de I les informations susceptibles de permettre cette vérification. L'ensemble des certificats de I est noté C(I).
Exemple: le problème CLIQUE Algorithme de vérification V: V répond oui pour la donnée (I,c) (c est un certificat de I) si chaque paire de sommets de c est une arête de G. V répond non dans les autres cas. Certificats de l'instance I=(G,k) : Les certificats de I sont par exemple les sous-ensembles de k sommets de G.
Propriétés de 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 C(I) tel que: P NP On peut utiliser l’algorithme polynomial A qui résout comme algorithme de vérification V. Si NP, est résolu par un algorithme de complexité O(2 q(n) ) où q est un polynôme. l(c)<p(n) et V (I,c)<p(n) Soit V un algorithme non déterministe polynomial pour . où V (I,c) est le nombre de steps exécutés du calcul réussi V(I,c)
Soit x le code d'un énoncé I de . Etape k de l'algorithme associée à l'examen du k ième mot y sur de longueur au plus p(n): 1° exécution des p(n) premiers steps (au plus) du calcul V(x,y). 2° si cette exécution s'arrête avant le step p(n), alors si l' é tat de terminaison est q Y alors retourner "oui" et arrêt de l'algorithme; sinon si k+1 > A(p(n)) alors retourner "non" et arrêt de l'algorithme. o ù A(p(n)) est le nombre de mots sur de longueur au plus p(n). Si Card =a, alors au plus O(a p(n) ) certificats sont examinés et pour chacun d’eux au plus p(n) steps sont exécutés. D’où la complexité de l'algorithme : O(p(n) a p(n) )=O(2 q(n) ).
Réductions dans NP Intuitivement, 2 est plus difficile que 1 si l'existence d'un algorithme résolvant 2 implique celle d'un algorithme résolvant 1 "à un coût polynomial près". Application f calculable polynomialement telle que: f : D( 1 ) D( 2 ) I Y ( 1 ) f(I) Y ( 2 ) Notation: 1 2 Soient 1 et 2 deux problèmes de NP. Réduction polynomiale de 1 sur 2 :
Propriétés de dans NP Deux problèmes 1 et 2 sont équivalents si 1 2 et 2 1 La relation induit un ordre partiel sur les classes d’équivalence. Question : Existe t’il une classe de problèmes de NP plus difficiles que tous les autres? Définition :Un problème * est dit NP-complet si pour tout NP, * Question équivalente : Existe t’il un problème NP-complet? La relation est réflexive et transitive.
SAT est NP-complet C’est le théorème de COOK (1971) N variables logiques x j, j=1,..N. P clauses C p, p=1..P, sur les variables Fonction longueur pour SAT: l SAT (V,C)=P N SAT Question: Existe t’il une fonction de vérité sur les variables telle que toutes les clauses soient vraies? Une clause est un sous-ensemble de littéraux. Un littéral est soit une variable, soit une variable complémentée. Une clause est vraie pour une fonction de vérité sur les variables si au moins un de ses littéraux est vrai.
Un énoncé de SAT: V= {x 1, x 2, x 3, x 4, x 5 } C défini par 6 clauses: {x 1, x 3, x 5 } { x 2, x 3, x 4, x 5 } { x 1, x 4 } {x 2, x 5 } {x 1, x 2, x 4, x 5 } {x 3, x 5 } Cet énoncé est à réponse « oui » car les 6 clauses sont vraies pour la fonction de vérité: x 1 =«vrai », x 2 =« faux », x 3 =« vrai », x 4 =« vrai », x 5 =« faux »,
Soit p le polynôme associé à V. Pour tout code x de longueur n d'un énoncé à réponse "oui", il existe un certificat y de longueur au plus p(n) tel que: V(x,y) s ’arrête dans l’état q Y après au plus p(n) steps. Soit un problème de NP. est résolu par un algorithme non déterministe polynomial V. Remarque importante : Lors de l’exécution des p(n) premiers steps de V(x,y), seules les cellules de la zone Z(V)=B[-p(n)..p(n)] de la bande peuvent être modifi é es par la tête de L/E.
Définition: A chaque step t {0,p(n)}, on définit l'état de V par: l’état e Q = {q 0,q 1,q 2,…q E } de l’UC, la position de L/E, le contenu des cellules de Z(V). Remarque : Si l'exécution du calcul réussi V(x,y) se termine après moins de p(n) steps, l'état de V reste par convention celui du step de terminaison.
Soit un mot x ∑* (de longueur l(x)=n), On construit un énoncé f(x) de SAT. La fonction f doit vérifier: f(x) est satisfiable si et seulement si il existe y de longueur au plus p(n) tel que V(x,y) s'arrête dans l' é tat q Y après au plus p(n) steps. L’énoncé f(x) « simule » l'évolution des états du calcul V(x,y) où x est fixé et y est libre au cours des steps 0,1,..,p(n) avec des variables logiques contraintes par des clauses. Réduction polynomiale: SAT On rappelle que V=(Q,q 0,q Y,q N, , , ) On note ={ 1... a } et x= c(1) c(2) …. c(n)
Q(t,e), t T,e Q: (état de l ’UC après le step t=e). H(t,j), t T,j Z: (position de L/E après le step t=j). S(t,j,k), t T,j Z,k {1..a} (B[j]= k après le step t). Clauses de f(x). 6 groupes de clauses G 1,…,G 6 G 1 : Existence et unicité de l ’état. t T, {Q(t,0),Q(t,1),…..,Q(t,E)} et (e,e ’),e≠e ’,{ Q(t,e), Q(t,e ’)) G2 : Existence et unicité de la position de L/E G3 : Existence et unicité de la lettre pointée sur la bande par L/E Variables de f(x). Notations: n=l(x), T={0,…,p(n)} et Z={-p(n),…,p(n)}
G 4 : Etat initial. Pour l ’UC : {Q(0,0)} Pour L/E : {H(0,0)} Pour la bande: {S(0,0,c(1))}, {S(0,1,c(2))},;….., {S(0,n-1,c(n))}. G 5 : Etat final. Pour l ’UC: {Q(p(n),1)} G 5 : Transitions. Notation (q {q 1,q 2 }): (q ’,c ’,d ’)=(q e ’, k ’, d ’)= (q,c). Q(t,e) H(t,j) S(t,j,k) Q(t+1,e ’) Q(t,e) H(t,j) S(t,j,k) H(t+1,j+d ’) Q(t,e) H(t,j) S(t,j,k) S(t+1,j,k ’) Chaque implication s ’écrit sous la forme d ’une clause: Ex: la 1 ère :{ Q(t,e), H(t,j), S(t,j,k), Q(t+1,e ’)},
Q(t,e) H(t,j) S(t,j,k) Q(t+1,e ) Q(t,e) H(t,j) S(t,j,k) H(t+1,j ) Q(t,e) H(t,j) S(t,j,k) S(t+1,j,k ) Si q {q 1,q 2 }, il faut « figer » l ’état, donc pour e {1,2} : Supposons que I soit à réponse "oui". Soit x le code de l'énoncé I. Soit y un certificat de longueur au plus p(n) tel que le calcul V(x,y) est réussi après au plus p(n) steps. On définit alors comme suit une fonction de vérité sur les variables de f(x) qui rend toutes les clauses de f(x) "vraies".
1)les valeurs de vérité S(0,j,k) pour j = -p(n),...,-1 correspondent au certificat y écrit à gauche de la cellule 0; 2)les valeurs de vérité des variables Q(t,e), H(t,j) et S(t,j,k) correspondent aux états successifs lors de l’exécution de V(x,y) du step t=0 jusqu'au step de terminaison de V(x,y); 3)les valeurs de vérité associées à l'état du step de terminaison et des steps fictifs suivants correspondent à l'état du step de terminaison. Par définition des clauses de f(x), toutes ces clauses sont vraies pour les valeurs de vérité ainsi définies.
alors, par construction de f(x), V(x,y) répond « oui » pour le certificat y défini par les lettres k telles que S(0,j,k)= vrai (j {-p(n)..-1}. Il en résulte que la propriété : x code d'un énoncé de I à réponse "oui" f(x) est satisfiable est vraie. Comme: 1) le nombre de variables de f(x) est majoré par un polynôme en n, 2) le nombre de clauses de f(x) est majoré par un polynôme en n, la longueur de f(x) est majorée par un polynôme en n. Il en résulte que SAT. Réciproquement, si f(x) est satisfiable,
Quelques réductions SAT 3-SAT 3-SAT est le sous-problème de SAT constitué des énoncés pour lesquels chaque clause contient exactement 3 littéraux. Réduction I:énoncé de SAT (N var., P clauses) f(I): énoncé de 3-SAT (N ’var., P ’clauses) variable de I variable de f(I) clause à 1 littéral x 2 variables suppl. u et v 4 clauses: {x,u,v}, {x, u,v} {x,u, v},{x u, v)}
clause à 2 littéraux: {x,y} 1 variable suppl. w 2 clauses: {x,y,w}, {x, y, w} clause à 3 littéraux: {x,y,z} 1 clause: {x,y,z} clause à k(>3) littéraux {z 1,…………,z k } k-3 variables suppl. u 1,…,u k-3 {u 1,z 3, u 2 } {u 2,z 4, u 3 } ………. {u k-4,z k-2, u k-3 } {z 1,z 2, u 1 } {u k-3,z k-1,z k } k-2 clauses:
Supposons que I est satisfiable pour la fonction de vérité sur les variables de I : Toutes les clauses de type 1), 2) et 3) de f(I) sont vraies. clause à 2 littéraux: {x,y} 1 variable suppl. w 2 clauses: {x,y,w}, {x, y, w} clause à 3 littéraux: {x,y,z} 1 clause: {x,y,z} clause à 1 littéral x 2 variables suppl. u et v 4 clauses: {x,u,v}, {x, u,v} {x,u, v},{x u, v)}
Considérons une clause c de type 4): {z 1,…………,z k } Si j {1,2}, on pose: u j =« vrai » pour j=1,..,k-3 Si j {k-1,k}, on pose: u j =« faux » pour j=1,..,k-3 Sinon, posons: u i =« faux » pour i=1..j-2 et u i =« vrai » pour i=j-1..k-3 Alors toutes les clauses de f(I) associées à la clause c de I sont vraies. Il en résulte que f(I) est satisfiable. {z 1,…………,z k } {u 1,z 3, u 2 }{u 2,z 4, u 3 } …...{u j-2,z j, u j-1 }…….. {u k-4,z k-2, u k-3 } {z 1,z 2, u 1 } {u k-3,z k-1,z k } Soit z j le 1er littéral vrai de {z 1,…………,z k }
Réciproquement, supposons que f(I) soit satisfiable. Soit c une clause de type 1) ou 2) de I. Il existe une clause de f(I) pour laquelle tous les littéraux associés à des variables supplémentaires sont faux. Donc c est vraie. Les clauses de type 3 sont trivialement vraies. Considérons une clause c de type 4 : {z 1,…………,z k } et supposons qu ’elle soit « fausse » Comme toutes les clauses associées à c sont vraies, on a: {u 1,z 3, u 2 } vrai donc u 2 faux …………………………….. {u k-4,z k-2, u k-3 } vrai donc u k-3 faux {z 1,z 2, u 1 } vraie donc u 1 faux {u k-3,z k-1,z k } faux contradiction Il en résulte que I est satisfiable. Comme N’ et P’ sont majorés par des polynômes en N P, la réduction f est polynomiale.
3-SAT VERTEX COVER Donnée: un graphe non orienté G=(V,E) et un nombre k(1<k<n) Le problème VC: Question: existe t ’il un support de G d ’au plus k sommets? I:énoncé de "3-SAT (N var.;P clauses) f(I): énoncé de VC variable b b b b arête clause {a,b,c} triangle a b c arêtes médianes K=2P+N
Supposons que I soit satisfiable. Chaque clause c de I contient au moins un littéral l(c) « vrai ». Considérons le sous-ensemble W de sommets de f(I) formé 1) des sommets-arêtes étiquetés par un littéral « vrai » 2) des 2 sommets du triangle T(c) non étiquetés par l(c) On a Card(W)=2P+N. W est un support car : - les arêtes des triangles sont couvertes. a b c - les arêtes associées aux variables sont couvertes; b b b - les arêtes médianes sont couvertes;
Réciproquement, supposons qu ’il existe un support W de f(I)tel que Card(W)≤2P+N. Comme tout support de f(I) a au moins 2P+N sommets, on a Card(W)=2P+N. Comme il faut au moins 2 sommets pour « couvrir » chaque triangle et au moins 1 sommet pour couvrir chaque arête associée à une variable, W contient exactement 2 sommets par triangle et 1 sommet par arête associée à une variable. Considérons la fonction de vérité définie par: b b b b=« vrai » si le sommet-arête étiqueté par b appartient à W Pour toute arête de type :
Soit b l’étiquette de z, Le sommet z’ appartient nécessairement au support W car Le sommet z n ’appartient pas à W. On a donc b= « vrai » et par conséquent la clause c est vraie. I est donc satisfiable. a b c Soit c une clause, z Soit z le sommet de T(c) non couvert par W, b b b z’ Soit z’ l’autre extrémité de l ’arête médiane issue de z.
Une fonction longueur pour VC est l VC (G,k)=Card V. Comme le nombre de sommets de f(I) est 3P+2N, la réduction f est calculable polynomialement en l 3-SAT (I)=N P. Il en résulte que 3-SAT VC et que VC est NP-complet.
Sous-problèmes et complexité Sous-problème de . Un sous-problème ’ de est défini par un sous-ensemble des énoncés de et la même question que celle de . Exemples: 2-SAT et 3-SAT sont 2 sous-problèmes de SAT Un sous-problème est donc caractérisé par l ’ajout de contraintes supplémentaires sur les paramètres génériques. Exemple: Si un graphe G est un paramètre générique de , on obtient un sous-problème si l ’on impose que G est planaire ou encore que G est biparti.
Complexité des sous-problèmes Remarque: Un code raisonnable pour les énoncés de ne l ’est pas forcément pour les sous-problèmes de . Exemple: Supposons qu ’ un graphe G soit un paramètre de . G est codé avec O(n 2 ) caractères. Considérons le sous-problème de obtenu en imposant à G d ’être un graphe complet. G est alors codé avec O(log n) caractères. Propriété 1: Soit P. Si ’ est un sous-problème de dont les énoncés sont reconnaissables en temps polynomial, alors ’ P.
Propriété 2: Soit ’ un sous-problème NP-complet de . S ’il existe un algorithme polynomial qui transforme un codage raisonnable de ' en un codage raisonnable de , alors est NP-complet. Exemple: 3-SAT NP-complet SAT NP-complet Frontière entre sous-problèmes faciles et difficiles de . On fait « varier » un paramètre de , et l ’on s ’intéresse à la complexité des sous-problèmes associés. Exemple 1: Sous-problèmes de SAT obtenus en faisant varier le nombre de littéraux par clause. 2-SAT est polynomial, 3-SAT est NP-complet.
Exemple 2: Sous-problèmes de UET-SCHEDULING obtenus en faisant varier le nombre de machines. m=2: polynomial, m=3: ouvert, m paramètre: NP-complet Exemple 3: Sous-problèmes de UET-SCHEDULING obtenus en faisant varier le graphe de précédence. Arborescence: polynomial, graphe quelconque: NP-complet Problème UET-SCHEDULING Donnée: n tâches T i de durée unitaire, un graphe de précédence, m machines identiques, un nombre entier B. Question: Existe t ’il un ordonnancement de durée au plus B?
Problèmes numériques Considérons le problème PARTITION: Un énoncé de PARTITION: (A,s) tel que s(A)=2B (parité) L ’algorithme PRD suivant résout PARTITION. PRD calcule les valeurs booléennes b(i,k) où b(i,k) est vrai s ’il existe un sous-ensemble F de {a 1,…,a i } tel que s(F)=k. Pour i de 1 à n faire Pour k de 0 à B faire b(i,k)=b(i-1,k) b(i-1,k-s(a i )). Initialisation: b(0,0):=« vrai »; b(0,k):=« faux » pour 1≤k≤B. Donc (A,s) est à réponse « oui » ssi b(n,B)=« vrai »
Pour tout énoncé I=(A,s) on a : PRD (I)=O(nB) Cet algorithme n ’est donc pas polynomial car B n ’est pas polynomial en la longueur n max{ log 2 (s(a i )) /i=1..n} de (A,s). Remarque: Le sous-problème de PARTITION pour lequel les entiers s(a i ) sont majorés par une constante est polynomial. Algorithme pseudo-polynomial résolvant Soit I un énoncé de de longueur l(I). Notons M(I) le plus grand nombre de I. A est un algorithme pseudo-polynomial résolvant si A résout Pour tout énoncé I de , on a A (I)=O(p[l (I),M(I)]) où p est un polynôme à 2 variables.
Remarque: Pour les problèmes tels que pour tout énoncé I, on a M(I)≤q(l(I)) où q est un polynôme, un algorithme pseudo-polynomial est aussi polynomial. Définition: Un problème est dit numérique s ’il n ’existe pas de polynôme p tel que pour tout énoncé I de , on ait M(I)≤p(l (I)). Exemple et Contre-exemple: CLIQUE n ’est pas un problème numérique. Comme CLIQUE est NP-complet, il ne peut être résolu par un algorithme pseudo-polynomial sauf si P=NP. PARTITION est un problème numérique résolu par l ’algorithme pseudo-polynomial PRD.
Problème NP-complet au sens fort Notation: Soit p un polynôme et soit un problème. On note p le sous-problème de constitué des énoncés I tels que M(I)≤p(l(I)). p n ’est pas un problème numérique. S ’il existe un algorithme pseudo-polynomial pour résoudre p, alors p est polynomial. Définition: Le problème est NP-complet au sens fort s ’il existe un polynôme p tel que p est NP-complet.
Remarque: Les problèmes non numériques NP-complets sont NP-complets au sens fort. (CLIQUE, VERTEX COVER, SAT, 3-SAT,…) Question: Existe t ’il un problème numérique NP-complet au sens fort? Réponse: Le problème 3-PARTITION est NP-complet au sens fort. 3-PARTITION: Donnée: A={a 1,……,a 3n }; s:A telle que s(A)=nB et i {1,..,n} B/4 < s(ai) < B/2 Question: Peut-on réaliser une partition de A en n classes de même poids? Si la réponse est « oui », chaque classe contient exactement 3 éléments de A et est de taille B.
Réduction pseudo-polynomiale Pour montrer qu ’un problème est NP-complet au sens fort, on peut utiliser la réduction pseudo-polynomiale dans NP notée ps. Définition de ps Etant donnés 2 problèmes et ’ de NP, on définit ps ’ par: 1) il existe une réduction f de à ’ calculable polynomialement par rapport aux 2 variables M(I) et l(I). 2) Il existe un polynôme q 1 tel que pour tout énoncé I de , on a l(I) ≤ q 1 (l ’(f(I)). 3) Il existe un polynôme q 2 (de 2 variables) tel que pour tout énoncé I de , on a M’(f(I)) ≤ q 2 (l(I),M(I)).
Propriété: Si est NP-complet au sens fort et si ps ’, alors ’ est aussi NP-complet au sens fort. Preuve: Soit NP-complet au sens fort. Il existe donc un polynôme p tel que p est NP-complet. On montre alors l’existence d’un polynôme q tel que p ’ q. Soient f, q 1 et q 2 la réduction et les 2 polynômes associés à la relation ps ’. On peut supposer que: 1) q 2 est à coefficients positifs; 2) p est à coefficients positifs.
On montre que si I est un énoncé de p, alors f(I) est un énoncé de ’ q. On a M’(f(I)) ≤ q 2 (l(I),M(I)) ≤ q 2 (l(I),p(l(I))). (condition 3)) Comme q 2 est à coefficients positifs et l(I)≤q 1 (l ’(f(I) ) (condition 2) : M’(f(I)) ≤ q 2 (l(I),p(l(I))) ≤ q 2 (q 1 (l’(f(I)), p(q 1 (l’(f(I)))) = q(l’(f(I)) où q(x) est le polynôme q 2 (p(q 1 (x),q 1 (x))) Il en résulte que f est une réduction de p à ’ q. De plus, par la condition 1, on a pour tout I énoncé de l’(f(I)) ≤ r(l(I),M(I)) où r est un polynôme (à 2 variables). Il en résulte que l’(f(I)) ≤ r(l(I),p(l(I)) ) = s(l(I)) où s(x)= r(x,p(x)) est un polynôme à une variable x. On a donc p ’ q et ’ est NP-complet au sens fort.
Exemple: Le problème d’ordonnancement sur une machine, noté ONE_MACHINE_SCHED (OMS) est NP-complet au sens fort. Le problème OMS: une machine M; n tâches T i (durée p i, date de disponibilité r i, deadline d i ) Question: Est ’il possible d ’exécuter les n tâches sur M? On montre que 3-PARTITION ps OMS Enoncé de 3-PARTITION: I=(A,s) où : Card(A)=3n ; s(A)=nB ; a A, B/4<s(a)<B/2. Enoncé f(I) de OMS: 3n tâches T i : (p i = s(a i ), r i =0, d i =nB+n-1) n-1 tâches D j : (p j =1, r j = jB+j-1, d j = jB+j)
Supposons l’énoncé (A,s) à réponse « oui ». Soit alors C 1,..,C n les sous-ensembles de 3 tâches T i associées aux n classes de A de poids B. L’ordonnancement de f(I) suivant est réalisable: D1D1 C1C1 C2C2 D2D2 D n-1 CnCn 0BB+1nB+n-12B+12B+2 Réciproquement, supposons qu’il existe un ordonnancement de l’énoncé f(I) de OMS. Les n-1 tâches D j sont bloquées dans les intervalles [jB+j-1,jB+j]. L’espace libre restant de l ’intervalle [0, nB+n-1] est juste suffisant pour les autres tâches T i. On peut donc partitionner A en n classes de poids B.
f est donc une réduction de 3-PARTITION à OMS. Pour un énoncé I=(A,s) de 3-PARTITION on a: l(I)=n log 2 (B) et M(I)= max{ (s(a i )/i=1..3n}. Pour un énoncé J=(n,r,p,d) de OMS on a: l’(J)=n max{ log 2 (d i ) /i=1..n} M’(J)= max{d i /i=1..n}. Pour l’énoncé f(I) de OMS, on a donc: l’(f(I)) = (4n-1) log 2 (nB+n-1) M’(f(I))=nB+n-1. On a les inégalités suivantes (pour des cstes positives a, b, c; n≥n 0 (cste >0) et B≥B 0 (cste >0) : l ’(f(I)) ≤ 4n log 2 (2nB) ≤ an 2 +bn log 2 (B) ≤ c(n log 2 (B) ) 2 l(I)≤ (4n-1) log 2 (nB+n-1) M ’(f(I))=nB+n-1≤ nM(I) ≤ l(I)M(I)
Il en résulte que: l’(f(I)) est majorée par un polynôme en l(I) et M(I) (condition 1). l(I) est majorée par un polynôme en l’(f(I)) (condition 2). M’(f(I)) est majoré par un polynôme en l(I) et M(I) (condition 3). On a donc: 3-PARTITION ps OMS. OMS est donc NP-complet au sens fort.
Problèmes NP-difficiles Problème de recherche : A chaque énoncé I correspond un ensemble (éventuellement vide) de solutions noté S(I). Un algorithme A résout le problème si pour tout énoncé I, il fournit une solution de S(I) si S(I)≠ ou écrit « pas de solution » si S(I)= . Remarques: Les problèmes de décision sont des problèmes de recherche: (S(I)={« oui »} si I Y , sinon S(I)= . Les problèmes d’optimisation sont des problèmes de recherche: S(I) est l’ensemble des solutions optimales de l’énoncé I.
Réduction de Turing La réduction de Turing notée T étend aux problèmes de recherche la réduction polynomiale dans NP. Définition: Soient 1 et 2 deux problèmes de recherche. On dit que 1 T 2 si l’existence d ’un algorithme résolvant 2 en un step (quelque soit l ’énoncé de 2 ) implique que 1 est polynomial. Remarque: Si 1 et 2 sont 2 problèmes de NP on a: 1 2 1 T 2
Exemple: Soit TSP le problème du voyageur de commerce (énoncé formé d ’une matrice D des distances entre n villes et d ’un nombre B). Soit TSP c le problème de décision complémentaire, Soit TSP_OPT le problème d’optimisation associé (énoncé: D) Remarque: On ne sait pas si TSP c est dans NP. Propriété: TSP T TSP c et TSP T TSP_OPT Soit I un énoncé de TSP, et soit un algorithme 1-pas pour TSP c. Si la réponse (I) est « oui » (resp. « non »), alors I est à réponse « non » (resp; « oui »). Soit I=(D,B) un énoncé de TSP, et soit un algorithme 1-pas pour TSP_OPT. Soit s le tour retourné par (D). Si d(s)≤B (resp >B) alors I est à réponse « oui » (resp. « non »).
Problème NP-difficile: Un problème de recherche est NP-difficile s’il est plus difficile au sens de la réduction de Turing qu’un problème NP-complet. est NP-difficile s’il existe ’ NP-complet tel que ’ T Exemple: les problèmes TSP c et TSP_OPT sont NP-difficiles. D’une manière générale, le problème d’optimisation associé à un problème de décision NP-complet est NP-difficile. La réciproque est généralement vraie: Un problème de décision est plus difficile au sens de la réduction de Turing que le problème d’optimisation associé.
Exemple: TSP_OPT T TSP On introduit un problème de décision intermédiaire TSP_INT: Donnée: (D,B) et L: liste de sommets distincts. Question: Existe t ’il un tour s=L.R de coût au plus B? On a: TSP_INT T TSP. En effet, TSP est NP-complet et TSP_INT est dans NP. Montrons que l ’on a TSP_OPT T TSP_INT Notons l ’algorithme 1-pas qui résout TSP_INT. On considère alors l’algorithme suivant de complexité polynomiale en l(I) qui permet de calculer le coût minimal d’un tour :
Soit C le coût d ’un tour quelconque; l:=0; u:=C; Tantque u-l>0 faire k:= 1/2(u+l) ; Si (D,k, )=« oui » alors u:=k sinon l:=k+1; FinTantque; C*:=k. On utilise ensuite l’algorithme de complexité polynomiale en l(I) suivant qui permet de construire un tour de coût minimal. Dichotomie sur la valeur du tour optimal log 2 (C) appels à l ’algorithme 1-pas .
L:=(1); R:=(2,..,n); Pour k de 2 à n-1 faire r:=PREMIER(R); Tantque (D,C*, L.r ) =« non » faire r := SUIVANT(r,R); FinTantque; L:=L.r ; R:=SUPPRIMER(r,R); FinPour. La liste L retournée par cet algorithme est un tour de coût minimal. En effet, l’invariant suivant est vrai: A la fin de l’itération k de la boucle Pour, il existe un tour de coût C* préfixé par L. De plus l’algorithme est en O(n 2 ) puisque le nombre de passages dans la boucle Tantque est au plus n. Il en résulte que : TSP_OPT T TSP_INT