Une machine de Turing est un modèle théorique de calcul introduit par Alan Turing en 1936. Elle se compose d'une bande infiniment longue divisée en cellules, d'une tête de lecture/écriture qui peut se déplacer le long de la bande et d'une unité de contrôle qui détermine le comportement de la machine. . La bande est initialement vierge et l'entrée dans la machine est fournie sur une bande d'entrée distincte. Le résultat du calcul est écrit sur une bande de sortie.
Pour calculer une fonction, une machine de Turing suit un ensemble d'instructions appelé programme. Le programme spécifie comment la machine doit se comporter en fonction de son état actuel et du symbole qu'elle lit sur la bande. La machine démarre dans un état initial et exécute à plusieurs reprises les étapes suivantes :
1. Lire : La machine lit le symbole actuellement sous la tête de lecture/écriture.
2. Processus : En fonction de l'état actuel et du symbole lu, la machine détermine l'état suivant et le symbole à écrire sur la bande.
3. Déplacer : La machine déplace la tête de lecture/écriture d’une cellule vers la gauche ou la droite.
4. Répétez : la machine revient à l'étape 1 et continue jusqu'à ce qu'elle atteigne un état d'arrêt.
Le rôle de la bande d’entrée est de fournir l’entrée au calcul. La bande d'entrée est initialement remplie avec les symboles d'entrée, qui sont lus par la machine pendant le calcul. La bande d'entrée est en lecture seule, ce qui signifie que la machine ne peut pas modifier son contenu.
Le rôle de la bande de sortie est de stocker le résultat du calcul. Au fur et à mesure que la machine traite les symboles d'entrée, elle peut écrire des symboles sur la bande de sortie pour produire la sortie souhaitée. La bande de sortie est en écriture seule, ce qui signifie que la machine peut uniquement y écrire et ne peut pas lire son contenu.
La capacité de la machine de Turing à calculer des fonctions repose sur sa capacité à manipuler des symboles sur la bande selon un ensemble de règles. Ces règles permettent à la machine d'effectuer des opérations arithmétiques, des opérations logiques et d'autres calculs. En suivant ces règles, une machine de Turing peut simuler n'importe quel calcul algorithmique.
Par exemple, considérons une machine de Turing qui calcule la somme de deux nombres. La bande d'entrée contiendrait les deux nombres, séparés par un symbole spécial. La machine lirait les symboles d'entrée, effectuerait l'opération d'addition et écrirait le résultat sur la bande de sortie.
Une machine de Turing calcule une fonction en suivant un ensemble d'instructions spécifiées par un programme. La bande d'entrée fournit l'entrée du calcul et la bande de sortie stocke la sortie du calcul. La machine manipule les symboles sur la bande pour effectuer des calculs, lui permettant de simuler n'importe quel calcul algorithmique.
D'autres questions et réponses récentes concernant Fonctions calculables:
- Qu'est-ce que cela signifie pour différentes variantes de machines de Turing d'être équivalentes en termes de capacité de calcul ?
- Expliquer la relation entre une fonction calculable et l'existence d'une machine de Turing capable de la calculer.
- Quelle est la signification d’une machine de Turing qui s’arrête toujours lors du calcul d’une fonction calculable ?
- Une machine de Turing peut-elle être modifiée pour toujours accepter une fonction ? expliquez pourquoi ou pourquoi pas.
- Qu'est-ce qu'une fonction calculable dans le contexte de la théorie de la complexité computationnelle et comment est-elle définie ?