Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
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. CLIQUE Graphe G=(S,A) 1<k<n=Card(S) Existe t ’il une clique d ’ordre k dans G? SAT N var. logiques xj P clauses Cp sur les xj Existe t ’il une fonction de vérité telle que toutes les clauses soient vraies? PARTITION A={a1,….,an} s :A Existe t ’il BA tel que s(B)=s(A/B)? Le caractère pour l ’ensemble des entiers naturels n ’est pas esthétique. Définir oralement ce qu ’est une clause.
4
Notations Problème de décision Ensemble des énoncés : D,
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(). Expliquer oralement ce qu’est un codage raisonnable: Codage (injectif)+ nombres codés en base >1.
5
Algorithme A résolvant .
Donnée : x = mot sur . Résultat : "oui" si x LY( ), "non" sinon. Complexité temporelle pire-cas de A (par rapport à n=nombre de lettres de x) : TA(n) = nombre maximum d'opérations élémentaires exécutées par A sur un énoncé de longueur n. A est polynomial si TA(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) : log2(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(log2(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
La classe NP Certificats d'un énoncé et algorithme de vérification.
Exemple: CLIQUE Soit I=(G,k) un énoncé de CLIQUE. Question : A partir de quelle information sur I peut-on 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(n2) à 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.
9
Pour l’énoncé I de CLIQUE, les sous-ensembles de
sommets constituent les « certificats » de l’énoncé I. On notera (I) l’ensemble des certificats de I. 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. Le couple (,V) définit un algorithme non déterministe qui « résout » CLIQUE car : I YCLIQUE, c (I) / V(I,c) répond oui. I YCLIQUE ,c (I), V(I,c) répond non. Ne parler ici que d ’algorithme non déterministe. Introduire le caractère polynomial sur la page suivante.
10
Le couple (,V) est un algorithme non déterministe polynomial
qui "résout" CLIQUE car : la longueur d'un certificat est en O(p(n)) (n=longueur de I) où p est un polynôme ; 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 : 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(n2).
11
Algorithme non déterministe polynomial résolvant .
Soit un problème de décision. Le couple (,V) est un algorithme non déterministe qui « résout » si : I Y, c (I) / V(I,c) répond oui. I Y ,c (I), V(I,c) répond non. Le couple (,V) est un algorithme non déterministe polynomial qui « résout » si de plus : la longueur de tout certificat c est en O(p(n)) ; la complexité de V est en O(q(n)) ; où : n est la longueur de I et p,q sont 2 polynômes. La classe NP est l’ensemble des problèmes de décision résolus par un algorithme non déterministe polynomial.
12
Propriétés de NP PNP On peut utiliser l’algorithme polynomial A qui résout comme algorithme de vérification V avec un unique certificat (qui ne sert à rien!). Si NP, est résolu par un algorithme de complexité O(2r(n)) où r est un polynôme. Soit (,V) un algorithme non déterministe polynomial qui "résout" . A (,V) correspond les 2 polynômes p et q tels que, si n est la longueur de l'énoncé I : la longueur d'un certificat est majorée par p(n) ; le nombre d'opérations élémentaires exécutées par V est majorée par q(n). On note C(I) le nombre de certificats de l'énoncé I.
13
Algorithme (déterministe) résolvant :
fonction SIMUL(I, ,V) ; (à valeurs dans {"oui","non"}) encore := "vrai" ; nex := 0; TantQue encore et (nex<C(I)) faire Choisir un certificat c (I) non examiné ; Exécuter V(I,c) ; Si V(I,c) se termine avec réponse « oui » alors encore:="faux" sinon nex := nex+1; FinTantQue; Si encore="faux" alors Retourner("oui") sinon Retourner("non"). Si l'alphabet servant à coder les certificats contient a lettres, alors A examine au plus O(a p(n)) certificats et exécute pour chacun d’eux au plus q(n) steps. D’où la complexité de A: O(q(n) a p(n)) = O(2 r(n) ) où r est un polynôme.
14
Réductions dans NP Soient 1 et 2 deux problèmes de 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 : Application f calculable polynomialement telle que: f: D(1) D(2) I Y (1) f(I) Y (2) Notation: 1 2 (se lit : 1 plus facile que 2 ) Remarque importante : Supposons 1 2. Si 2 est polynomial alors 1 l'est aussi.
15
Propriétés de dans NP La relation est réflexive et transitive.
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, *
16
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-SAT 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)}
17
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 {z1,…………,zk} k-3 variables suppl. u1,…,uk-3 {u1,z3, u2} {u2,z4, u3} ………. {uk-4,zk-2, uk-3} {z1,z2, u1} {uk-3,zk-1,zk} k-2 clauses:
18
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): {z1,…………,zk} Si z1 ou z2 est vrai, on pose: uj=« vrai » pour j=1,..,k-3 Si zk-1 ou zk est vrai, on pose: uj=« faux » pour j=1,..,k-3 Si z1,z2 , zk-1,zk sont « faux », soit zi le premier littéral « vrai ». La clause de f(I) contenant zi est {ui-2,zi, ui-1} Posons: uj=« faux » pour j=1..i-2 uj=« 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.
19
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 ): {z1,…………,zk} et supposons qu ’elle soit « fausse » Comme toutes les clauses associées à c sont vraies, on a: {z1,z2, u1} vraie donc u1 faux {u1,z3, u2} vrai donc u2 faux …………………………….. {uk-4,zk-2, uk-3} vrai donc uk-3 faux {uk-3,zk-1,zk} faux contradiction Il en résulte que I est satisfiable. Comme N’ et P’ sont majorés par des polynômes en NP, la réduction f est polynomiale.
20
3-SAT VERTEX COVER Le problème VC: Donnée: un graphe non orienté G=(V,E) et un nombre k(1<k<n) 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 arête arêtes médianes clause {a,b,c} triangle a b c K=2P+N
21
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 associées aux variables sont couvertes: b b Les arêtes médianes sont couvertes: Les arêtes des triangles sont couvertes: a b c
22
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=« vrai »
23
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) . a b c b z(c,W) z’(c,W) b est le littéral l(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. I est donc satisfiable.
24
Une fonction longueur pour VC est lVC(G,k)=Card V.
Comme le nombre de sommets de f(I) est 3P+2N, la réduction f est calculable polynomialement en l3-SAT(I)=NP. Il en résulte que 3-SAT VC et que VC est NP-complet.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.