Cours dinformatique théorique INF f5 Alain Lecomte novembre 2005
who is this man?
Alan TURING ( ) daprès son biographe: founder of computer science, mathematician, philosopher, codebreaker, strange visionary and a gay man before his time
et lui? David HILBERT ( ) le plus grand mathématicien de son siècle?
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).
É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 : x 2 + y 2 – 1 = 0, x 2 – 991y 2 – 1 = 0 etc…
Ce problème nest pas « décidable » Démontré en 1970 par Yuri Matijasevic
Quest-ce que cela signifie? Il nexiste aucun algorithme qui indique, pour chaque équation diophantienne, si elle a ou non des solutions
Cas de linformatique 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
Ce sont des problèmes « indécidables »
Il nexiste pas dalgorithme 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 nexiste pas dalgorithme général permettant de dire, étant donnés deux programmes P et P quils font la même chose, Il nexiste pas dalgorithme 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 lentrée n
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 dun temps fini (ie: un nombre fini de pas de calcul) si P(n) est vrai ou si P(n) est faux
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 dobtenir f(n) si n Dom(f) et si n Dom(f)
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 dentiers? Des suites dentiers? 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?
Réponse Oui, bien sûr… tant quon se pose des questions ou quon calcule sur des objets énumérables (ou numérotables) cest-à-dire: qui sont éléments densembles dénombrables
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 quil y ait un premier, un deuxième, un troisième, etc. On rajoute aussi aux ensembles dénombrables… (par sympathie pour lui)
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 lordre alphabétique)
{x N; x<100} est dénombrable {0,1, 2, 3} {0, 1, 2, 3} est dénombrable (classer les couples dans lordre lexicographique, avec 0<1<2<3) {0, 1, 2, 3} n est dénombrable pour tout n (même raison) Lensemble des mots utilisant les lettres de lalphabet latin et de longueur inférieure ou égale à 26 est dénombrable
Un ensemble fini est dénombrable parce quil est toujours possible de définir une bijection de cet ensemble vers une partie finie de N (cest-à-dire un ensemble de la forme [0..n])
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
Remarque 2 Un ensemble infini dénombrable peut très bien être une partie stricte dun autre ensemble infini dénombrable, –Ex: P N, I N Cest une caractérisation de linfini : un ensemble infini, cest un ensemble qui peut être mis en bijection avec une partie stricte de lui-même (cest le cas de N, mais aussi de P, penser aux multiples de 4 etc.)
Z (lensemble 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
N N est infini dénombrable voir en exercices
Et aussi: –Lunion dune famille dénombrable densembles dénombrables est dénombrable, –Le produit dun nombre fini densembles dénombrables est dénombrable –(exercices)
Donc sont aussi infinis dénombrables; –N k pour tout entier k – (lensemble de toutes les suites finies dentiers)
Mais R nest pas dénombrable! Raisonnons seulement sur une partie stricte de R : lintervalle [0, 1[ Les éléments de cet intervalle sont représentés par des suites infinies dentiers entre 0 et 9 (dans le système décimal) –Certaines de ces suites sont nulles à partir dun certain rang, dautres non –On peut donc identifier [0, 1[ à lensemble de toutes les suites (finies ou infinies) dentiers compris entre 0 et 9
Si cet ensemble était dénombrable, on pourrait les classer (avec une première, une deuxième etc.) Ainsi la suite x 11 x 12 x 13 x 14 … x 1p …serait classée première et ainsi de suite…. x 11 x 12 x 13 x 14 … x 1p … x 21 x 22 x 23 x 24 … x 2p … n°3x 31 x 32 x 33 x 34 … x 3p … x 41 x 42 x 43 x 44 … x 4p … n°5x 51 x 52 x 53 x 54 … x 5p … n°6x 61 x 62 x 63 x 64 … x 6p … n°kx k1 x k2 x k3 x k4 … x kp … n°1 n°2 n°4
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 x x 12 x 13 x 14 … x 1p … x 21 x x 23 x 24 … x 2p … n°3x 31 x 32 x x 34 … x 3p … x 41 x 42 x 43 x … x 4p … n°5x 51 x 52 x 53 x 54 … x 5p … n°6x 61 x 62 x 63 x 64 … x 6p … n°kx k1 x k2 x k3 x k4 … x kp … n°1 n°2 n°4
Alors considérons la suite infinie qui se trouve sur la diagonale: –Elle ne peut être égale à la première car elle sen distingue au moins par le premier élément –Elle ne peut être égale à la deuxième car elle sen distingue au moins par le deuxième élément –Elle ne peut être égale à la troisième car elle sen 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
Donc, quel que soit le classement choisi des suites infinies de 0 … 9, il y en a toujours une qui échappe à ce classement! Cest donc quil est impossible de les numéroter… Tout simplement parce quelles ne forment pas un ensemble dénombrable
Ceci est connu comme largument diagonal de Cantor
Puissance du continu Linfini de R est strictement plus grand que celui de N, on lappelle « la puissance du continu »
On démontrera de même que (N) nest pas dénombrable, autrement dit, là encore, linfini de N est strictement inférieur à celui de lensemble de ses parties Card(N) < Card( (N)) (Théorème de Cantor)
Des chaînes aux nombres entiers Les chaînes de caractères (quon 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 dordre 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
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!
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 à lensemble des représentations dentiers pairs? » Le problème « est-ce quil existe des solutions entières de léquation x n +y n =z n ? » se ramène au problème de savoir si un certain ensemble de chaînes est non vide.
Tout ensemble de chaînes étant défini comme un langage, ces problèmes se ramènent à des problèmes de reconnaissance de lappartenance à 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 ?
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
Définir une « méthode de calcul » Venons-en au deuxième objectif : définir précisément ce quon entend par méthode de calcul ou algorithme
Décomposition en opérations élémentaires Intuitivement, lorsque nous qualifions des opérations simples (addition, produit…) de « calculables », cest 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.
Le problème de la définition de ce que lon entend par « méthode de calcul » est donc celui de la détermination du plus petit ensemble possible dopé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.
Plusieurs solutions Machines de Turing (cours suivant) Théorie des fonctions récursives (Church) Lambda – calcul Machines RAM …
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