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  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é est un mot de ∑*, Langage des énoncés L(  ), Langage des énoncés à réponse « oui »:LY(  ) Ensemble des énoncés D ,

5 UC une unité centrale Algorithme résolvant  Machine de Turing déterministe: 3) fonction de transition:  : Q  {q Y,q N }   Q  {-1,+1} 1) alphabet  contenant le « blanc » noté  et un sous-alphabet   {  } 2) ensemble fini d ’états « de contrôle » pour l ’UC Q={q 0,q Y,q N,….,q C } où q 0 est l ’état initial et q Y,q N sont 2 états « terminaux ». Programme P de DTM: L/E une tête de lecture-écriture Bande une bande doublement infinie

6 Exécution P(x) du programme P pour la donnée x. Etat initial global: Etape de calcul: (c est le caractère pointé par LE, b est la position de LE, et q est l ’état de l ’UC) 1. Si q  {q Y,q N } alors stop; 2. Soit (q ’,c ’,d ’)=  (q,c)); 3. B(b):=c ’;q:=q ’; b:=b+d ’. 3 issues possibles pour P(x): arrêt pour état q Y, arrêt pour état q N, pas d ’arrêt. q0q0 01 x -22

7 Langage reconnu par P: L(P)= {x  ∑*  P(x) s ’arrête dans l ’état q Y.}. P est un algorithme qui reconnaît un langage L  ∑* si 1) pour tout x  ∑*, P(x) s ’arrête; (terminaison) 2) L(P)=L. (validité) P est un algorithme qui résout  s ’il reconnaît LY(  ). Complexité d ’un algorithme A: Soit  A (x) le nombre de steps exécutés par A pour la donnée x. La fonction complexité T A est définie par: T A (n)=Max{  A (x)  l(x)=n} Si T A (n)=O(p(n)) où p est un polynôme, alors A est un algorithme polynomial.

8 La classe NP Une « garantie » possible est d ’exiger que A écrive le sous-ensemble T de sommets formant la clique. Un problème de NP: CLIQUE Deux amis A et B discutent d ’un énoncé I=(G,k) de CLIQUE. A affirme à B que I est à réponse « oui ». En effet, B peut alors vérifier que: 1) Card(T)=k 2) chaque paire de sommets de T est une arête de G. Quelle « preuve » B peut-il demander à A?

9 Considérons l ’algorithme V qui, étant donné 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 « non » dans le cas contraire. Pour l ’énoncé I=(G=(V,E),k) de CLIQUE, les sous-ensembles de sommets constituent les « preuves » (encore appelées « certificats ») de l ’énoncé I. On notera  (I) l ’ensemble des certificats. Le couple ( ,V) est 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.

10 Machine de Turing non déterministe une machine de Turing un module devin L/E UCDevin 0x Programme de NDTM: V=(Q,q 0,q Y,q N, , ,  ) Calcul V(x,y) du programme V: Le calcul V(x,y) est réussi s ’il s ’arrête dans l ’état q Y. Le mot x est reconnu par V s ’il existe y tel que V(x,y) est réussi. y 1) le module devin écrit y (i.e:B[-1..-l(y)]:=y) ; 2) V est exécuté à partir de l ’état initial: (q 0 ;B[1..l(x)]=x,B[-1..-l(y)]=y;b=1)

11 Si T V (n)=O(p(n)) où p(n) est un polynôme, alors V est un algorithme non déterministe polynomial. Durée d ’un calcul réussi V(x,y):  (x,y)= l(y)+  V (x,y) Durée de reconnaissance de x: r(x)=Min{  (x,y)  y tel que V(x,y) est réussi} Fonction complexité de l ’algorithme non déterministe V: T V (n)=Max{r(x)  x  L(V) et l(x)=n} Le mot x est reconnu par V s ’il existe y tel que V(x,y) est réussi. L(V) est le langage des mots reconnus par V

12 Les problèmes de NP Soit  un problème de décision et soit V un algorithme non déterministe polynomial. La classe NP est l ’ensemble des problèmes de décision résolus par un algorithme non déterministe polynomial. Si L(V)=LY(  ), alors V est un algorithme non déterministe polynomial qui résout .

