 |
La
machine de Turing est un modèle abstrait de calcul introduit par
Alan Turing dans les années 1930, dans son article
On Computable Numbers, with an Application to the Entscheidungsproblem.
Ce type de machine joue un rôle fondamental dans la théorie de la calculabilité
et la compréhension de ce qui peut être calculé de manière algorithmique
: tout ce qui peut être calculé de manière algorithmique peut l'être
par une machine de Turing. Cela a permis à Turing de définir formellement
le concept d'algorithme et de prouver certains résultats fondamentaux
sur la limitation des capacités de calcul. Cette théorie a jeté les
bases de l'informatique théorique et de la conception des langages de
programmation.
Une machine de Turing
est équipée d'une bande infinie divisée en cellules. Chaque cellule
peut contenir un symbole, et le ruban peut être déplacé vers la gauche
ou vers la droite. Une tête de lecture/écriture est positionnée au-dessus
du ruban. Elle peut lire le symbole présent sous elle, écrire un nouveau
symbole, et déplacer le ruban vers la gauche ou la droite. La machine
a un ensemble fini d'états internes. À chaque étape, la machine est
dans l'un de ces états. La machine de Turing fonctionne en suivant une
table de transition qui spécifie, pour chaque combinaison d'état actuel
et de symbole lu, l'action à effectuer (écrire un symbole, se déplacer
vers la gauche ou la droite, changer d'état, etc.).
La fonction de transition
définit le comportement de la machine à chaque étape. Elle détermine
comment la machine réagit en fonction de l'état actuel et du symbole
lu. Ainsi le fonctionnement d'une machine de Turing fait intervenir trois
types d'états : 1) l'initialisation : la machine de Turing commence
dans un état initial avec une certaine configuration du ruban; 2) transition
: à chaque étape, la machine lit le symbole sous la tête de lecture/écriture,
consulte la table de transition pour déterminer l'action à effectuer
en fonction de l'état actuel et du symbole lu, puis effectue cette action;
3) répétition : ce processus se répète jusqu'à ce que la machine atteigne
un état d'arrêt (acceptation ou rejet) ou entre dans une boucle infinie. |
|