Successfully reported this slideshow.
Your SlideShare is downloading. ×

Complexité_ENSI_2011.ppt

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
prog_reg.pptx
prog_reg.pptx
Loading in …3
×

Check these out next

1 of 90 Ad
Advertisement

More Related Content

Recently uploaded (20)

Advertisement

Complexité_ENSI_2011.ppt

  1. 1. 1 Théorie de la Complexité H. Hasni Ecole Nationale des Sciences de l’Informatique Université de Manouba 2010 Campus Universitaire – Manouba E-mail : hamadi.hasni@ensi.rnu.tn
  2. 2. 2 Plan  Qu’est-ce que la complexité ?  Modèles Abstraits de Calcul  Machines de Turing  Problèmes de Décision  Classes de Complexité  Réductions de Problèmes  NP-Complétude  Exemples de Problèmes NP-Complets  Exemples de Réduction  P = NP ?  Que faire devant un Problème NP?  Classe de Complexité co-NP
  3. 3. 3 Introduction  La théorie de la complexité s’intéresse à l’étude formelle de la difficulté des problèmes en informatique.  Gödel (1932) : premier théorème d’incomplétude (toute théorie contient des énoncés non démontrables)  Turing, Church (1936) : réponse négative au problème de la décision (cf. machine de Turing et le problème de l’arrêt)  Edmonds (1965) : Distinction entre les problèmes P et NP Cook (1971)- Levin (1973) : NP – Complétude ( Problème SAT)  Karp (1972) : Liste de 21 nouveaux problèmes NP-Complet.  Aujourd’hui la conjecture P = NP ? fait partie des 7 problèmes du millénaire.
  4. 4. 4 Qu’est – ce que la complexité ?(1)  Question centrale de l’Informatique théorique :  Limites des Ordinateurs  Limites fondamentales indépendantes de la technologie  Peut-on identifier les problèmes de calcul qui sont hors de portée ?
  5. 5. 5 Qu’est – ce que la complexité ?(2) Taille n Algorithme Entrées Résultat Temps Espace Ressources Opérations élémentaires
  6. 6. 6 Qu’est – ce que la complexité ?(3)  Complexité:  En pratique, un algorithme consomme une quantité raisonnable de ressources de calcul :  Nombre d’opérations,  Temps de calcul  Quantités de mémoire  Complexité : quantité minimale de ressources nécessaire à sa résolution.
  7. 7. 7 Qu’est – ce que la complexité ?(4)  Les notions de temps de traitement, d’espace sont dépendant de la machine physique utilisée.  Besoin d’une mesure absolue indépendante de toute implémentation.  Facteurs de temps de calcul :  Taille de l’entrée  Ordinateur utilisé  Langage de programmation utilisé
  8. 8. 8 Modèles Abstraits de Calcul(1)  Théorie robuste indépendante de la machine  Nécessité de s’entendre sur des modèles de calcul (Modèles abstraits de Calcul ,1931)  Machine de Turing  Machine de Post  Fonctions récursives de Kleene  -calcul de Church  Machine RAM Tous ces modèles sont équivalents Remarque : Toutes les architectures de machines réelles sont équivalentes à la machine de Turing ( elles sont plus « puissantes » mais pas plus « expressives » )
  9. 9. 9  Formalisation de la notion de fonction calculable et d’algorithme. Approches équivalentes (machines de Turing, fonctions récursives, lambda calcul) et actuelles... Alan Turing Alonzo Church Stephen C.Kleene  Mise en évidence des limites : il existe des fonctions non calculables (et des problèmes indécidables) ! Modèles Abstraits de Calcul(2)
  10. 10. 10 Modèles Abstraits de Calcul(3)  Théorie de la Complexité :  Classification des problèmes suivant le temps et l’espace nécessaire à la résolution de l’instance la plus « dure » du problème sur un modèle théorique : machine de Turing.
  11. 11. 11 Machines de Turing  Machines de Turing  Définition : Une machine de TURING déterministe (MTD) est donnée par M = (Q, ,  , , q0 ,F) , où :  Q est un ensemble fini d’état,   est un alphabet     ( alphabet d’entrée),  F  Q est l’ensemble des états accepteurs   : D  Q x   Q x  x {L,R}, fonction de transition  q0 : état initial - Un symbole spécial B appelé caractère blanc - L et R représentent les 2 directions de déplacement de la tête de lecture - Une configuration est un élément de Q x * x IN (* : ensemble des mots)
  12. 12. 12 Machines de Turing (2)
  13. 13. 13 Machine de Turing (3) Une machine de Turing peut  S’arrêter :  Un état accepteur  Une configuration où  n’est pas définie  On ne peut pas déplacer la tête de lecture comme indiqué  Ne jamais s’arrêter
  14. 14. 14 Machine de Turing (4)  Machine de Turing Non Déterministe (MTND) :  Variante purement théorique jusqu’à l’arrivée des ordinateurs quantiques  Tout choix est fait au hasard :  Mais elles trouvent toujours le bon chemin!!!  On peut aussi considérer qu’elles se dupliquent à chaque décision, chacune partant sur une des « branches » d’exécution
  15. 15. 15 Machine de Turing (5)  Machine de Turing Non Déterministe (MTND) :
  16. 16. 16 Machine de Turing (6)  Machine de Turing Non Déterministe (MTND) :  Définition : Une machine de TURING non déterministe (MTND) est donnée par M = (Q, ,  , , q0 ,F) , où :  Q est un ensemble fini d’état,   est un alphabet     ( alphabet d’entrée),  F  Q est l’ensemble des états accepteurs   : D  Q x   P (Q x  x {L,R}), fonction de transition  q0 : état initial
  17. 17. 17 Décidabilité – Calculabilité (1)  Un langage est accepté par une machine de Turing s’il existe une machine de Turing qui accepte dans un temps fini tous les mots du langage.  Un langage est décidé par une machine de Turing s’il existe une machine de Turing qui accepte le langage et qui s’arrête toujours.
  18. 18. 18 Décidabilité – Calculabilité (2)  Un langage est dit récursif s’il est décidé par une machine de Turing.  Un problème est décidable s’il existe une machine de Turing s’arrêtant toujours autrement il est dit indécidable
  19. 19. 19 Décidabilité – Calculabilité (4)  On appelle équation diophantienne une équation du genre P(x, y, z, ...) = 0, où P est un polynôme à coefficients entiers. Résoudre une telle équation, c'est chercher les solutions sous forme d'entiers. L’équation x2 + y2 – 1 = 0 est une équation diophantienne qui admet pour solutions: x = 1, y = 0 et x = 0, y = 1  L'équation x2 – 991 y2 – 1 = 0 est également diophantienne mais a des solutions beaucoup plus difficiles à trouver la plus petite est :  x = 379 516 400 906 811 930 638 014 896 080 et  y = 12 055 735 790 331 359 447 442 538 767
  20. 20. 20 Décidabilité – Calculabilité (5)  Problème de l’arrêt (proposé par A. Turing 1936) :  Soit un programme informatique et une entrée à ce programme, déterminez si ce programme va terminer sur cette entrée ou continuer à s’exécuter indéfiniment  Théorème : Le problème de l’arrêt est indécidable  Preuve ( par contradiction) :  Soit un algorithme A qui résout le problème de l’arrêt. Dans ce cas, pour tout programme P et une entrée E, nous avons: A(P,E) = 1 si P termine sur E 0 si P ne termine pas sur E
  21. 21. 21 Décidabilité – Calculabilité (6)  Preuve (suite)  Tout programme P peut être utilisé comme entrée à lui même  Utilisons l’algorithme A sur (P,P) pour construire un programme Q ayant la propriété suivante :  Q(P) termine lorsque A(P,P) = 0 ( lorsque P ne termine pas sur P)  Q(P) ne termine pas lorsque A(P,P) = 1 (lorsque P termine sur P)  Si nous utilisons Q comme entrée sur lui-même nous obtenons:  Q(Q) termine lorsque A(Q,Q) = 0 (lorsque Q ne termine pas)  Q(Q) ne termine pas lorsque A(Q,Q) = 1 (lorsque Q termine sur Q  Un tel programme Q ne peut exister. Il en va donc de même pour l’algorithme A. CQFD
  22. 22. 22 Décidabilité – Calculabilité (7)  Le problème avec 196 Etant donné un entier positif, renversez les chiffres et ajoutez les au nombre. Recommencez tant que vous n’avez pas trouvé un palindrome. Par exemple pour 5280 on trouve :  5280 + 825 = 6105  6105 + 5016 = 11121  11121 + 12111 = 23232  En général pour n’importe quel nombre cet algorithme s’arrête rapidement.  Personne ne sait si cet algorithme se termine pour 196. Cependant on sait qu’il y a au moins 9 millions d’itérations.
  23. 23. 23 Décidabilité – Calculabilité (8)  La fonction 3x+1 : La fonction de Collatz est définie ainsi : Si x = 1 on s’arrête. Si x est impair, alors x = 3x + 1, si x est pair alors x = x/2. Par exemple pour 7 on trouve :  7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1  Personne ne sait si pour un nombre x le programme s’arrête ou pas.  http ://www.cs.princeton.edu/introcs/77computability/.
  24. 24. 24 Décidabilité – Calculabilité (10) Thèse de Church – Turing : Un langage est calculable si ce langage est récursif i.e. décidé par une machine de Turing
  25. 25. 25 Complexité Algorithmique  Complexité temporelle pire cas d’une machine de Turing : nombre maximal de déplacements de la tête de lecture/écriture pour résoudre une instance de taille maximale n  La taille de l’instance est la longueur de la séquence binaire codant cette instance comme une entrée de la machine de Turing  Complexité spatiale pire cas : longueur de bande nécessaire à la machine pour résoudre une instance de taille n
  26. 26. 26 Problèmes de Décision (1)  Un problème désigne la description générale d’une question.Par exemple : Trouver un facteur non trivial d’un entier  Résoudre un problème : essayer de décrire un algorithme (par exemple à formaliser par une machine de Turing)  Un problème de décision (d’existence ou de reconnaissance) consiste à chercher dans un ensemble fini s’il existe un élément vérifiant une certaine propriété.  Un problème de décision peut être formulé par un énoncé et une réponse Oui – Non
  27. 27. 27 Problèmes de Décision (2)  La forme générale d’un problème de décision :  Une description de l’instance du problème  L’expression d’une question Oui/non portant sur cette instance  Exemples :  Voyageur de Commerce ( TSP) :  Données : un graphe complet d’ordre n valué par des entiers positifs et un entier k  Question : Existe –t- il dans le graphe un cycle hamiltonien de longueur  k ?
  28. 28. 28 Problèmes de Décision (3)  Exemples :  Clique :  Données : un graphe et un entier positif k  Question : G contient –t-il un sous-graphe complet à k sommets ?  Recouvrement ( Set Cover ):  Données : Un ensemble X et une famille f de sous-ensembles de X  Question : Existe –t-il une sous – famille f’ de f telle que tout élément de X appartient exactement à un élément de f ?
  29. 29. 29 Problèmes de Décision (4)  Notations : soit D l’ensemble des instances possibles d’un problème de décision   Y : sous-ensemble des instances pour lesquelles la réponse est Oui (Yes)  N : sous-ensemble des instances pour lesquelles la réponse est Non (No)
  30. 30. 30 Problèmes de Décision (5)  Lien entre Problème de Décision et Langages:  Fonction de codage C : traduction d’une instance en un mot sur un alphabet.  Une machine de Turing M résout le problème décision  , sous le codage C, si M s’arrête sur toute entrée x et si l’ensemble des mots acceptés par M est égal à l’ensemble L[, c]de mots qui résultent du codage d’instance de Y .
  31. 31. 31 Problème de Décision (7)  Codage des entiers positifs :  Codage binaire efficace : i est codé par la séquence   1 , 0 0 2 .     k i avec n k k k i i La longueur l1(i) des codes de i est de l’ordre de Log2(i)  Codage binaire inefficace : i est codé par une séquence de 1 de longueur i La longueur l2(i) des codes de i est de l’ordre de 2 l 1 (i)
  32. 32. 32 Problème de Décision (8)  Codage d’un graphe  Liste des sommets/liste des arêtes : x[1] x[2] x[3] x[4](x[1] x[2])(x[1] x[3])(x[2] x[3])(x[3] x[4]) |G(X,E)| = O( n + m) Liste des voisins : (x[2] x[3])(x[1] x[3])(x[1] x[2] x[4])(x[3]) |G(X,E)| = O(m) Matrice d’adjacence : 0110/1010/1101/0010 , |G(X,E)| = O(n2) Notation: |G(X,E)| la taille de codage de G , |X|= n et |E|= m Encodage Chaîne
  33. 33. 33 Classes de Complexité (1)  Complexité en temps d’une machine de Turing s’arrêtant toujours : TM(n) = Max {m /  x * , |x| = n et l’exécution de M sur x comporte m étapes }  La classe P est la la classe des langages décidés par une machine de Turing polynomiale i.e  un polynôme p(n) tel que : TM  p(n) pour tout n  0
  34. 34. 34 Classes de Complexité (2)  Le temps de calcul d’une machine de Turing ND sur un mot w est donné par :  La longueur de la plus courte exécution acceptant le mot si celui-ci est accepté.  La valeur 1 si le mot w n’est pas accepté  Complexité en temps d’une machine de Turing non déterministe TMND(n) = Max {m /  x * , |x| = n et le temps de calcul de M sur x est m}
  35. 35. 35 Classes de Complexité (3)
  36. 36. 36 Classe de Complexité (3)  La classe NP ( Non déterministe Polynomiale) est la classe des langages acceptés par une machine de Turing non déterministe polynomiale  Solution rapide si l’énumération des cas ne coûte rien  Exemple : Circuit hamiltonien (HC)
  37. 37. 37 Classe de Complexité (4) Exemple : Circuit Hamiltonien  Un circuit hamiltonien est un chemin de G passant une et une seule fois par chacun des sommets et revenant à son point de départ  Un graphe biparti d’ordre impair n’a pas de circuit hamiltonien.
  38. 38. 38 Classe de Complexité (5)  Théorème : Soit L  NP. Il existe une machine de Turing déterministe M et un polynôme p(n) tel que M décide L et est de complexité en temps bornée par 2p(n) ( Simuler toutes les exécutions de MND)
  39. 39. 39 Classe de Complexité (6)  Preuve :  Soit une MTND de complexité polynomiale q(n) qui accepte L. Simuler toutes les exécutions de MTND de longueur inférieure à q(n). Pour un mot w, la machine doit:  1. Déterminer la longueur n de w et calcule q(n) . polynôme  2. Simuler chaque exécution de MTND de longueur q(n) (temps nécessaire q’(n)).Si r est le nombre maximum de choix possibles de MTND à chaque étape de son exécution, il y a au plus r q(n) exécutions de longueur q’(n)  3. Si une des exécution simulées accepte, M accepte. Sinon M s’arrête et rejette le mot w  Complexité bornée par rq(n) x q’(n) et donc par 2 log2(r)(q(n)+q’(n)) qui de la forme de 2p(n)
  40. 40. 40 Classe de Complexité (6)  Pour Prouver qu’un problème est dans NP :  Proposer un codage de la solution ( certificat)  Proposer un algorithme vérifiant la solution au vu des données et du certificat  Montrer que cet algorithme a une complexité polynomiale.
  41. 41. 41 Classe de Complexité (8)  Exemples  Voyageur de commerce  Certificat : indication d’un circuit de longueur inférieur à k  Clique :  Certificat : indication de k sommets du graphe d’entrée constituant une clique  Recouvrement : indication d’un sous-famille vérifiant la propriété demandée
  42. 42. 42 Classe de Complexité (9)  Un grand nombre des problèmes de NP est que, on ne sait pas dire, s’ils sont ou non polynomiaux.  On ne sait pas produire une solution polynomiale,  On ne sait pas non plus démontrer que le problème est non polynomial  Que faire ?  Comparer la difficulté du problème NP considéré à celle d’autre problèmes NP.  Réduction d’un problème à un autre
  43. 43. 43 Classe de Complexité (9)  Equivalence entre Problèmes
  44. 44. 44 Réduction de Problèmes (1)  Transformations (Réductions) polynomiales  Définition : Soient un langage L1 et un langage L2. Une transformations polynomiale de L1 vers L2 (notée L1 p L2) est une fonction f qui satisfait les conditions suivantes:  Elle est calculable en temps polynomial,  f(x)  L2 si et seulement si x  L1  Conséquence : Si L2  P alors L1 est au plus aussi difficile que L2
  45. 45. 45 Réduction de Problèmes (2) Soit G (X,E ) un graphe d’ordre n  G est un graphe complet si :  x1 et x2X : {x1,x2} E  S  X est un stable de G si :  x1 et x2S : {x1,x2} E  T  X est un transversal (couverture) de G si:  e = {x1,x2} E : x1T ou x2 T
  46. 46. 46 Réduction de Problèmes (4)  Stable ( Independant Set):  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Décider s’ un stable S  X , S k  Clique  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Décider s’ une clique C  X , S  k
  47. 47. 47 Exemples de Réductions (7)  CLQ <p IS.  Pour le démontrer formellement, on veut définir une fonction f permet de transformer en temps polynomial chaque instance G, k du problème Clique en une instance f(G, k) = G’, k’ du problème Ensemble Indépendant de telle sorte que G, k  CLQ  G’, k’  IS.
  48. 48. 48 Exemples de Réductions (7) Instance de CLQ: Graphe G = (V,E) Entier k Instance de IS: Gc = (V,Ec), graphe complément de G. Entier k (inchangé) Transformation f  CLQ p IS.
  49. 49. 49 Exemples de Réductions (8) À montrer: 1. f est calculable en temps polynomial. 2. G,k  CLQ  G c,k  IS. Un ensemble de sommets forme une clique dans G ssi il forme un ensemble indépendant dans G c. évident
  50. 50. 50 Réduction de Problèmes (2)  Propriétés de  p :  Si L1  p L2 alors  Si L2 P alors L1 P  Si L1 P alors L2  P  Si L1  NP alors L2  NP  Si L1  p L2 et L2  p L3  L1  p L3
  51. 51. 51 Réduction de Problèmes (3)  Problèmes polynomialement équivalents  Définition: Deux langages L1 et L2 sont polynomialement équivalents (L1 p L2) si et seulement si L1  p L2 et L2  p L1  Classes d’équivalence polynomiale : soit tous les membres sont dans P, soit aucun.  Possibilité de construire une classe d’équivalence de proche en proche.
  52. 52. 52 Réduction de Problèmes (4)  Structure de NP:  Définition : Une classe d’équivalence polynomiale C1 est inférieure à une classe d’équivalence C2 ( notation C1 C2 ) si  L1  C1 et L2  C2 : L1  p L2  P  NP ( P est la plus petite classe dans NP)   L1 P et  L  NP on a L1  p L2  Plus grande classe de NP : NP-Complets (noyau dur)
  53. 53. 53 NP-Complétude (1)  Langage NP-Complet :  Définition : Un langage L est NP-Complet si  L  NP   L’  NP alors L’  p L ( Problème NP-Dur)  Théorème : Soit L un langage NP-Complet, L  P si et seulement si P = NP  Un problème NP-Complet n’a de solution polynomiale que si et seulement si P = NP
  54. 54. 54 NP-Complétude (2)  Problème de Satisfiabilité (SAT):  Données :  Un ensemble de variables booléennes {x1,x2,…xn}  Un ensemble de clauses Ci = {y i,1  …… y i,r} où yi,j est égal à l’un des xi soit à l’un des xi  F = C1  C2  . . . .  Cm  Résultat : Décider si F est satisfaisable (vraie)par une affectation de valeurs de vérité V/F aux variables
  55. 55. 55 NP-Complétude (4) Théorème de Cook - Levin  Théorème : SAT est NP-Complet En d'autres termes, tout problème de décision décidable par une machine de Turing non déterministe polynomiale peut être réduit en temps polynomial au problème SAT.  Idée de la preuve : On construit en temps polynomial un ensemble de clauses satisfaisables si et seulement si il existe une branche de l'exécution de la MTND qui s'arrête sur « oui ». Notions similaires : Edmonds(1966) mais aussi Gödel (1956 - Lettre à Von Neumann).
  56. 56. 56 SAT & Co  Problème k – SAT :  Données :  Un ensemble de variables booléennes {x1,x2,…xk}  Un ensemble de clauses Ci = {y i,1  …… y i,k} où yi,j est égal à l’un des xi soit à l’un des xi ( Ci = k )  F = C1  C2  . . . .  Cm  Résultat : Décider si F est satisfaisable par une affectation de valeurs de vérité V/F aux variables
  57. 57. 57 Problèmes de Graphes NP-Complets (2) Soit G (X,E ) un graphe d’ordre n :  est le graphe complémentaire de G : {x1,x2} E  {x1,x2}  F  S est une clique de G  S est sous-graphe complet de G  S est une clique G (X,E )  S est stable de   F X G ,   F X G ,
  58. 58. 58 Problèmes de Graphes NP-Complets (3) Une coloration des sommets de G (X,E) est une application : C : X IN telle que C(v) ≠ C(w)  {v,w} E  Une k - coloration est une coloration utilisant k couleurs  Le nombre chromatique (G) est défini par (G) = Min { k / G est k –colorable} G =3
  59. 59. 59 Problèmes de Graphes NP-Complets (5)  Couverture de Sommets ( Vertex Cover):  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Décider s’ transversal T  X , S  k  Coupure maximale ( Max Cut)  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Décider s’ une partition X = X1 X2 telle que : |{{x1,x2} E / x1 X1 et x2 X2 } |  k
  60. 60. 60 Problèmes de Graphes NP-Complets (6)  Circuit Hamiltonien ( HC):  Données :  Un graphe G(X,E) non orienté  Résultat : Existe-il un circuit hamiltonien dans G  Circuit le plus long  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Existe –il un cycle hamiltonien et dont la longueur est  k ?
  61. 61. 61 Problèmes de Graphes NP-Complets (7)  Voyageur de Commerce (TSP)  Données : un couple ( n,M) où M est une matrice d’ordre n de réels et un réel B  Réponse : Existe-t-il une permutation  de [1,n] telle que: Allemagne ( 15 112 cités)
  62. 62. 62 Problèmes de Graphes NP-Complets (8)  k – Coloration ( k- Color)  Données :  Un graphe G(X,E) non orienté  Un entier k  Résultat : Existe t-il une k-coloration de G ?
  63. 63. 63 Somme de Sous-ensemble & Variantes (1)  Somme de sous-ensemble ( Subset Sum)  Données : E  IN , fini et un but t  IN  Réponse : Existe-t-il E’  E tel que : ? '    E x t x
  64. 64. 64 Somme de Sous-ensemble & Variantes(2)  Sac à Dos ( KnapSack)  Données :  Un ensemble de poids ai , i = 1,n  Un ensemble de valeurs vi , i =1,n  Un poids limite A et entier V  Réponse : Existe-t-il une suite ci  {0,1}telle que : ? 1 1 V v c et A a c n i i i n i i i      
  65. 65. 65 Somme de Sous-ensemble & Variantes (3)  Partition  Données :  Un ensemble A fini d’entiers  Réponse : Existe-t-il A’  A tel que : ? ' '       A A x A x x x
  66. 66. 66 Somme de Sous-ensemble & Variantes (4)  Rangement Optimal ( Bin Packing)  Données :  N objets de poids si  Une capacité B et un entier k  Réponse : Est-il possible de ranger les N objets dans k boîtes de capacité B ?
  67. 67. 67 Programmation Entière  Programmation entière 0-1  Données:  Une matrice entière A (m,n)  Un vecteur entier b d’ordre m  Réponse : Existe-t-il un vecteur x d’ordre dont les éléments sont pris dans {0,1} tel que : A x  b ?
  68. 68. 68 Exemples de Réductions (1) 3-Sat  p Stable  3-Sat  p 3-Color HC  p Circuit le + long VC  p Subset-Sum Subset-Sum  p KnapSack Subset-Sum  p Partition 3-Sat  p Prog. Entière Partition  p Bin Packing
  69. 69. 69 Exemples de Réduction (2)  3-SAT est NP  Soit I une instance de 3 –SAT , taille (I) = O( n+p)  Certificat : valeur de chaque xi , i = 1, n  Vérification en O(p)  3 – SAT est NP-Dur : réduction à partir de SAT  Soit I1 une instance de SAT  n variables xi , i = 1, n  p clauses Cj , j=1,p de longueur f(j)  Taille(I1) = O( n +  f(j) )
  70. 70. 70 Exemples de Réduction (3)  Soit Ci une clause de SAT :  1 variable x : soient ai et bi deux nouvelles variables  x  ai  bi ; x  ai  bi ; x  ai  bi ; x   ai  bi  2 variables x et y : soit ci une nouvelle variable :  x  y  ci ; x  y   ci  3 variables : aucun changement  k  3 variables : soit Ci = {x1  ……  xk} et soient yi,1 ,…… y i,,k- 3 ( k-3) nouvelles variables  x1  x2  yi,1 ;  x3   yi,1  yi,2 . . . . . . .  xk -2   yi,k - 4  yi,k – 3 et xk -1   yi,k - 3  x,k
  71. 71. 71 Exemples de Réduction (4)  Taille (I2) linéaire en taille(I1) ,  () Si I1 a une solution i.e. une instanciation des variables xj telle que  j Cj soit vraie.  Une solution pour I2 est :  xj inchangée  ai vrai  bi faux  ci vrai  Soit z1 ,…… zk des littéraux et zi le 1er littéral vrai alors on pose z1 ,. . ., zi-2 à vrai et zi-1 ,…… zk-3 à faux.  () si I2 a une solution :  Instanciation de I2 vraie restreinte aux xj i=1,n donne une instanciation qui satisfait I1
  72. 72. 72 Exemples de Réduction(5)  Données: graphe G = (X,E) et un k  |X|.  Clique (CLQ): Existe-t-il C  X avec |C|  k et (u,v)  E pour tous u,v  C?  Ensemble indépendant (IS): Existe-t-il C  X avec |C|  k et (u,v)  E pour tous u,v  C?  Couverture par sommets (VC): Existe-t-il C  X avec |C|  k et tel que pour tout (u,v)  E, on a u  C ou v  C?
  73. 73. 73 Exemples de Réductions (6) Théorème: CLQ p IS p VC.  Idée: montrer que ces trois problèmes ne sont que des reformulations les uns des autres.  L’existence d’une grande clique est équivalente à l’existence d’un grand ensemble indépendant dans le complément du graphe.  L’existence d’un grand ensemble indépendant est équivalente à l’existence d’une petite couverture par sommets.
  74. 74. 74 Exemples de Réduction (9) Instance de IS: Graphe G = (V,E) Entier k Instance de VC: G = (V,E) (inchangé) Entier |V| - k Transformation f  IS p VC.
  75. 75. 75 Exemple de Réduction (10) À montrer: 1. f est calculable en temps polynomial. 2. G,k  IS  G, |V| - k  VC. a)  G,k   IS   G, |V| - k   VC: Si V’ est un IS de taille k, alors toutes les arêtes de E ont au moins une extrémité dans V – V’. Donc V – V’ est une VC de taille |V| - k. b)  G,k   IS   G, |V| - k   VC: Si V’ est une VC de taille |V| - k, alors V – V’ est un IS de taille k. évident
  76. 76. 76 Exemples de Réduction (11) 3-SAT p IS Instance de 3-SAT  Variables X = x1, …, xn m clauses Cj = l1j  l2j  l3j Instance de IS : Graphe G = (V,E) Occurrence d’un littéral  sommet dans G. Arête entre deux sommets lij, li’j’ si les littéraux sont dans une même clause ou si sont contradictoires Entier m (nombre de clauses)
  77. 77. 77 Exemples de Réduction (12) 3 2 1 x x x   4 3 2 x x x   4 2 1 x x x   2 x 1 x 2 x 3 x 4 x 4 x 1 x 2 x 3 x La transformation se fait en temps O(m2). (borne supérieure de |E|). Reste le plus dur : montrer que   3-SAT  G, m  IS.
  78. 78. 78 Exemple de Réduction (13) Étape 1:   3-SAT  G, m  IS x1 = 0, x2 = 1, x3 = 0, x4 = 1 3 2 1 x x x   4 3 2 x x x   4 2 1 x x x   2 x 1 x 2 x 3 x 4 x 4 x 1 x 2 x 3 x  Chaque clause contient un littéral dont la valeur est 1 (Vrai). Les sommets correspondants forment un IS de taille m car les littéraux correspondants sont de clause différentes et non- contradictoires
  79. 79. 79 Exemples de Réduction (14) Étape 2: G, m  IS    3-SAT x1 = 1, x2 = 1, x3 = 0, x4 = 1 3 2 1 x x x   4 3 2 x x x   4 2 1 x x x   2 x 1 x 2 x 3 x 4 x 4 x 1 x 2 x 3 x
  80. 80. 80 P = NP ? (1)  La question « P = NP ? » signifie à peu près : « Ce que nous pouvons trouver rapidement lorsque nous avons de la chance, peut-il être trouvé aussi vite par un calcul intelligent ? ».  Une autre formulation est : « Tout ce que l'on peut vérifier facilement, peut-il être découvert aisément...
  81. 81. 81 P = NP ? (2)  Les problèmes vérifiables en temps polynomial sont-ils aussi décidables en temps polynomial ?  Autrement dit, existe- t- il des problèmes dont les solutions sont faciles à vérifier mais sont dures à trouver ?  Montrer P = NP : Montrer que tous les problèmes de NP sont dans P.
  82. 82. 82 Liste de Garey & Johnson Théorie des graphes (65 problèmes) 3-COL, domination, cycle Hamiltonien, etc. Conception de réseau (51) TSP, Max-cut, plus long chemin, etc. Ensembles et partitions (21) Formation d’équipes, partition Logique (19), Planification (22), archivage (36), programmation mathématique (13), algèbre (18), jeux et puzzles (15), automates et langages (21), optimisation de code (20), autres (19) Problèmes qu’on n’arrive à placer ni dans P ni NP-complets . Plus que 3!
  83. 83. 83 Que faire face à un problème NP?(1)  Si on a à résoudre un problème NP, on a les deux options suivantes :  Soit le problème est facile et on cherche à exhiber une résolution polynomiale,  Soit que le problème est difficile et on cherche à démontrer qu’il est NP-Complet (par réduction).
  84. 84. 84 Que faire face à un problème NP?(2)  Si on a à résoudre un problème NP-Complet, on peut :  Chercher à donner une résolution polynomiale  Vérifier que l’on est pas, intéressé par une instance polynomiale  Appliquer des schémas de résolution algorithmique efficaces  Diviser pour régner  Programmation Dynamique  Mettre en œuvre des algorithmes approchés, avec garantie de performance.  Utiliser des approches à base de machines parallèles
  85. 85. 85 Classe de Complexité Co-NP (1)  Les problèmes de P ont des solutions faciles à trouver (algorithmes polynomiaux)  Les problèmes de NP ont des solutions faciles à vérifier  Puisqu’on est autoriser à « regarder » la réponse,  Comment un problème peut ne pas appartenir à NP ?
  86. 86. 86 Classe de Complexité Co-NP(2)  Exemple :  Données : un couple ( n,M) où M est une matrice d’ordre n de réels et un réel B  Réponse : Est –il vrai qu’il n’existe pas une permutation  de [1,n] telle que : Ce problème appartient – il à NP ?
  87. 87. 87 Classe de Complexité Co-NP (3)  Complémentaire d’un problème de décision  noté C :  D C = D  Y C = N  N C = Y  P = co-P  Définition : La classe Co –NP est l’ensemble des compléments des langages appartenant à NP i.e. Co-NP = { L / LC  NP }
  88. 88. 88 Classe de Complexité Co-NP (4)  Données : G(X,E) un graphe  Résultat : G est –il hamiltonien ?  Ce problème appartient à Co-NP  Appartient – il à NP ?
  89. 89. 89 Classe de Complexité Co-NP (5)  Théorème : Soit L NP- complet, si LC est NP alors co-NP = NP  Conjecture : NP  co-NP  Théorème : Si NP  co-NP alors P  NP
  90. 90. 90 Relations entre les classes de Complexité

×