13 Propriétés de NP P  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  (I) tel que: On peut utiliser l ’algorithme polynomial A qui résout  comme algorithme de vérification V avec un unique certificat vide. Si   NP,  est résolu par un algorithme de complexité O(2 q(n) ) où q est un polynôme. l(c)+  V (I,c)<p(n) Soit ( ,V) un algorithme non déterministe polynomial pour .

14 Il en résulte que: 1) seuls les certificats de longueur ≤ p(n) dans  (I) suffisent pour prouver que I  Y  ; 2) pour I et c   (I) fixés, il suffit d ’exécuter V jusqu ’au 1 er des 2 événements suivants: E1: l ’état q Y est atteint, E2: p(n) steps ont été exécutés. Pour un énoncé I, l ’algorithme A examine les certificats c   (I): Pour chaque certificat c   (I) de longueur ≤p(n) Exécuter pas à pas V(I,c): Si E1 alors réponse de A:= « oui »;stop. Si E2 alors passer au certificat suivant. Si Card  =a, alors A examine au plus O(a p(n) ) certificats et exécute pour chacun d ’eux au plus p(n) steps. D ’où la complexité de A: O(p(n) a p(n) )=O(2 q(n) ).

15 Réductions dans NP Intuitivement,  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 » 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 :

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,    * S ’il existe au moins un problème NP-complet, sa classe répond à la question. La relation  est réflexive et transitive.

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

18 I:énoncé de SAT (N var.;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:

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

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

21 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

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

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

24 Soit c une clause, soit z(c,W) le sommet de T(c) non couvert par W, soit l(c,W) l’étiquette de z(c,W), soit z’(c,W) l’autre extrémité de l ’arête médiane issue de z(c,W). Le sommet z’(c,W) appartient nécessairement au support W car z(c,W) n ’appartient pas à W. On a donc l(c,W) « vrai » et par conséquent c est vraie. a b c b b b z(c,W) z’(c,W) b est le littéral l(c,W). I est donc satisfiable.

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

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

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

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

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

30 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) est non vide - écrit « pas de solution » si S(I) est vide. Remarques: Les problèmes de décision sont des problèmes de recherche: - les énoncés de Y  ont une solution « oui », - les autres n’ont pas de solution. Les problèmes d’optimisation sont des problèmes de recherche: S(I) est l’ensemble des solutions optimales de l’énoncé I.

31 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.  1  T  2 si l ’existence d ’un algorithme « oracle » résolvant  2 en un step implique que  1 est polynomial. Remarque: Si  1 et  2 sont 2 problèmes de NP on a:  1   2   1  T  2 (à partir de I 1, calcul de I 2 = f(I 1 ) et réponse pour I 2 en un step)

32 Exemple: Soit TSP le problème du voyageur de commerce (énoncé : formé (matrice D des distances entre n villes, 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 virtuel 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 virtuel 1-pas pour TSP_OPT. Soit s le tour retourné par  (I). Si d(s)≤B (resp >B) alors I est à réponse « oui » (resp. « non »).

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

34 Exemple: TSP_OPT  T TSP On introduit un problème de décision intermédiaire TSP_INT: Donnée: (D,B,L) où L est une liste de sommets distincts de G. Question: Existe t ’il un tour s=(L.R) de coût au plus B? TSP_INT  T TSP. Preuve: TSP_INT est dans NP et TSP est NP-complet. TSP_OPT  T TSP_INT Soit  l ’algorithme virtuel 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 :

35 Soit C le coût du tour (1,2,3,...,n,1); 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 suivant, de complexité polynomiale en l(I), qui permet de construire un tour de coût minimal.

36 L:=(1); R:=(2,..,n); Pour k de 2 à n-1 faire r:=PREMIER(R); O(1) Tantque  (D,C*,(L,r) ) =« non » faire O(1) r:= SUIVANT(r,R); O(1) FinTantque; L:=(L,r); O(1) R:=SUPPRIMER(r,R); O(n) FinPour. La liste L retournée 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 de complexité O(n 2 ).


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

Présentations similaires


Annonces Google