Complexité des Problèmes Combinatoires

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données avancés
Advertisements

Rappels de logique des prédicats du 1er ordre
IFT Complexité et NP-complétude
Algorithmes d ’approximation
D.E ZEGOUR Ecole Supérieure d’Informatique
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.
Cycle, Cocycle, Arbre et Arborescence
COMPLEXITE DES PROBLEMES COMBINATOIRES Master d’Informatique : spécialité IAD P. Chrétienne : Prof. Université Paris 6.
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Réalisé par : - Mohamed QUARCH Jury : - M.HASSNOUN - Mouad ARRAD - M.NADIR - El mehdi EL RHANDOURI - A.BAALAL Encadré par : - M.HASSNOUN année scolaire:2006/2007.
Les systèmes d'information 1- Une pratique quotidienne 2- Les données 3- Approche conceptuelle 4- Notion de serveur 5- Conception d'un système d'information.
Atelier 1 Le problème du surpoids sur géogébra. Etude de la prévalence du surpoids: (document Ressources pour la classe de terminale) Situation: On souhaite.
Algorithmique ‘’ Un algorithme est une suite finie et non-ambiguë d’instructions permettant de donner la réponse à un problème. ‘’ Niveau de difficulté.
Adressage IP Page 1 L’adressage IP.
Outils de Recherche Opérationnelle en Génie MTH 8414
Analyse, Classification,Indexation des Données ACID
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Pierre Joli Cours de Mathématique Pierre Joli
Représentation des nombres réels
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Algorithmiques Abdelbasset KABOU
Notions de base, connexité
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Semaine #1 INF130 par Frédérick Henri.
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
1°) Un nombre y est-il associé à 3, et si oui lequel ? 3 → ?
VI Graphes probabilistes
Activités mentales rapides Bilan sur le cours
1°) Un nombre y est-il associé à 3, et si oui lequel ?
Master Réseaux et Systèmes Distribués (RSD)
Algorithmique Avancée et Complexité Chap3:Diviser pour Régner
Techniques d’Optimisation Chapitre 2: Problème de flôt
Analyse en Composantes Principales A.C.P. M. Rehailia Laboratoire de Mathématiques de l’Université de Saint Etienne (LaMUSE).
DESSIN TECHNIQUE Té de dessin Collège technique Sousse Collège technique Sousse.
POL1803: Analyse des techniques quantitatives
Utiliser le théorème de Thalès
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Chapitre 2: Les équations et les inéquations polynômes
Techniques d’Optimisation Chapitre 3: Programmation en 0-1 (bivalente)
Calcul littéral 2.
LES PRINCIPES DE LA THERMODYNAMIQUE
Fonctions Logiques & Algèbre de BOOLE
Cours N°6: Algorithmiques Structures Conditionnelles
Information, Communication, Calcul
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
3g2 Théorème de Thales cours mathalecran d'après
Structure D’une Base De Données Relationnelle
Calcul Relationnel Chapitre 4, Section 4.3.
Module: Logique Mathématique. SOMMAIRE 1- Notions d’ensembles 2- Constructions d’ensembles 3- Cardinal d’ensembles 4- Relations d’ensembles ordonnées.
Calcul Scientifique Initiation à SCILB
La gestion des stocks (Modèle de Wilson).
Angles. I/ Vocabulaire et définitions 1°) Mises au point.
Algorithmique Avancée et Complexité
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
I Définition : Elle est définie ...
Arbres de décision.
Cycle, Cocycle, Arbre et Arborescence
SYSTèMES à évènements discrets
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
Preuves interactives: IP, AM, MA et isomorphisme de graphe
Position, dispersion, forme
1°) Un nombre y est-il associé à 3, et si oui lequel ?
Flowchart Itération Cours 04.
Programme d’appui à la gestion publique et aux statistiques
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
A. Zemmari SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste A. Zemmari.
Outils de Recherche Opérationnelle en Génie MTH 8414
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. 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 BA 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.

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.

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.

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

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.

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.

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.

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

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.

Propriétés de NP PNP 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.

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.

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.

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,   *

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

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:

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.

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 NP, la réduction f est polynomiale.

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

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

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 »

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.

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)=NP. Il en résulte que 3-SAT VC et que VC est NP-complet.