Tiny Turing Machine
Petite machine de Turing
Contributeur·ice·s
Statut du projet
Fonctionnel
Statut de la publication
Brouillon
License
Creative Commons Attribution CC-by-nc-sa-3.0 France
Inspiration
Fichiers source
Machines
Matériaux
Lien
Petite machine de Turing où l’information écrite dans les cases du “ruban” (20 cases) est codée par l’état d’une led :
– 0 : led clignotante
– 1 : led allumée
– vide : led éteinte
Conformément au principe d’une machine de Turing, la logique de contrôle est assurée par l’exploitation d’une table de transitions traduisant le graphe des états possibles du système et évoluant en fonction des informations lues et transmises par la tête de lecture/écriture. La logique de contrôle opère les quatre fonctions suivantes :
– lecture de l’information inscrite dans la case au dessus de laquelle se trouve la tête ;
– écriture d’une information dans la case au dessus de laquelle se trouve la tête ;
– demande de déplacement de la tête d’une case à droite ou à gauche ;
– mise à jour de l’état courant du système à partir de la table de transitions et mémorisation.
Schéma de principe
Schema principe.jpg
La carte UNO gère l’automate du système. Elle adresse via l’UC les requêtes de lecture/écriture à la tête (HEAD) et réceptionne ou délivre les données correspondantes. L’UC délivre à l’ensemble des cases du ruban (CASE-BANDE) une base de temps CLK par rapport à laquelle sont modulées les données codant l’état de la case (cf. tableau ci-après). La transmission CASE-BANDE → HEAD se fait par émission lumineuse d’une LED et par émission infra-rouge en sens inverse. L’UC par ailleurs pilote le moteur de déplacement de la tête en fonction des demandes de la carte UNO. Des boutons poussoirs BPs permettent de sélectionner les différents programmes de l’automate (addition, soustraction…).
Codage signaux.jpg
Applications
Des graphes d’états pour la reconnaissance de palindromes, l’addition, la soustraction et la multiplication de nombres binaires ont été produits.
Exemple du graphe d’états pour l’addition de 2 nombres binaires : Addition ttm.jpg
Chaque noeud du graphe correspond à un état de la machine.
Informations sur les arcs :
- 1ère ligne → caractère lue : 0, 1 ou vide (□);
- 2ème ligne → caractère écrit (0, 1, □ ou rien) + déplacement tête (>:droite, <:gauche).
Les deux nombres sont écrits l’un à la suite de l’autre séparés par une case vide. La tête de lecture/écriture est initialement positionnée à gauche du premier caractère. Le calcul consiste ici à incrémenter le premier nombre autant de fois qu’il est possible de décrémenter le second jusqu’à ce que ce dernier soit nul. Le résultat final prend donc la place du premier nombre.
Exemple pour le calcul de 5 + 3 :
Etat initial du ruban : 101 11
Etat final du ruban : 1000 00
Fabrication
Les principales pièces de la machine ont été fabriquées à la Platforme C/Ping à Nantes. Découpe laser des plateaux, impression 3D de la tête, des rails de guidage des cartes et de nombreux petits éléments.
Tiny Turing Machine.jpg