Je sais pas si t'as montré le code entier et je vais sûrement dire des trucs que t'as déjà fait (je comprends pas trop ce que tu fais en fait) mais déjà j'imagine qu'il te faut une table de transition qui contient l'ensemble des transitions possibles.
Je suis pas un pro du Python mais pourquoi pas utiliser un dictionnaire pour associer un tuple (q, r) à un tuple (q', w, D) avec q et q' des états, r le caractère lu sur le ruban, w' le caractère écrit sur le ruban, D = {L, R} la direction.
Il faudra sûrement trouver des moyens d'encoder tout ça. Tu peux utiliser un caractère spécial pour dire "peu importe ce qui est lu faire ..." ou alors ajouter la même transition pour chaque caractères.
Ensuite t'as le ruban qu'on représente sous la forme d'une liste.
L'encodage est très important il te faudra un moyen d'encoder le mot "blanc" qui représente une case vierge sur le ruban. Tu peux utiliser ' ' ou 'b' ou ce que tu veux.
La machine de Turing ne parcours pas son ruban mais une table de transition qui contient toutes les règles qu'elle soit suivre. Une table de transition c'est un peu le programme d'une machine de Turing.
Ensuite il faudra que la machine de Turing sache :
- Dans quel état elle est (tu peux représenter ça par une chaîne de caractère)
- Quel est le caractère lu sur le ruban
- La position sur le ruban par stockage d'indice (tête de lecture)
Tu peux stocker ça dans des variables. Cela représente un peu la tête de lecture en fait.
Au départ disons qu'elle se trouve par défaut à l'état "q0".
La machine va parcourir la table de transition et chercher une transition pour q0 et le symbole lu. Le ruban est vierge donc il faudra qu'elle trouve une règle ("q0", ' ') -> ... dans la table de transition.
Si on a ("q0", ' ') -> ("q1", '1', 'L') il faudra que la machine interprète ça et se dise :
- Je dois aller à l'état "q1" donc je stocke "q1" dans la variable qui contient mon état actuel
- Il y a un "1" donc je dois écrire 1 sur le ruban (dans ce cas là tu l'écris où tu veux)
- (par une condition) s'il y a un 'L' je décale ma position vers la gauche, s'il y a un R vers la droite
Et ensuite le comportement de la machine de Turing évolue par changements successif d'états puis elle s'arrête ou ne s'arrête pas. 
Message édité le 24 mars 2015 à 08:45:45 par Pseudo supprimé