1 / 43

Cours d’informatique théorique

Cours d’informatique théorique. INF f5 Alain Lecomte novembre 2005. who is this man?. Alan TURING (1912-1954) d’après son biographe: founder of computer science, mathematician, philosopher, codebreaker, strange visionary and a gay man before his time. et lui?. David HILBERT

shika
Download Presentation

Cours d’informatique théorique

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. Cours d’informatique théorique INF f5 Alain Lecomte novembre 2005

  2. who is this man?

  3. Alan TURING (1912-1954) d’après son biographe: founder of computer science, mathematician, philosopher, codebreaker, strange visionary and a gay man before histime

  4. et lui? David HILBERT (1862-1943) le plus grand mathématicien de son siècle?

  5. le 10ème problème de Hilbert • Does there exist a universal algorithm for solving Diophantine equations? (A Diophantine equation is an equation in which only integer solutions are allowed).

  6. Équations diophantiennes • Déterminer si une équation de la forme P=0, où P est un polynôme à coefficients entiers, possède des solutions entières • Exemples : x2 + y2 – 1 = 0, x2 – 991y2 – 1 = 0 etc…

  7. Ce problème n’est pas « décidable » Démontré en 1970 par Yuri Matijasevic

  8. Qu’est-ce que cela signifie? • Il n’existe aucun algorithme qui indique, pour chaque équation diophantienne, si elle a ou non des solutions

  9. Cas de l’informatique • Déterminer si un programme P, pris au hasard, calcule une fonction donnée non nulle f(n) (n entier) • Déterminer si deux programmes calculent la même chose (sont équivalents) • Déterminer si un programme quelconque, sur une donnée représentée par un entier n, ne va pas boucler indéfiniment

  10. Ce sont des problèmes « indécidables »

  11. Il n’existe pas d’algorithme général tel qu’étant donné un programme P et une fonction f de N dans N, il soit capable de dire si P calcule effectivement f • Il n’existe pas d’algorithme général permettant de dire, étant donnés deux programmes P et P’ qu’ils font la même chose, • Il n’existe pas d’algorithme général qui, étant donné un programme P et un entier n, permette de dire que P ne va pas boucler indéfiniment sur l’entrée n

  12. Soit un prédicat P (une propriété), applicable à un entier n, P est décidable si et seulement si il existe une méthode (un algorithme) permettant de dire au bout d’un temps fini (ie: un nombre fini de pas de calcul) si P(n) est vrai ou si P(n) est faux

  13. Soit f une fonction de N dans N, f est calculable si et seulement si il existe une méthode de calcul (un algorithme) permettant pour tout entier n d’obtenir f(n) si nDom(f) et  si nDom(f)

  14. Remarque 1 • Est-on limité aux prédicats sur N et aux fonctions de N dans N? • Ne peut-on pas aussi se poser des questions ou faire des calculs sur des couples d’entiers? Des suites d’entiers? Des entiers relatifs? Des fractions? Des nombres réels? • Ne peut-on pas aussi se poser des questions ou faire des calculs sur des chaînes de caractères? Des arbres? Des graphes?

  15. Réponse • Oui, bien sûr… tant qu’on se pose des questions ou qu’on calcule sur des objets énumérables (ou numérotables) c’est-à-dire: qui sont éléments d’ensembles dénombrables

  16. Dénombrabilité • Un ensemble dénombrable est un ensemble dont les éléments peuvent être énumérés, ou numérotés : on peut les arranger de telle sorte qu’il y ait un premier, un deuxième, un troisième, etc. • On rajoute aussi  aux ensembles dénombrables… (par sympathie pour lui)

  17. Tout ensemble fini est dénombrable • {0, 1, 2, 3, 4} est évidemment dénombrable • {paul, marie, lucien, jean} est dénombrable (il suffit de choisir un classement arbitraire, par exemple par ordre d’âge) • {« paul », « marie », « lucien », « jean »} est dénombrable (choisir par exemple l’ordre alphabétique)

  18. {xN; x<100} est dénombrable • {0,1, 2, 3}{0, 1, 2, 3} est dénombrable (classer les couples dans l’ordre lexicographique, avec 0<1<2<3) • {0, 1, 2, 3}n est dénombrable pour tout n (même raison) • L’ensemble des mots utilisant les lettres de l’alphabet latin et de longueur inférieure ou égale à 26 est dénombrable

  19. Un ensemble fini est dénombrable parce qu’il est toujours possible de définir une bijection de cet ensemble vers une partie finie de N (c’est-à-dire un ensemble de la forme [0..n])

  20. Infini dénombrable • N est infini dénombrable, • P = {xN, x est pair} est infini dénombrable: • Il existe une bijection de P vers N (donc une numérotation possible des entiers pairs) • I = {xN, x est impair} est infini dénombrable

  21. Remarque 2 • Un ensemble infini dénombrable peut très bien être une partie stricte d’un autre ensemble infini dénombrable, • Ex: P  N, I  N • C’est une caractérisation de l’infini : un ensemble infini, c’est un ensemble qui peut être mis en bijection avec une partie stricte de lui-même (c’est le cas de N, mais aussi de P, penser aux multiples de 4 etc.)

  22. Z (l’ensemble des entiers relatifs) est infini dénombrable… on peut classer les relatifs comme suit: 0; -1; +1; -2; +2; -3; +3; -4; +4; -5 etc. La fonction qui donne la numérotation est: f(0) = 1 f(-n) = 2n (n0) f(+n) = 2n+1

  23. NN est infini dénombrable voir en exercices

  24. Et aussi: • L’union d’une famille dénombrable d’ensembles dénombrables est dénombrable, • Le produit d’un nombre fini d’ensembles dénombrables est dénombrable • (exercices)

  25. Donc sont aussi infinis dénombrables; • Nk pour tout entier k • (l’ensemble de toutes les suites finies d’entiers)

  26. Mais R n’est pas dénombrable! • Raisonnons seulement sur une partie stricte de R : l’intervalle [0, 1[ • Les éléments de cet intervalle sont représentés par des suites infinies d’entiers entre 0 et 9 (dans le système décimal) • Certaines de ces suites sont nulles à partir d’un certain rang, d’autres non • On peut donc identifier [0, 1[ à l’ensemble de toutes les suites (finies ou infinies) d’entiers compris entre 0 et 9

  27. n°1 n°2 • Si cet ensemble était dénombrable, on pourrait les classer (avec une première, une deuxième etc.) • Ainsi la suite x11x12x13x14…x1p…serait classée première et ainsi de suite…. n°4

  28. n°1 n°2 • On pourrait alors modifier cette matrice infinie de la manière suivante: • A chaque élément de la diagonale, rajouter 1, selon la règle: 0+1=1, 1+1=2, … 8+1=9 et 9+1=0 n°4

  29. Alors considérons la suite infinie qui se trouve sur la diagonale: • Elle ne peut être égale à la première car elle s’en distingue au moins par le premier élément • Elle ne peut être égale à la deuxième car elle s’en distingue au moins par le deuxième élément • Elle ne peut être égale à la troisième car elle s’en distingue au moins par le troisième élément • Et ainsi de suite… • Elle ne peut donc être égale à aucune des suites contenues dans ce tableau

  30. Donc, quel que soit le classement choisi des suites infinies de 0 … 9, il y en a toujours une qui échappe à ce classement! • C’est donc qu’il est impossible de les numéroter… • Tout simplement parce qu’elles ne forment pas un ensemble dénombrable

  31. Ceci est connu comme l’argument diagonal de Cantor

  32. Puissance du continu • L’infini de R est strictement plus grand que celui de N, on l’appelle « la puissance du continu »

  33. On démontrera de même que (N) n’est pas dénombrable, autrement dit, là encore, l’infini de N est strictement inférieur à celui de l’ensemble de ses parties • Card(N) < Card((N)) • (Théorème de Cantor)

  34. Des chaînes aux nombres entiers • Les chaînes de caractères (qu’on appellera simplement les mots sur un alphabet donné A) constituent un ensemble infini dénombrable, on peut donc leur associer à chacune un entier: soit leur numéro d’ordre dans un classement quelconque, soit un numéro calculé selon un code attribuant un chiffre à chaque caractère (cf. code ASCII), • Tout calcul sur les chaînes peut donc se ramener à un calcul sur des entiers

  35. Des nombres entiers aux chaînes • Mais pour calculer sur des nombres entiers, il faut leur donner une représentation… sous forme de chaîne (ou de mot)! Par exemple, dans le système binaire, sous forme de suites de 0 et de 1 • Donc les calculs sur des entiers se ramènent à des calculs sur des chaînes!

  36. Problèmes de reconnaissance • Finalement, toute approche algorithmique de problèmes ou de calculs se ramène à manipuler des suites de symboles, donc des chaînes, • Si par exemple on a représenté les nombres entiers en binaire, le problème « est-ce que n est pair? » se ramène au problème « est-ce que la représentation de n appartient à l’ensemble des représentations d’entiers pairs? » • Le problème « est-ce qu’il existe des solutions entières de l’équation xn+yn=zn? » se ramène au problème de savoir si un certain ensemble de chaînes est non vide.

  37. Tout ensemble de chaînes étant défini comme un langage, ces problèmes se ramènent à des problèmes de reconnaissance de l’appartenance à un certain langage • Ceci explique que la notion de langage va être centrale dans ce cours, et que le problème fondamental traité est finalement: • Étant donné un langage L et un mot w, • Est-ce que wL ?

  38. Ensembles récursifs • Un ensemble E est dit récursif si et seulement si le problème « est-ce que xE ?» est décidable, • Noter que même si pour E donné, le problème «xE ?» est décidable, selon le choix de E, il pourra être plus ou moins facile à résoudre, • Problèmes de complexité algorithmique

  39. Définir une « méthode de calcul » • Venons-en au deuxième objectif : définir précisément ce qu’on entend par méthode de calcul ou algorithme

  40. Décomposition en opérations élémentaires • Intuitivement, lorsque nous qualifions des opérations simples (addition, produit…) de « calculables », c’est parce que nous connaissons des algorithmes pour les effectuer, cela signifie que nous sommes capables de réduire ces tâches à des opérations encore plus simples, que nous combinons entre elles.

  41. Le problème de la définition de ce que l’on entend par « méthode de calcul » est donc celui de la détermination du plus petit ensemble possible d’opérations élémentaires, suffisamment générales pour que le maximum de calculs (sur des entiers, des chaînes quelconques etc.) puissent se ramener à des combinaisons de ces opérations.

  42. Plusieurs solutions • Machines de Turing (cours suivant) • Théorie des fonctions récursives (Church) • Lambda – calcul • Machines RAM • …

  43. Thèse de Church-Turing • De façon étonnante, toutes les solutions proposées à ce problème se sont avérées équivalentes • Autrement dit: une fonction calculable au sens des machines de Turing est récursive et réciproquement, ou bien peut se ramener à un calcul au sein du -calcul, ou bien peut être réalisée sur une machine RAM etc. et réciproquement une fonction implémentable sur une machine RAM peut être réalisée par une machine deTuring etc. • Autrement dit, on formule la thèse selon laquelle ces définitions permettent de cerner la notion de fonction calculable

More Related