- Calculabilité
-
La théorie de la calculabilité (appelée aussi parfois théorie de la récursion) est une branche de la logique mathématique et de l'informatique théorique. Alors que la notion intuitive de fonction calculable est aussi vieille que les mathématiques (voir l'article Histoire des mathématiques), la formalisation de ces notions a commencé dans la décennie 1930 afin de répondre à des problèmes fondamentaux de logique mathématique, dont celui énoncé par David Hilbert et appelé Entscheidungsproblem ou Problème de la décision. La calculabilité cherche d'une part à identifier la classe des fonctions qui peuvent être calculées à l'aide d'un algorithme et d'autre part à appliquer ces concepts à des questions fondamentales des mathématiques. Une bonne appréhension de ce qui est calculable et de ce qui ne l'est pas permet de voir les limites des problèmes que peuvent résoudre les ordinateurs.
Sommaire
Qu'est-ce qu'une fonction calculable ?
Une fonction calculable est une fonction qui peut être définie par un algorithme. Cette définition intuitive a besoin d'être précisée en donnant une définition précise, par exemple, en disant qu'un algorithme est défini par une expression du lambda-calcul[1]. La thèse de Church énonce que la définition intuitive et la définition mathématique rigoureuse coïncident. De fait, on a pu montrer que toutes les définitions mathématiques (fonctions récursives, machine de Turing, lambda-calcul, machine à compteurs, automate cellulaire, etc.) sont équivalentes.
Existence de fonctions non calculables
Il peut être démontré qu'il existe des fonctions f qui sont incalculables, c’est-à-dire dont, étant donné x, la valeur f(x) ne peut être calculée en un temps fini par aucun algorithme que l'on aurait associé à f. En effet il y a un nombre dénombrable d'algorithmes (un algorithme peut toujours être représenté par un mot fini sur un alphabet fini), donc il y a seulement un nombre dénombrable de fonctions calculables. En revanche, les fonctions (partielles ou pas) sur un domaine infini ne sont pas dénombrables, de par le théorème de Cantor[2]. Ceci fournit une preuve de l'existence de fonctions incalculables.
On connaît de nombreux exemples explicites de fonctions incalculables. Le plus courant est celui du problème de l'arrêt : il n'existe pas de programme universel qui prenne n'importe quel programme en argument et qui, en temps fini, renvoie « oui » si l'exécution du programme reçu en argument finit par s'arrêter et « non » s'il ne finit pas. Un autre exemple d'une fonction non calculable, plus perturbante dans un certain sens, est celle dite du castor affairé. Il s'agit d'une fonction bien définie, ayant des valeurs pour chaque entier, mais dont on ne peut pas calculer la valeur. Gregory Chaitin a introduit un nombre Ω qui a, entre autres, la particularité d'être parfaitement défini, mais dont la suite des décimales ne peut pas être donnée par une fonction calculable.
Modèles de calcul
Plusieurs modèles de calcul sont utilisés en calculabilité :
- les automates cellulaires ;
- les fonctions récursives ;
- le lambda-calcul ;
- les machines à compteurs ;
- les machines de Turing ;
- les machines parallèle à accès arbitraire ou PRAM ;
- les machines à accès arbitraire ou RAM.
Malgré la diversité de ces modèles, la classe de fonctions calculables par chacun de ceux-ci est unique et cette constatation est le fondement de la thèse de Church.
Notes
- Historiquement, la première caractérisation formelle et mathématique des algorithmes (voir Origins of Recursive Function Theory in Annals of the History of Computing, Vol. 3 No. 1, janvier 1981).
- Peut-on tout programmer ? Cours de l'université de Lille
Références
- O. Carton, Langages formels, calculabilité et complexité, Paris, Vuibert, coll. « Capes-agrég », 28 octobre 2008, 1re éd., 17 x 24, 240 p. (ISBN 978-2-7117-2077-4, 9782711720774 et 2-7117-2077-2) [lire en ligne (page consultée le 16 juin2011)] [présentation en ligne]
- (fr) J.-M. Autebert, Calculabilité et décidabilité. Dunod 1992, (ISBN 978-2225826320)
- (fr) P. Wolper. Introduction à la calculabilité. 3-ième édition, Dunod 2006, (ISBN 978-2100499816)
Voir aussi
Wikimedia Foundation. 2010.