Calendrier de l'Avent - Les machines de Turing

Les machines de Turing, la base de l’informatique moderne

Si vous vous intéressez aux bases des algorithmes et aux fondements des ordinateurs, vous avez certainement entendu parler de ce concept imaginé par Alan Turing en 1936, les machines de Turing.

Mais qu’est-ce qu’une machine de Turing exactement ?

Une machine simple, mais puissante

À première vue, une machine de Turing peut sembler déconcertante dans sa simplicité. Elle se compose de quatre éléments principaux :

  1. Un ruban infini divisé en cases, chacune contenant un symbole (comme un 0 ou un 1). Ce ruban sert de mémoire.
  2. Une tête de lecture/écriture, on peut la voir comme un pointeur sur une case. Elle nous sert à nous déplacer sur le ruban pour y lire une information ou y écrire.
  3. Un état, qui représente la “mémoire interne” de la machine à un instant donné. C’est ce qui lui permet de “se souvenir” du contexte dans lequel elle se trouve.
  4. Un tableau de règles, qui dicte à la machine comment réagir en fonction du symbole lu sur le ruban et de son état interne.

Comment fonctionne une machine de Turing ? À chaque étape, la machine lit un symbole, décide d’écrire ou de modifier ce symbole, se déplace à gauche ou à droite, et passe dans un nouvel état. Ces actions sont répétées, potentiellement à l’infini.

Mais attention, malgré sa simplicité apparente, cette machine théorique peut simuler n’importe quel calcul qu’un ordinateur moderne peut réaliser, tant qu’elle dispose d’un espace infini !


Prenons un exemple simple : incrémenter un nombre binaire sur un ruban. Par exemple, si le ruban contient 011 (représentant le nombre 3 en binaire), la machine le transformera en 100 (4 en binaire).

Définition de la machine

  1. Ruban initial : ...011... (le ruban est infini et rempli de cases blanches à gauche et à droite).
  2. États :
    • q₀ : État initial.
    • qₑ : État final.
  3. Tableau de règles :
    • Si en q₀, lire 0, écrire 1, ne pas déplacer la tête, passer à qₑ. (Si le chiffre est un 0, alors il n’y a pas de retenue).
    • Si en q₀, lire 1, écrire 0, déplacer la tête à gauche, rester en q₀. (Si le chiffre est un 1, alors il y a une retenue).

Simulation pas à pas

Ruban initial : ...01[1]... (tête de lecture/écriture positionnée sur le dernier 1).

  1. Étape 1 :
    • État : q₀, tête lit 1.
    • Action : Écrire 0, passer à q₀, déplacement de la tête à gauche.
    • Ruban : ...0[1]0....
  2. Étape 2 :
    • État : q₀, tête lit 1.
    • Action : Écrire 0, passer à q₀, déplacement de la tête à gauche.
    • Ruban : ...[0]00....
  3. Étape 3 :
    • État : q₀, tête lit 0.
    • Action : Écrire 1, passer à qₑ, la tête ne se déplace pas.
    • Ruban : ...[1]00....
  4. Étape 4 (fin du calcul) :
    • État : qₑ, la machine s’arrête.

Résultat final : ...100... (4 en binaire).


Cet exemple montre comment une tâche simple, comme l’incrémentation en binaire, peut être accomplie par une machine de Turing en suivant des règles précises. Même les algorithmes complexes peuvent être réduits à une séquence de telles étapes simples.

Pourquoi est-ce important ?

Les machines de Turing n’ont jamais été conçues pour être construites. Leur objectif initial était de répondre à une question fondamentale en mathématiques : y a-t-il des problèmes que nous ne pourrons jamais résoudre par calcul ?

Au-delà de cette découverte théorique, le modèle de Turing a posé les bases de la conception des ordinateurs modernes. Il nous permet de comprendre les limites de l’informatique, et sert encore de référence pour analyser la complexité des algorithmes.

Des applications et des variantes

Au fil des décennies, les machines de Turing ont inspiré une multitude de recherches. Parmi les extensions et variantes notables :

  • Les machines de Turing non déterministes, qui explorent simultanément plusieurs solutions possibles.
  • Les automates cellulaires, comme le célèbre “jeu de la vie” de John Conway.

Une idée qui transcende son époque

La prochaine fois que vous travaillerez sur un algorithme ou que vous entendrez parler de calculabilité, souvenez-vous de la machine de Turing. Ce modèle théorique, inventé il y a près d’un siècle, continue de guider et d’inspirer les chercheurs et les ingénieurs du monde entier.

Pour en savoir plus, lisez l’article Wikipedia sur les machines de Turing.