Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne
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. Quelques réductions.
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 var. logiques x j P clauses C p sur les x j Existe t ’il une fonction de vérité telle que toutes les clauses soient vraies?
Notations Problème de décision Sous-ensemble des énoncés à réponse « oui »: Y , Si l’on code les énoncés à partir d’un alphabet et d’une fonction codage « raisonnable », - chaque énoncé de est un mot sur , - le langage des énoncés est noté L( ), - le langage des énoncés à réponse « oui » est noté LY( ). Ensemble des énoncés : D ,
Algorithme A résolvant . Donnée : x = mot sur . Résultat : "oui" si x LY( ), "non" sinon. Fonction complexité temporelle pire-cas de A : T A (n) = nombre maximum d'opérations élémentaires exécutées par A sur un énoncé de longueur n. A est un algorithme polynomial si : T A (n)=O(p(n)) où p est un pôlynome.
Exemple : énoncé : (a,b) : 2 entiers positifs a et b (a≥b) question : a et b sont-ils premiers entre eux ? alphabet : = {[,0,;,1,]}; mot associé à l'énoncé (a,b) : [bin(a);bin(b)] longueur de l'énoncé (a,b) : log 2 (a) Algorithme : fonction PR(a,b) ; (à valeurs dans {"oui","non"}) x:=a ; y:=b ; r:=x mod y ; tantque r > 0 faire z:=y; y:= x mod y ; x:=z; fintantque; si (x=1) alors Retourner("oui") sinon Retourner("non"). Complexité de PR : O(log 2 (a)) (théorème de Lamé)
La classe P. C'est l'ensemble des problèmes de décision polynomiaux. Remarque : En dépit d'une recherche intense, aucun algorithme de complexité polynomiale n'a été déterminé pour de nombreux problèmes : - voyageur de commerce ; - clique d'ordre k dans un graphe ; - PARTITION ; - SAT ; L'hypothèse de non existence d'un tel algorithme pour ces problèmes s'est alors de plus en plus renforcée. Une nouvelle classe (incluant P) a été définie pour capturer ces problèmes de décision : la classe NP.
Algorithme non déterministe V résolvant . Donnée : (x,y) où x est un mot de L( ) et y est un mot de . Si V se termine pour la donnée (x,y), alors le résultat V(x,y) appartient à {oui,non}. V doit satisfaire la propriété suivante : a) Si x est un mot de LY( ), il existe y tel que V(x,y)="oui"; b) Si x n'est pas un mot de LY( ), pour tout mot y de : soit V ne se termine pas, soit V(x,y)="non". La classe NP NP est l’ensemble des problèmes de décision "résolus" par un algorithme Non déterministe Polynomial.
Algorithme non déterministe polynomial V résolvant . Donnée : (x,y) où x est un mot de L( ) et y est un mot de . Si V se termine pour la donnée (x,y), alors le résultat V(x,y) appartient à {oui,non}. V doit satisfaire la propriété suivante : Il existe un polynôme q(n) tel que : a)Si x est un mot de LY( ) de longueur n, il existe y de longueur au plus q(n) tel que V(x,y)="oui" après au plus q(n) steps de calcul; b) Si x n'est pas un mot de LY( ), pour tout mot y de : soit V ne se termine pas, soit V(x,y)="non".
Exemple: CLIQUE Soit I=(G,k) un énoncé de CLIQUE. Pour définir un algorithme non déterministe polynomial résolvant CLIQUE, on se pose la question : Quelle information sur I est nécessaire pour vérifier efficacement que I est à réponse "oui"? Réponse : Le sous-ensemble T des sommets de la clique. En effet, on peut alors vérifier en O(n 2 ) à partir de (I,T) si : 1) Card(T)=k ; 2) chaque paire de sommets de T est une arête de G ; et répondre "oui" si 1) et 2) sont vraies pour (I,T) et "non" sinon.
Soit V l’algorithme qui, pour un certificat T de l’énoncé I, répond « oui » pour la donnée (I,T) si: 1) Card(T)=k; 2) chaque paire de sommets de T est une arête de G; et répond « non » dans le cas contraire. Pour l’énoncé I de CLIQUE, les sous-ensembles de sommets sont appelés les « certificats » de l’énoncé I. On notera (I) l’ensemble des certificats de I. Le couple ( ,V) définit un algorithme non déterministe qui « résout » CLIQUE car : I Y CLIQUE, c (I) / V(I,c) répond oui. I Y CLIQUE, c (I), V(I,c) répond non.
V est un algorithme non déterministe polynomial qui "résout" CLIQUE car : 1)la longueur d'un certificat est en O(p(n)) (n=longueur de I) où p est un polynôme ; 2)la complexité temporelle pire-cas de V est en O(q(n)) où q est un polynôme. En effet, pour le probl è me CLIQUE : 1)un certificat T est cod é par son vecteur caract é ristique sur l'ensemble des sommets de G ; 2) La complexit é de l'algorithme de v é rification V est O(n 2 ).
Propriétés de NP P NP On peut utiliser l’algorithme polynomial A qui résout comme algorithme de vérification V. Dans ce cas, les certificats sont inutiles. Si NP, est résolu par un algorithme de complexité O(2 r(n) ) où r est un polynôme. Soit V un algorithme non déterministe polynomial pour . Soit q le polynôme associ é à V. Soit x un mot de L( ) de longueur n. Soit C(n) l'ensemble des mots sur de longueur au plus q(n).
Algorithme A résolvant . 1.Si tous les mots de C(n) ont été examinés alors Répondre "x Y "; Stop ; 2.Choisir un nouveau mot y de C(n); 3.t:=1; 4.Exécuter le step t de V pour (x,y) : Si V est terminé alors si V(x,y)="oui" alors Répondre "x Y "; Stop; sinon Répondre "x Y ";Stop ; 5.t:=t+1; 6.Si t<q(n) alors aller en 4. sinon aller en 1. Si l'alphabet servant à coder les certificats contient a lettres, alors A examine au plus O(a q(n) ) mots y (certificats) et exécute pour chacun d’eux au plus q(n) steps. D’où la complexité de A: O(q(n) a q(n) ) = O(2 r(n) ) où r est un polynôme.
Réductions dans NP 2 est plus difficile que 1 si un algorithme qui résout 2 peut aussi être utilisé pour résoudre 1 "à un coût polynomial près". Réduction polynomiale de 1 sur 2 (notée 1 2 ): Application f calculable polynomialement telle que: f: D( 1 ) D( 2 ) I Y ( 1 ) f(I) Y ( 2 ) La notation: 1 2 se lit : ( 1 plus facile que 2 ou encore 1 se réduit polynomialement à 2 ) Soient 1 et 2 deux problèmes de NP. Remarque importante : Supposons 1 2. Si 2 est polynomial alors 1 l'est aussi.
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, * La relation est réflexive et transitive.
Théorème de COOK Résultat fondamental (Cook 1971) SAT est NP-complet. Schéma de la preuve: Problème de NP, c'est à dire résolu par un algorithme non déterministe polynomial V. A un énoncé x de , on fait correspondre un énoncé f(x) de SAT qui possède la propriété suivante : f(x) est satisfiable si et seulement si il existe un mot y de (de longueur polynomiale en la longueur de x ) tel que V répond oui (en temps polynomial en la longueur de x) pour la donnée (x,y)
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 f(I): énoncé de 3-SATvariable 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)}
I:énoncé de SAT (N variables;P clauses) f(I): énoncé de 3-SAT (N’ var.; P’clauses) 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: Toutes les clauses de type 1), 2) et 3) de f(I) sont vraies. Considérons une clause c de type 4): {z 1,…………,z k } Si z 1 ou z 2 est vrai, on pose: u j =« vrai » pour j=1,..,k-3 Si z k-1 ou z k est vrai, on pose: u j =« faux » pour j=1,..,k-3 Si z 1,z 2, z k-1,z k sont « faux », soit z i le premier littéral « vrai ». La clause de f(I) contenant z i est {u i-2,z i, u i-1 } Posons: u j =« faux » pour j=1..i-2 u j =« vrai » pour j=i-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.
Réciproquement, supposons que f(I) soit satisfiable. Soit c une clause de type 1) et 2) de I. Il existe une clause c’de f(I) pour laquelle tous les littéraux de c’ non présents dans c 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 aussi 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 valeur de vérité de b : b=« vrai » si le sommet est dans W arête associée à la variable b
Soit c une clause; soit z le sommet de T(c) non couvert par W; soit b l’étiquette de z; soit z’ l’autre extrémité de l’arête médiane issue de z. Le sommet z’ appartient nécessairement au support W car z n’appartient pas à W. On a donc b=« vrai » et par conséquent la clause c est vraie. a b c b b b zWzW z’ b est le littéral qui étiquette le sommet z. I est donc satisfiable.
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.