Un prototype programmable pour concrétiser la machine de Turing

Accueil Alan TURING Histoire Machine de Turing Le prototype expérimental réalisé Quelques diagrammes de machines de Turing pour ce prototype Interventions Presse Contact Nouvelle machine
Machines Idées Descriptif Fonctionnement Technologie 1ère machine de Turing Traitement des chaînes Calculateurs Suites Intéressant Lycées Universités Conférences Vidéos

Le ruban

Il comporte 100 petits cylindres qui peuvent prendre 3 positions, alphabet : {b,0,1} :

  • b : le cylindre est enfoncé totalement.
  • 0 : le cylindre est à mi-hauteur (7mm)
  • 1 : le cylindre est relevé à pleine hauteur (14mm).
A noter : Le ruban est ici "replié sur lui-même" sous la forme d'un disque.... si le nombre de cylindre est fini (100), le ruban est quant à lui illimité !
 
Remarque : Pour obtenir 100 graduations équidistantes sur le pourtour d'un disque de 100 cm de circonférence, j'ai utilisé un mêtre de couturiére
qui à le défaut d'être légérement extensible, ce défaut a été ici une qualité, j'ai réalisé un disque ayant une circonférence de 1 mêtre + epsilon, avec
le mêtre en extension, j'ai pu faire coincider le 0 avec la graduation 100.

Mécanisme d'écriture

Deux mécanismes sont disposés, l'un au dessus, l'autre en dessous, du ruban portant les cylindres.

  • Ecrire un b : la téte du dessus enfoncera totalement le cylindre
  • Ecrire un 0 : les 2 tétes fonctionnent et poussent chacune le cylindre à mi-hauteur.
  • Ecrire un 1 : la téte du dessous remonte le cylindre au maximum
Avec le choix retenu, l'écriture d'un 0 ne nécessite pas une lecture préalable.

Mécanisme de lecture

Une tige est poussée contre les cylindres et selon sa position en fin de poussée, le système indiquera si le cylindre représente un b, un 0 ou un 1.
Le résultat de la lecture est "mémorisé" provisoirement dans 3 des 4 relais que l'on voit sur la photo.


 







Les différentes position en poussée contre un cylindre :

  • Blanc : cylindre totalement enfoncé, la tige dépasse au maximum.
  • zéro : cylindre à mi hauteur, la tige appuie avec son premier cran.
  • Un : cylindre relevé, la tige appuie avec son deuxiéme cran.



Déplacement du ruban

Un moteur électrique entraine une petite roue dentée dont les dents s'intercalent entre les cylindres et font ainsi tourner le disque (ruban de Turing).

  • Déplacement à gauche : le ruban est décalé d'un cylindre vers la gauche.
  • Déplacement à droite : le ruban est décalé d'un cylindre vers la droite.
Comme pour l'écriture, c'est le résultat de la lecture d'une ligne de la table des transitions qui indique quel déplacement effectuer.

A noter : Il était plus simple de faire tourner le disque que de déplacer la téte de lecture !

La programmation : Table des transitions


Cette table indique à la machine ce qu'elle doit faire selon l'état dans lequel elle se trouve et le résultat de la lecture.

  • Etat : Colonne 1 c'est le numéro de l'état
  • L (pour lecture) : Colonne 2 c'est le résultat de la lecture {b,0,1}
  • Ecriture : Colonne 3: elle est subdivisée en trois colonnes b,0 et 1 ( écriture de b, 0 ou 1)
  • Déplacement : Colonne 4: elle est subdivisée en 2 colonnes L et R ( Left ou Right )
  • Nouvel état : Colonne suivantes: 12 colonnes pour le choix éventuel d'un nouvel état.
Pour transmettre à la machine, des trous sont faits dans les cases choisies, et la feuille est simplement introduite dans le système de lecture
qui comprend 612 pointes qui vont être pressées contre cette feuille. Lé ou il y a des trous, des contacts électriques seront établis et le
courant sera transmis aux systèmes d'écriture, déplacement et sélection d'un état.


Dimensionnement :
  • Nombre de lignes : 3 lignes par état pour 12 états soit 36 lignes
  • Nombre de colonnes : écriture: 3       déplacement: 2       nouvel état: 12     soit 17 au total
  • Total des pointages : 36 x 17 soit 612


L'horloge du cycle des actions

Le système rotatif enchaéne les actions dans l'ordre ci-dessous jusqu'é l'arrét provoqué par l'état final:

  • Lecture : elle est exécutée automatiquement à chaque tour.
  • Ecriture : la machine écrira un élément de l'ensemble {b,0,1}
  • Déplacement : c'est un déplacement d'une case à gauche ou d'une case à droite.
  • Choix d'un état. Le choix est fait selon la table des transitions, si aucun nouvel état n'y est stipulé, la machine ne change pas d'état.

Commutateur des états

La machine comporte 12 états

  • Etat 1 : c'est l'état initial (sélectionné par appui sur le bouton rouge au dessus du cycle des actions).

  • Etat 12 : c'est l'état final, il provoque l'arrét de la machine.
Le mécanisme retourne, pour chaque état, le résultat de la lecture {b,0,1} à la table des transitions.

Pupitre de commande

Pour faire des tests, ou des essais au ralenti, les différentes fonctions peuvent être activées depuis ce pupitre.

Pour entrer les données qui seront traitées par la machine, deux solutions :

  • on utilise le pupitre : déplacement et écriture.
  • on positionne les cylindres directement avec la main.

BUS de transfert des données Faisceau de cables avec liaison par fiches

  • Alimentation 2 fils pour le + et le - en 6 volts
  • Ecriture 3 fils pour b,0,1
  • Lecture 1 fil pour le lancement de la lecture et 3 fils pour les retours vers l'unité centrale
  • Rotation 2 fils pour les déplacements à gauche ou à droite

Mémoire vive Totalement effacée quand on coupe l'alimentation électrique

  • Relais de lecture : Ils enregistrent provisoirement le résultat d'une lecture
  • Relais d'écriture : pour limiter les mouvements de déplacement à 7mm ou 14mm
  • Relais d'états : Enregistrement provisoire du nouvel état à sélectionner
  • Capacité mémoire vive : 16 bits soit 2 octets

Alimentation:

  • 6 volts à partir du secteur 220v
  • Elle pourrait être remplacée par des piles.