Bonjour,
Dans la leçon précédente, nous avons construit une machine de Turing (MT) pour le langage . Cet exercice a démontré la puissance de ce modèle, capable de résoudre des problèmes hors de portée des automates plus simples. Nous avons conclu en nous demandant s'il existait une limite à cette puissance.
Aujourd'hui, nous abordons cette question de front. Nous allons explorer les frontières mêmes de ce qui est calculable. L'objectif est double : premièrement, nous allons énoncer la thèse de Church-Turing, un principe fondamental qui postule que les machines de Turing capturent l'essence de tout calcul algorithmique. Deuxièmement, en nous appuyant sur ce modèle, nous allons définir formellement deux classes cruciales de langages : les langages récursifs (ou décidables) et les langages récursivement énumérables. Cette classification est au cœur de la théorie de la calculabilité.
1. La Thèse de Church-Turing : L'horizon du calculable
Jusqu'à présent, nous avons utilisé les machines de Turing comme un modèle de calcul parmi d'autres. Mais est-ce le modèle ultime ? Que se passerait-il si nous ajoutions plusieurs rubans, plusieurs têtes de lecture, ou si nous imaginions un tout autre type de machine ? Serions-nous capables de calculer plus de choses ?
Au cours des années 1930, indépendamment l'un de l'autre, le logicien américain Alonzo Church et le mathématicien britannique Alan Turing ont cherché à formaliser la notion intuitive d'« algorithme » ou de « procédure de calcul effective ». Church a développé le lambda-calcul, tandis que Turing a inventé ses machines. Remarquablement, ces deux modèles, ainsi que tous les autres modèles de calcul "raisonnables" proposés depuis, se sont avérés équivalents en puissance.
Cette convergence a donné naissance à la thèse de Church-Turing.
Pour une définition formelle et une discussion sur la portée de cette thèse, je vous invite à lire la section dédiée dans le cours de K. Perrot.
Cours Logique et Calculabilité
Ce document, 'Cours Logique et Calculabilité', présente la thèse de Church-Turing de manière rigoureuse, en distinguant ses versions 'physique' et 'algorithmique'. Il s'agit d'une lecture fondamentale pour tout candidat à l'Agrégation.
Veuillez lire la section 3.5 'Thèse de Church Turing' (pages 20-21). Portez une attention particulière à la Définition 3.46 (équivalence des modèles de calcul) et aux énoncés des deux versions de la thèse (Thèses 3.48 et 3.50).
Pour résumer et consolider les points essentiels :
- Ce n'est pas un théorème : La thèse ne peut être prouvée mathématiquement car elle relie un concept intuitif (un "algorithme") à un objet formel (une machine de Turing). Elle est acceptée en raison de l'accumulation de preuves circonstancielles.
- L'argument de la robustesse : La principale preuve en sa faveur est que de nombreuses tentatives pour créer des modèles de calcul plus puissants ont toutes abouti à des modèles équivalents à la machine de Turing. Ajouter des rubans, des têtes, ou autoriser le non-déterminisme ne change pas l'ensemble des problèmes qu'une MT peut résoudre (même si cela peut changer l'efficacité).
- Implication fondamentale : La thèse nous autorise à dire : "un problème est calculable si et seulement si il peut être résolu par une machine de Turing". Cela nous donne un outil formel et stable pour raisonner sur les limites absolues de l'informatique.
La vidéo suivante illustre bien cet argument de robustesse en montrant que diverses variantes de machines de Turing ont en fait la même puissance de calcul.
Cette vidéo de Neso Academy, 'The Church-Turing Thesis', explique le contexte historique et, surtout, discute des différentes variations des machines de Turing qui sont toutes équivalentes en puissance, renforçant ainsi la validité de la thèse.
Regardez les deux premières parties de la vidéo (00:15 à 07:01). Concentrez-vous sur l'idée que malgré l'ajout de fonctionnalités apparemment puissantes (plusieurs rubans, non-déterminisme, etc.), la capacité de calcul fondamentale de la machine reste inchangée.
2. Décidable vs. Reconnaissable : La hiérarchie des problèmes
Maintenant que nous acceptons la machine de Turing comme le mètre étalon de la calculabilité, nous pouvons classer les langages (et donc les problèmes) en fonction du comportement de la machine qui tente de les résoudre. La distinction la plus importante concerne l'arrêt de la machine.

