1. La Machine
de Turing théorique
2. La Machine de Turing
physique
MachTuring.dif\PMachTuring.exe
1. La Machine de Turing théorique
Entre 1930 et 1936 le mathématicien anglais A.Turing invente sur le papier une machine fictive qui ne pouvait effectuer que 4 opérations élémentaires que nous allons décrire. Un des buts de Turing était de faire résoudre par cette " machine " des problèmes mathématiques, et d’étudier la classe des problèmes que cette machine pourrait résoudre.
Définitions et notations
(modèle déterministe)
Soit A un ensemble fini appelé
alphabet
défini ainsi :
A = { a1 ,..., an
}
( A ¹ Æ)
Soit W
={D,G} une paire
1.1 Définition : machine de Turing
T : E ® N
x ( W È
A)
où E est un ensemble
fini non vide, E Ì N
x A
Nous appellerons Et
ensemble des états intérieurs de la machine T:
Et = {
qi Î N
, ($ ai Î
A / (qi ,ai) Î
Dom(T))
ou ($
x Î W
/ (qi ,x) Î
Im(T)) }
Comme E est un ensemble fini,
Et est nécessairement un ensemble fini, donc il y a un
nombre fini d’états intérieurs notés qi.
On rappelle que
G = {(a,b) Î
E x [Et x ( W È
A)] / b = T(a) }
2. La Machine de Turing physique
Nous construisons une machine
de Turing physique constituée de :
G = {(a,b) Î
E x [Et x ( W È
A)] / b = T(a) }
a.1)L’UC fait effacer le ai dans la case et le remplace par l’élément ap. | |
a.2) L’UC écrit qn dans le registre d’état en remplacement de la valeur qk. |
b.1) L’UC fait déplacer la tête vers la droite d’une case. | |
b.2) L’UC écrit qn dans le registre d’état en remplacement de la valeur qk. |
c.1) L’UC fait déplacer la tête vers la gauche d'une case. |
|
c.2) L’UC écrit qn dans le registre d’état en remplacement de la valeur qk. |
|
2.3 Exemple : machine de Turing arithmétique
Nous donnons ci-dessous une machine
T1 additionneuse en arithmétique unaire.
A={#,1}
Etat initial du ruban avant actions
2 3
2 est représenté
par 111
3 est représenté
par 1111
Règles T1:
(application des règles suivantes pour simulation de 2+3)
q1 1 q2D | q6 1 q7D | q11 1 q12# |
q2 1 q3D | q7 1 q8D | q12 # q13G |
q3 1 q4D | q8 1 q9D | q13 1 q14# |
q4 # q51 | q9 1 q10D | |
q5 1 q6D | q10 # q11G |
En démarrant la machine sur la configuration précédente on obtient :
Etat final du ruban après actions
5
Cette machine ne fonctionne
que pour additionner 2 et 3 ; il est facile d’en fournir une autre version
plus générale T2 fondée sur la même
stratégie et le même état initial. Il suffit de construire
des nouvelles règles.
Règles de T2:
q1 1 q1D | q3 1 q3# |
q1 # q21 | q3 # q4G |
q2 1 q2D | q4 1 q5# |
q2 # q3G |
Cette machine de Turing laisse le ruban dans le même état final, mais elle est construite avec moins d’états intérieurs que la précédente.
En fait elle fonctionne aussi si la tête de lecture-écriture est positionnée sur n’importe lequel des éléments du premier nombre n.
Etat
initial sur le nombre de gauche
Etat
final à la fin du nombre calculé (il y a n+p+1 symboles "
1 ")
Nous dirons que T2
est plus " puissante " que T1 au sens suivant :
Nous voyons que ces machines
sont capables d’effectuer des opérations, elles permettent de définir
la classe des fonctions calculables (par machines de Turing).
Un ordinateur est fondé
sur les principes de calcul d’une machine de Turing. J. Von Neumann a défini
la structure générale d’un ordinateur à partir des
travaux de A.Turing. Les éléments physiques supplémentaires
que possède un ordinateur moderne n’augmentent pas sa puissance
théorique. Les fonctions calculables sont les seules que l’on puisse
implanter sur un ordinateur. Les périphériques et autres
dispositifs auxiliaires extérieurs ou intérieurs n’ont pour
effet que d’améliorer la " puissance " en terme de vitesse
et de capacité. Comme une petite voiture de série et un bolide
de formule 1 partagent les mêmes concepts de motorisation, de la
même manière les différents ordinateurs du marché
partagent les mêmes fondements mathématiques.
2.4 Machine de Turing informatique
A) C’est une machine de Turing dite normalisée :
C) Algorithme
graphique d’une machine de Turing
Nous utilisons cinq classes
de symboles graphiques
|
Positionne la tête de lecture sur le symbole voulu, met la machine à l’état initial q0 et fait démarrer la machine. |
Signifie que la machine termine correctement son calcul en s’arrêtant à l’état final qf . |
|
Aucune règle de la machine ne permetttant la poursuite du fonctionnement, arrêt de la machine sur un blocage. |
Déplacer
la tête d’une case vers la gauche (la tête de lecture se positionne
sur la case d’avant la case actuelle contenant le symbole ap).
Correspond à la règle : qi ap qj G |
Correspond à l’action
à exécuter dans la deuxième partie de la règle
:
qi ap qj ak (la machine écrit ak dans la case actuelle et passe à l’état qj ). |
Correspond à l’action
à exécuter dans la première partie de la règle
:
qj ak ... ou qi # ... (la machine teste le contenu de la case actuelle et passe à l’état qj ou à l’état qi selon la valeur du contenu). |
D) Organigramme d’une machine de Turing
On appelle organigramme d’une machine de Turing T, toute représentation graphique constituée de combinaisons des symboles des cinq classes précédentes.
Les règles de la forme
qn ak qn G ou qnakqnD
se traduisent par des schémas " bouclés " ce qui donne des
organigrammes non linéaires.
diagramme pour :q0a q0G |
diagramme pour :q0a q0D |
q0 1 q0D | q2 1 q2# |
q0 # q11 | q2 # q3G |
q1 1 q1D | q3 1 qf# |
q1 # q2G |