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

Slides:



Advertisements
Présentations similaires
Dans cette partie Graphes Eulériens.
Advertisements

Algorithmes et structures de données avancées Cours 7
Programmation linéaire, Jeux, Complexité
Algorithmes et structures de données avancés
Introduction à l’Algorithmique
COURS DE MATHEMATIQUES DISCRETES SM
Calculs de complexité d'algorithmes
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Séminaire Biblio LISC - 3/04/02 Complexité, information Daprès JP Delahaye (1999)
Séminaire Florin Périer Alain Gély LIMOS
Chap. 1 INTRODUCTION Beaucoup de problèmes de la vie courante, tels la gestion de réseaux de communication ou l'ordonnancement de tâches, correspondent.
Nicolas Bourbaki.
INTRODUCTION.
Génération de colonnes
Conception et analyse des algorithmes
COURS SUR LA THEORIE DES GRAPHES
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Introduction à l’algorithmique
Preuves interactives: IP, AM, MA et isomorphisme de graphe
Algorithmes Branch & Bound
Graphes Conceptuels J.F. Baget Inria.
Programmation logique Logique des prédicats du premier ordre
Chapitre 2 Réductions: exemples et méthodes
Programmation logique Démonstrateur automatique
Théorie des graphes Un peu de vocabulaire.
Chapitre 2 Réductions: exemples et méthodes
Coloration gap sommet identifiante de graphes
Rappels de logique des prédicats du 1er ordre
IFT Complexité et NP-complétude
IFT Chapitre 1 Classes de complexité fondamentales:
IFT Au delà de NP: hiérarchie polynomiale, EXP, NEXP.
Courbes de Bézier.
IFT Théorème PCP: Aperçu et applications à linapproximabilité.
Algorithmes d ’approximation
Recherche Opérationnelle
Conception et analyse des algorithmes Les algorithmes probabilistes
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
Introduction aux problèmes d'ordonnancement sans temps-morts.
Programmation dynamique
Technique de points de contrôle: Formes de Bézier
ASI 3 Méthodes numériques pour l’ingénieur
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Programmation linéaire en nombres entiers : les méthodes de troncature
IFT Complexité et NP-complétude Chapitre 0 Rappels.
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
D.E ZEGOUR Ecole Supérieure d’Informatique
D.E ZEGOUR Ecole Supérieure d’Informatique
Programmation linéaire en nombres entiers
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Modèles Mathématiques et représentation discrètes pour la description des images couleur Luc Brun.
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Problème de double digestion
Programmation fonctionnelle Preuve
Chapitre 3: Translation et Vecteurs
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Programmation dynamique
Ajouts et retraits dans un arbre de connexion Nicolas Thibault et Christian Laforest, Équipe OPAL Laboratoire IBISC (regroupement LaMI et LSC), Évry 8.
Systèmes formels 1. Définition d'un SF Morphologie Théorie propre
programmation linéaire
CSI2510 Structures de données et algorithmes Plus court chemin
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
Cycle, Cocycle, Arbre et Arborescence
COMPLEXITE DES PROBLEMES COMBINATOIRES Master d’Informatique : spécialité IAD P. Chrétienne : Prof. Université Paris 6.
Chapitre 3 Problèmes de Cheminement
Complexité des Problèmes Combinatoires
Transcription de la présentation:

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 zWzW 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.