La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.

Présentations similaires


Présentation au sujet: "Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne."— Transcription de la présentation:

1 Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne

2 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.

3 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?

4 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 ,

5 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.

6 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é)

7 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.

8 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.

9 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".

10 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.

11 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.

12 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 ).

13 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).

14 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.

15 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.

16 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.

17 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)

18 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)}

19 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:

20 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.

21 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.

22 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

23 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:

24 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

25 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 zWzW z’ b est le littéral qui étiquette le sommet z. I est donc satisfiable.

26 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.


Télécharger ppt "Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne."

Présentations similaires


Annonces Google