Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLoup Simonin Modifié depuis plus de 9 années
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 ).
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.