1 / 52

Séminaire Florin Périer Alain Gély LIMOS

Séminaire Florin Périer Alain Gély LIMOS. Alain Gély ( gely@isima.fr ) - 2004 . WANTED. P = NP. ?. La complexité en informatique. Quelques problèmes. Un nombre N est-il divisible par 4 ?. Soit une série de nombre, trier ces nombres.

ruana
Download Presentation

Séminaire Florin Périer Alain Gély LIMOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Séminaire Florin PérierAlain GélyLIMOS Alain Gély (gely@isima.fr) - 2004

  2. WANTED P = NP ?

  3. La complexité en informatique

  4. Quelques problèmes • Un nombre N est-il divisible par 4 ? • Soit une série de nombre, trier ces nombres • Soit le problème classique de la tour de Hanoi, afficher la liste des mouvements nécessaires pour le résoudre. • Un voyageur de commerce désire faire sa tournée, existe-t-il une tournée de moins de 50 km ?

  5. David Hilbert& son problème n°10 • 1862 - 1943 • Liste des 23 problèmes de Hilbert (1900) • Problème numéro 10 : « Trouver un algorithme déterminant si une équation diophantienne à des solutions »

  6. Alonzo Church & le -calcul • 1903 - 1995 • Résultat sur la calculabilité • Développement du lambda-calcul • 1936 : Démontre l’existence d ’un problème indécidable • Thèse de Church

  7. Kurt Godël • 1906 - 1978 • Théorème d ’Incomplétude « pour tout système formel S contenant le langage de l'arithmétique, il existe une proposition G indémontrable dans S »

  8. La complexité en informatique (Et aussi un peu de calculabilité / décidabilité)

  9. Taille n Temps Ressources Espace Evaluation d’un algorithme Opérations élémentaires Entrées Résultat Algorithme

  10. Exemple : codage d ’un graphe v1 v2 v3 v4 Le codage des données Utilisation d ’un codage raisonnable • Pour un problème I, on demande 2 caractéristiques à un codage raisonnable : • Il doit être concis, sans informations inutiles • Les nombres doivent être représentés dans une base différente autre que la base 1 (binaire, octal, décimal, etc.)

  11. Comportement asymptotique des fonctions Notation O : O(g(n)) = {f(n) : il existe des constantes positives c et n0 tel que 0  f(n)  c.g(n) pour tout n  n0} f Notation  :  (g(n)) = {f(n) : il existe des constantes positives c et n0 tel que 0  c.g(n)  f(n) pour tout n  n0} Notation  : (g(n)) = {f(n) : il existe des constantes positives c1 et c2, et n0 tel que 0 c1.g(n)  f(n)  c2.g(n) pour tout n n0}

  12. Notation O - exemples

  13. O(n2) O(n) Exemple de complexité - Tri Entrée : T, un tableau de n nombres Sortie : T, le tableau trié Pour j allant de 2 à longueur(T) faire X  T[j] i j-1 Tant que i>0 et A[i]>X faire A[i+1]  A[i] A[i+1]  X O(1) O(1) O(1) O(1)

  14. Donald Knuth • 1938 - • The art of computer programming

  15. Evolution du temps d'exécution en fonction de la complexité

  16. Augmentation de la puissance des machines Taille d ’un problème traitable en une heure

  17. Complexité polynomiale et exponentielle De manière informelle, un problème disposant d ’un algorithme polynomial pour le résoudre est un problème facile Polynomial Exponentiel Facile Difficile

  18. Problèmes &Classes de complexités

  19. Alan Matheson Turing& La machine de Turing • 1912 - 1954 • Inventeur de la Machine de Turing

  20. Controleur d'états finis Controleur d'états finis Tête de lecture / écriture 1 0 1 -1 -0 1 2 3 i-1 i i+1 Machine de Turing Déterministe  = {0,1,b}

  21. Un nombre N est-il un multiple de 4 ? Un problème de décision est un problème pour lequel la réponse est dans l ’ensemble { OUI - NON } Un voyageur de commerce désire faire sa tournée, existe-t-il une tournée de moins de 50 km ? Classes de Complexité Problème de décision Exemples

  22. Tête de lecture / écriture Controleur d'états finis Classes de Complexité Problème de décision & langage accepté par une machine de Turing  l ’ensemble des symboles pouvant être écrit par l ’utilisateur sur le ruban *l ’ensemble des mots du langage sur l ’alphabet LM = { x  * : M accepte x } Résoudre le problème revient à savoir si x  LM

  23. P

  24. Un problème est dans P s ’il existe un algorithme en temps polynomial pour le résoudre La classe P P = {L : il existe un programme M en temps polynomial sur une machine de Turing Deterministe pour lequel LM=L}

  25. P = co-P La classe co-P La classe co-P est le complémentaire de P • Pour un problème donné de P, • on montre facilement qu ’il est dans co-P : • On échange les réponses OUI et NON • Pour un problème de co-P, • on montre facilement qu ’il est dans P (idem)

  26. NP

  27. Tête de lecture / écriture Guessing module Tête d’écriture Controleur d'états finis 1 0 1 -1 -0 1 2 3 i-1 i i+1 Machine de Turing Non Déterministe

  28. Il existe un algorithme non déterministe en temps polynomial permettant de résoudre L. Il existe un algorithme déterministe en temps polynomial permettant de vérifier une solution de L. La classe NP NP = {L : il existe un programme M en temps polynomial sur une machine de Turing Non Deterministe pour lequel LM=L}

  29. Exemple de problème de NP Le voyageur de commerce • Un voyageur de commerce désire faire sa tournée, existe-t-il une tournée de moins de 50 km ? 10 b a-b-e-c-d-a 50km a 10 10 40 20 10 d 10 10 c 12 10 e

  30. NP et co-NP ? Problème du circuit hamiltonien Un graphe est-il hamiltonien ? Un graphe n’est-il pas hamiltonien ? Ce problème  NP Ce problème  co-NP Est-ce que ce problème  NP ?

  31. NP P=NP ? P P et NP Résultat le plus général : Si NP, alors il existe un polynôme p tel que  peut être résolu par un algorithme déterministe avec une complexité de O(2p(n))

  32. ||p(n) p(n) || Espace des solutions (exponentiel) P et NP Donald devra prendre tous les papiers de la boite avant de trouver le bon Gontran trouvera immédiatement le bon papier Machine de Turing Déterministe Machine de Turing non Déterministe

  33. Une transformation polynomiale • d’un langage L1 1* vers un langageL2 2* est une fonction • f:1* 2* qui vérifie les deux conditions : • il existe une machine de Turing Déterministe qui calcule f en temps polynomial • Pour tout x1* xL1ssi f(x)  L2 f L1 L2 f Problème 2 Problème 1 OUI OUI NON NON Transformation polynomiale

  34. Si L1 << L2 alors L2 P implique que L1 P Si L1 << L2 alors L1 P implique que L2 P Si L1<< L2 et L1<< L2 on dit que L1 et L2 sont polynomialement équivalent Transformation polynomiale On note L1 << L2 s ’il existe une transformation polynomiale de L1 vers L2 A quoi ça sert ? Si le problème 2 est facile, le problème 1 est facile Si le problème 1 est difficile, le problème 2 est difficile

  35. NPI P, NP, NP-Complet •   NP-Complet ssi •   NP •  1NP, 1 <<  NP NPC P Si P <> NP

  36. Stephen Cook« SAT est NPC » • Théorème de Cook : « SAT est NPC » (1971) • Reçoit le Turing Award en 1982 pour ce papier

  37. Le théorème de Cook (1) « SAT  NPC » (Cook71) • U = {u1,u2,…,um} un ensemble de variables booléennes. • Pour u U, • le litteral u est vrai si t(u)=T • le litteral u est vrai si t(u)=F • Une clause est un ensemble de littéraux, ex : {u1,u2,u3} • Une clause est satisfaite si au moins un de ses littéraux est vrai • Une collection de clause est satisfaite s ’il existe une affectation de variables permettant de satisfaire simultanément, chacune des clause de la collection.

  38. Le théorème de Cook (2) Exemples • C = { (u1,u2) , (u1,u2)} est satisfiable • t(u1) = Vrai, t(u2) = Vrai. • C = { (u1,u2) , (u1,u2), (u1) } n ’est pas satisfiable

  39. Le théorème de Cook (3) « SAT  NPC » (Cook71) • SATISFIABILITY • INSTANCE : • Un ensemble U de variables booléenne • Une collection C de clauses définies sur U • QUESTION : • Existe-t-il une assignation de variables satisfaisant C ?

  40. Le théorème de Cook (4) 1) SAT  NP • Un algorithme non déterministe a seulement besoin de deviner une assignation satisfaisant C. • La vérification de cette assignation est clairement polynomiale. • La première condition pour appartenir à NPC est vérifiée.

  41. Pbm Il y a une énorme diversité de langages dans NP… Faire une transformation pour chacun d ’entre eux est une tache titanesque ! Solution à chaque langage correspond un machine de Turing, boite noire : Une machine de Turing générique Le théorème de Cook (5) 2) L  NP, L << SAT Retour au niveau des langages : LSAT=[SAT,e] Il faut montrer L << LSAT pour tous les langages de NP M , , b, Q, q0, qY, qN et  p(n)

  42. SAT 1 Le théorème de Cook (6) fL va être décrite en fonction de , , b, Q, q0, qY, qN, et p fL L LSAT

  43. Utilisation d ’un nombre limité de variables 1 Le théorème de Cook (7) • Remarque n°1 • A chaque instant, on peut caractériser le système par : • contenu des cases • Position de la tête de lecture/écriture • Etat Courant Idée directrice montrer comment un ensemble de clauses peut être utilisé pour vérifier si une entrée x est acceptée par M Remarque n°2 il n ’y a pas plus de p(n)+1 instants distincts

  44. Q[i,k] Au temps i, M est dans l ’état qk Au temps i, la tête L/R est sur la case j H[i,k] Au temps i, la case j contient le symbole sk S[i,j,k] Le théorème de Cook (8) Mise en place des variables booléennes • fL va construire un ensemble de variable U tel que • label des éléments de Q : q0, q1=qY, q2=qN, q3, …, qr(avec r=|Q|-1) • label des éléments de  : s0=b, s1, s2, …, sv(avec v=||-1)

  45. Clauses à rajouter Le théorème de Cook (9) Affectations de variables & acceptation du langage Clairement, à un langage L accepté par M correspond une affectation des variables précédentes. Mais, à une affectation arbitraire des variables ne correspond pas forcément une exécution de M.

  46. Le théorème de Cook (10) Clauses à rajouter À chaque instant • La machine de Turing ne peut avoir qu’un seul état • La tête de L/E ne peut lire qu’un symbole • Une case du ruban ne peut contenir qu’un symbole Au début • M est dans sa configuration initiale A la fin • l’état de M est qY D’un instant i à l’instant i+1 • l’état de la machine dépend du précédent

  47. { Q[i,0], Q[i,1], … , Q[i,r] },0  i  p(n) • { Q[i,j], Q[i,j’] }0  i  p(n), 0  j  j’  r • { H[i,-p(n)], H[i,-p(n)+1], … , H[i,p(n)+1] },0  i  p(n) • { H[i,j], H[i,j’] }0  i  p(n), -p(n)  j  j’  p(n)+1 • { S[i,j,0], Q[i,j,1], … , S[i,j,v] },0 i  p(n), -p(n)  j p(n)+1 • { S[i,j,k], Q[i,j,k’] }0  i  p(n), -p(n)  j  p(n)+1, 0  k < k’ v Le théorème de Cook (11) Clauses à rajouter • { Q[0,0] }, { H[0,1] }, {S[0,0,0]} • { S[0,1,k1] }, { S[0,2,k2] }, … , { S[0,n,kn] } • { S[0,n+1,0] }, { S[0,n+2,0] }, … , { S[0,p(n)+1,0] }, • { Q[p(n),1] }

  48. { H[i,j], Q[i,k], S[i,j,l], H[i+1,j+] } • { Q[i,j], Q[i,k], S[i,j,l], Q[i+1,k’] } • { H[i,j], Q[i,k], S[i,j,l], S[i+1,j,l’]} • pour tout quadruplé (i,j,k,l) • 0  i < p(n), -p(n)  j  p(n)+1, 0  k  r, 0  l  v Le théorème de Cook (12) Clauses à rajouter

  49. Problème de NP SAT Machine de Turing M / langage L L[SAT,e] Le théorème de Cook (13) Conclusions fL Longueur[fL] = O(p(n)4)

  50. Conclusions • On vient de montrer qu ’il existe au moins un problème NPC • On ne sait toujours pas si NP - P est peuplé ! • Performances à priori des algorithmes • Complexité spatiale • Complexité temporelle • Problèmes de décisions • Classes de complexités P et NP • P = NP ?

More Related