Définitions formelles
Un problème de décision peut être vu comme la question de savoir si un mot w appartient à un langage L. Il y a deux niveaux principaux de "résolution" pour ce type de problème.
Cours Logique et Calculabilité
Reprenons le 'Cours Logique et Calculabilité' pour les définitions formelles qui font autorité.
Lisez la Définition 3.6 à la page 9. C'est la définition centrale de cette leçon. Notez bien la différence cruciale concernant la condition d'arrêt.
Explicitons ces définitions :
1. Langages Récursifs (ou Décidables)
Un langage est dit récursif (ou décidable) s'il existe une machine de Turing qui s'arrête sur toutes les entrées et qui décide le langage. C'est-à-dire :
- Si , alors s'arrête dans un état d'acceptation.
- Si , alors s'arrête dans un état de rejet.
Une telle machine est appelée un décideur. Elle implémente un algorithme au sens plein du terme : une procédure qui termine toujours et fournit une réponse claire "oui" ou "non". La machine que nous avons construite pour est un décideur.
2. Langages Récursivement Énumérables (ou Reconnaissables)
Un langage est dit récursivement énumérable (r.e.) s'il existe une machine de Turing qui le reconnaît. C'est-à-dire :
- Si , alors s'arrête dans un état d'acceptation.
- Si , alors soit s'arrête dans un état de rejet, soit ne s'arrête jamais (boucle infinie).
Une telle machine est un reconnaisseur. Elle implémente un semi-algorithme : elle peut confirmer l'appartenance ("oui"), mais si un mot n'appartient pas au langage, il est possible qu'on attende la réponse indéfiniment.
La vidéo suivante explique cette distinction de manière très claire, en insistant sur la condition de terminaison.
L11: Church-Turing Thesis and Examples of Decidable Languages
Cette vidéo de UC Davis, 'Church-Turing Thesis and Examples of Decidable Languages', donne des définitions formelles et très précises des langages décidables (Turing-decidable) et reconnaissables (Turing-recognizable).
Regardez la section de 11:59 à 16:11. L'explication est concise et met parfaitement en évidence la différence entre les deux concepts.
Origine des termes
- Récursif : Ce terme vient de la théorie des fonctions récursives (un des modèles équivalents aux MT). Un langage est récursif si sa fonction caractéristique (qui vaut 1 si et 0 sinon) est une fonction calculable (ou "récursive").
- Récursivement Énumérable : Un langage est r.e. si et seulement si il existe une machine de Turing (un "énumérateur") qui peut lister tous les mots de , un par un. Si le langage est infini, cette énumération ne se termine jamais, mais tout mot du langage finira par apparaître dans la liste. C'est une propriété équivalente très importante.
Il est évident que tout langage récursif est également récursivement énumérable. Si une machine s'arrête toujours, elle satisfait trivialement la condition pour être un reconnaisseur. La question la plus profonde, et qui sera l'objet de notre prochaine leçon, est : existe-t-il des langages qui sont récursivement énumérables mais non récursifs ?
Conclusion
Cette leçon nous a fait franchir un pas conceptuel majeur. Nous sommes passés de la construction de machines spécifiques à la classification générale de tous les problèmes de calcul.
Points clés à retenir :
- La thèse de Church-Turing postule que toute fonction calculable par un algorithme est calculable par une machine de Turing. C'est le fondement de la théorie de la calculabilité.
- Un langage est récursif (décidable) s'il existe une MT qui s'arrête sur toutes les entrées et donne une réponse "oui" ou "non". C'est un algorithme complet.
- Un langage est récursivement énumérable (reconnaissable) s'il existe une MT qui s'arrête et répond "oui" pour les mots du langage, mais qui peut boucler indéfiniment pour les autres. C'est un semi-algorithme.
- La classe des langages récursifs est incluse dans celle des langages récursivement énumérables.
La prochaine étape logique est de prouver que cette inclusion est stricte. Nous allons le faire en étudiant le problème le plus célèbre de l'informatique théorique : le problème de l'arrêt (Halting Problem). Nous définirons ce problème et démontrerons formellement son indécidabilité, vous donnant ainsi votre premier exemple concret d'un problème que nul ordinateur ne pourra jamais résoudre de manière générale.