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

Slides:



Advertisements
Présentations similaires
Candidature à une allocation de recherche en informatique
Advertisements

Comparaison de deux algorithmes d’approximation
Relational Learning as a Search in a Critical Region Lou Fedon 9 Mars 2006.
Algorithmes et structures de données avancées Cours 6 Patrick Reuter
Algorithmes et structures de données avancés
Introduction à l’Algorithmique
Cours d’Algorithmique
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)
Colloque Traitement et Analyse de séquences : compte-rendu
4 Les Lois discrètes.
Complexité et Classification
Problème de génération : Illustration & Méthodes
Séminaire Florin Périer Alain Gély LIMOS
Journées Graphes & Algorithmes, Novembre 2006, Orléans
Virtools Olivier Lamotte.
IN302 – Chapitre 1 Notions de base, connexité. Rappels sur la complexité
Archiaid scrl depuis 1989.
Comparaison de 4 algorithmes pour le problème du vertex cover
Preuves interactives: IP, AM, MA et isomorphisme de graphe
Algorithmes Branch & Bound
Chapitre 2 Réductions: exemples et méthodes
Ordonnancement avec exclusion mutuelle par un graphe d’intervalles ou d’une classe apparentée : complexité et algorithmes ~ Frédéric Gardi - 14 Juin.
16 mars 2007Cours de graphes 7 - Intranet1 Cours de graphes Problèmes NP-complets. Réductions polynômiales.
Chapitre 2 Réductions: exemples et méthodes
Cinquième étape : colorier les graphes
Contourner la NP-complétude
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.
Algorithmes d ’approximation
ELE6306 : Test de systèmes électroniques Projet de cours Chaîne de scan unique: Reconfiguration = Optimisation Louis-Martin Côté Professeur : A. Khouas.
Les fonctions.
Conception et analyse des algorithmes Les algorithmes probabilistes
Propriétés des ordonnancements SPT
Introduction aux problèmes d'ordonnancement sans temps-morts.
Programmation non procédurale Le projet ECOLE 2000
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Méthodes de prévision (STT-3220)
Patrons de conceptions de créations
IFT Complexité et NP-complétude Chapitre 0 Rappels.
Contourner la NP-complétude
IFT Complexité et NP-complétude
Python Fonction et procédure
RAPPEL Qu’est ce qu’une structure de contrôle itérative ?
Les réseaux sémantiques[Quillian 68]
Apérisentation Sur les graphes évolutifs Mardi 22 novembre 16h30.
ALGORITHME DE TRI Le tri par insertion.
D.E ZEGOUR Ecole Supérieure d’Informatique
D.E ZEGOUR Ecole Supérieure d’Informatique
Algorithmes sur les sons
Algorithmes Branch & Bound
Université Pierre et Marie Curie Laboratoire d’Informatique de Paris VI Département ASIM Analyse et résultats sur le dimensionnement des mémoires pour.
Travaux Pratiques Optimisation Combinatoire
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
ACTIVITES 25 - Fonctions affines.
Polynôme d’avalanche A. Micheli Dominique Rossin.

Algorithmique et Complexité
Visualisation de données complexes en 3D Projet d'algorithmique et de Langage C Auteurs: Jonathan Courtois Pierre Tanguy Encadrant: Mohammed Haouach
LES TORSEURS.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cycle, Cocycle, Arbre et Arborescence
Les classes de mots Les déterminants Les articles.
Gestion des mails PLIJUSAT Copyright © 2015 Philippe Léost & Philippe Troly.
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Complexité des Problèmes Combinatoires
METHODES GRAPHIQUES OBJECTIFS
* * * Ne pas cliquer Pour les yeux Pour les yeux.
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  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 ,

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

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

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.

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?

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.

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)

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

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

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

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

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 :

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.

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

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 b=« vrai »

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.

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.

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.

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.

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.

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?

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.

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)

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

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

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 :

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.

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