La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Séminaire Florin Périer Alain Gély LIMOS Alain Gély -"— Transcription de la présentation:

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

2 P = NP WANTED ?

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° 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 Résultat sur la calculabilité Développement du lambda-calcul 1936 : Démontre lexistence d un problème indécidable Thèse de Church

7 Kurt Godël 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 Evaluation dun algorithme EntréesRésultat Algorithme Ressources TempsEspace Taille n Opérations élémentaires

10 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.) Exemple : codage d un graphe v1v1 v2v2 v3v3 v4v4

11 Comportement asymptotique des fonctions Notation O : O(g(n)) = {f(n) : il existe des constantes positives c et n 0 tel que 0 f(n) c.g(n) pour tout n n 0 } Notation : (g(n)) = {f(n) : il existe des constantes positives c et n 0 tel que 0 c.g(n) f(n) pour tout n n 0 } Notation : (g(n)) = {f(n) : il existe des constantes positives c 1 et c 2, et n 0 tel que 0 c 1.g(n) f(n) c 2.g(n) pour tout n n 0 } f

12 Notation O - exemples

13 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(n) O(n 2 )

14 Donald Knuth 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 PolynomialExponentiel FacileDifficile

18 Problèmes & Classes de complexités

19 Alan Matheson Turing & La machine de Turing Inventeur de la Machine de Turing

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

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

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

23 P

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

25 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) P = co-P

26 NP

27 Machine de Turing Non Déterministe -0123i-1ii+1 Tête de lecture / écriture 101 Controleur d'états finis Guessing module Tête décriture

28 La classe NP NP = {L : il existe un programme M en temps polynomial sur une machine de Turing Non Deterministe pour lequel L M =L} 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.

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 ? a d c e b a-b-e-c-d-a 50km 10

30 NP et co-NP ? Problème du circuit hamiltonien Un graphe est-il hamiltonien ?Un graphe nest-il pas hamiltonien ? Ce problème NPCe problème co-NP Est-ce que ce problème NP ?

31 P et NP P NP P=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(2 p(n) )

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

33 Transformation polynomiale Une transformation polynomiale dun langage L 1 1 * vers un langage L 2 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 L 1 ssi f(x) L 2 L2L2 L1L1 Problème 1 Problème 2 f f OUI NON

34 Transformation polynomiale A quoi ça sert ? On note L 1 << L 2 s il existe une transformation polynomiale de L 1 vers L 2 Si L 1 << L 2 alors L 2 P implique que L 1 PSi L 1 << L 2 alors L 1 P implique que L 2 P 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 Si L 1 << L 2 et L 1 << L 2 on dit que L 1 et L 2 sont polynomialement équivalent

35 P, NP, NP-Complet NPI NPC P Si P <> NP NP NP-Complet ssi NP 1 NP, 1 <<

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 = {u 1,u 2,…,u m } 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 : {u 1,u 2,u 3 } 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 = { (u 1,u 2 ), (u 1,u 2 )} est satisfiable t(u 1 ) = Vrai, t(u 2 ) = Vrai. C = { (u 1,u 2 ), (u 1,u 2 ), (u 1 ) } 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 Le théorème de Cook (5) 2) L NP, L << SAT Retour au niveau des langages : L SAT =[SAT,e] Il faut montrer L << L SAT pour tous les langages de NP 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 M,, b, Q, q 0, q Y, q N et p(n)

42 Le théorème de Cook (6) L L SAT fLfL f L va être décrite en fonction de,, b, Q, q 0, q Y, q N, et p SAT 1

43 Le théorème de Cook (7) 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°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 Remarque n°2 il n y a pas plus de p(n)+1 instants distincts Utilisation d un nombre limité de variables 1

44 Le théorème de Cook (8) Q[i,k] Au temps i, M est dans l état q k H[i,k] Au temps i, la tête L/R est sur la case j S[i,j,k] Au temps i, la case j contient le symbole s k Mise en place des variables booléennes f L va construire un ensemble de variable U tel que label des éléments de Q : q 0, q 1 =q Y, q 2 =q N, q 3, …, q r (avec r=|Q|-1) label des éléments de : s 0 =b, s 1, s 2, …, s v (avec v=| |-1)

45 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. Clauses à rajouter

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

47 Le théorème de Cook (11) Clauses à rajouter { Q[0,0] }, { H[0,1] }, {S[0,0,0]} { S[0,1,k 1 ] }, { S[0,2,k 2 ] }, …, { S[0,n,k n ] } { S[0,n+1,0] }, { S[0,n+2,0] }, …, { S[0,p(n)+1,0] }, { Q[p(n),1] } { 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

48 Le théorème de Cook (12) Clauses à rajouter { 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

49 Le théorème de Cook (13) Conclusions Problème de NP Machine de Turing M / langage L SATL[SAT,e] f L Longueur[f L ] = 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 ?

51 Bibliographie Garey & Johnson « Computers and Intractability - A guide to the Theory of NP-completeness » Jean-François Rey « Calculabilité, Complexité et approximation » Stephen Cook « The P vs NP problem » Le zoo de la complexité - Clay mathematic Institute -

52 P = NP WANTED $ égal ou distinct ?


Télécharger ppt "Séminaire Florin Périer Alain Gély LIMOS Alain Gély -"

Présentations similaires


Annonces Google