Modifications

Aller à : navigation, rechercher

Tiny Turing Machine

3 003 octets ajoutés, 31 mars 2023 à 10:24
aucun résumé de modification
|contributeurs=Laurent P,
}}
 
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
100
modifications

Menu de navigation