VI. Les machines de Turing
Plan
VI.1. Description d’une machine de Turing
VI.2. Fonctionnement d’une machine de Turing
VI.2. Fonctionnement d’une machine de Turing
VI.3. Utilisation d’une machine de Turing
VI.4. Exemple de compteur de parité
VI.5. Exemple de vérification de parenthèses
VI.6. Relation avec les calculateurs et fonction T-
calculable
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
1
VI.1. Description d’une machine de
Turing
Une machine de Turing (m.t) est composée d’un ruban infini décomposé en carrés,
d’une tête de lecture/ecriture sur ce ruban et une unité de contrôle par un nombre fini
d’états. Le calcul d'une machine de Turing est formé d'une suite d'étapes de calcul qui
sont effectuées par la machine. A chaque étape, la m.t, lisant un carré du ruban, peut
changer d’état, changer le contenu du carré lu et se déplacer sur le ruban à droite ou à
gauche d’une case ou bien rester sur place. Les étapes de calcul possibles sont décrites
par les transitions de la machine.
par les transitions de la machine.
Z0
Ruban infini
Tête de lecture/écriture
q
Unité de contrôle
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
2
VI.1. Description d’une machine de
Turing
Définition
Nous donnons la définition précise d'une machine de Turing. De manière formelle, une
machine de Turing M est un Quadruplet (Q, X, d , q0, ) où
Q est l'ensemble des états de contrôle.
X
δ
ensemble fini des symboles lus et écrits sur la bande contenant # . Il contient
l’alphabet d’entrée et l’alphabet de sortie sur la bande.
l’alphabet d’entrée et l’alphabet de sortie sur la bande.
la fonction de transition de la machine
δ : Q x X fi Q x X x {1, 0, -}
est un ensemble fini de transitions de la forme (qi, sj, qij, sij, dij) où qi et qij sont des
états, sj et sij sont des symboles de bande et dij est un élément de {Droite, Gauche
et Arrêt}. Une transition (qi, sj, qij, sij, dij) est aussi notée : qi, sj → qij, sij, dij.
q0 est l'état initial. C'est un état particulier de Q dans lequel se trouve la machine au
#
début d'un calcul.
est le symbole blanc qui, au départ, remplit toutes les positions de la bande autres
que celles contenant la donnée initiale.
qF est l’état final. qF ˛ Q
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
3
VI.2. Fonctionnement d’une machine
de Turing
fonction de transition de la machine :
: Q x X fi Q x X x {1, 0, -}
droite
droite
gauche
gauche
arrêt
arrêt
Dans un état qi, lisant un symbole sj, la machine va dans l’état qij, remplace le
symbole lu par sij et effectue un déplacement dij. Les instructions pour une
machine de Turing sont représentées par des quintuples: (qi, sj, qij, sij, dij)
sj fi
sij, dij
qi
qj
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
4
d
d
fi
fi
fi
VI.2. Fonctionnement d’une machine
de Turing
Exemple1: Machine M1 d’effacement des symboles non blancs
M1 = ({q0}, {a,#}, δ, q0) avec δ :
δ(q0,a)=(q0,#, 1);
δ(q0,#)=(q0,#, -);
– Cette machine permet d’effacer la bande contenant une suite de ‘a’ et les
– Cette machine permet d’effacer la bande contenant une suite de ‘a’ et les
remplacer par des ‘#’
Exemple2: Machine M2 de déplacement de la tête à gauche jusqu’au blanc ‘#’
M2 = ({q0}, {a,#}, δ, q0) avec δ :
δ(q0,a)=(q0, a, 0); et δ(q0,#)=(q0,#, -)
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
5
VI.2. Fonctionnement d’une machine
de Turing
d (q1, a) = (q2, b, 0)
Lire a Ecrire b
Se déplacer à gauche
d (q1, a) = (q2, b, 1)
q1
q1
a fi
b, 0
q2
Lire a Ecrire b
Se déplacer à droite
a fi
b, 1
q2
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
6
fi
fi
fi
fi
fi
fi
VI.2. Fonctionnement d’une machine
de Turing
Configuration i
……….
b b b a c a ………...
q1
q1
Etat Courant
Etat Courant
d (q1, a) = (q2, b, 1)
a fi
b, 1
q1
q2
Configuration i+1 ……….
b b b b c a ………...
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
7
q2
Etat Courant
fi
fi
fi
VI.2. Fonctionnement d’une machine
de Turing
Configuration i
……….
b b b a c a ………...
q1
q1
Etat Courant
Etat Courant
d (q1, a) = (q2, b, 0)
a fi
b, 0
q1
q2
Configuration i+1 ……….
b b b b c a ………...
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
8
q2
Etat Courant
fi
fi
fi
VI.2. Fonctionnement d’une machine
de Turing
Un mot accepté
Un mot rejeté
Si la machine s’arrête
dans un état final et
le mot est
entièrement lu
entièrement lu
Si la machine s’arrête
dans un état non-final
ou
la machine entre dans
une boucle infinie
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
9
VI.2. Fonctionnement d’une machine
de Turing
Exemple : Une machine de Turing qui accepte a*
a fi
a, 1
fi
fi # ###, -
q1
q1
q2
q2
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
10
fi
fi
fi
fi
fi
VI.2. Fonctionnement d’une machine
de Turing
a fi
a, 1
Rejet
fi
fi # ###, -
q1
q2
Le mot aba est rejeté
Configuration 1
Configuration 1
Configuration 2 finale
Pas de transition possible
Arrêt + rejet du mot aba
# #
a b a # # #
q1
a b a # # #
# #
Publicité
q1
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
11
fi
fi
fi
fi
fi
VI.2. Fonctionnement d’une machine
de Turing
a fi
a, 1
Acceptation
fi
fi # ###, -
q1
q2
Le mot aaa est accepté
Configuration 1
# #
a a a # # #
Configuration 4 finale
Arrêt + acceptation du mot aaa
# #
q1
a a a # # #
q1
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
12
fi
fi
fi
fi
fi
VI.2. Fonctionnement d’une machine
de Turing
Boucle infinie
b fi
a fi
b, 0
a, 1
fi
fi
####, -
####, -
q2
q1
b fi
a fi
b, 0
a, 1
fi
fi # ###, -
q2
q1
Configuration 1
# #
a b a # # #
q1
Configuration 2
# #
a b a # # #
q1
Configuration 3
# #
a b a # # #
q1
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
13
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
VI.2. Fonctionnement d’une machine
de Turing
Configuration 1
# #
a b a # # #
Boucle infinie
b fi
a fi
b, 0
a, 1
fi
fi
####, -
####, -
q1
Configuration 2
# #
q1
a b a # # #
q1
q1
q2
Configuration 3
# #
a b a # # #
Configuration 4
et ca reboucle
q1
a b a # # #
# #
q1
A cause de la boucle infinie, l’état final n’est jamais atteint, la
machine ne s’arrête jamais et le mot en entrée n’est pas accepté
14
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
VI.3. Utilisation d’une machine de
Turing
Une machine de Turing est utilisée selon deux modes. Le premier mode est d'utiliser
une machine comme accepteur et le second est d'utiliser une machine comme
un calculateur.
Dans le mode accepteur, on fournit un mot d'entrée à la machine et celle-ci répond
par oui ou par non. Quand la machine répond oui, on dit que le machine accepte le mot.
La machine définit alors l'ensemble des mots qui sont acceptés. Par convention, on dit
que la machine accepte un mot w s'il existe au moins un calcul acceptant avec w comme
que la machine accepte un mot w s'il existe au moins un calcul acceptant avec w comme
entrée, c'est-à-dire qui commence avec la configuration q0w. L'élément important de
cette définition est qu'un seul calcul acceptant suffit pour que la machine accepte
même si d'autres calculs bloquent ou n'atteignent jamais une configuration acceptante.
Dans le mode calculateur, on fournit un mot d'entrée à la machine et celle-ci retourne
un ou plusieurs mots de sortie. Quand la machine ne donne toujours qu'un seul mot de
sortie, elle calcule une fonction qui associe le mot de sortie au mot d'entrée. On met
donc le mot d'entrée sur la bande, la machine effectue un calcul jusqu'à ce qu'elle
atteigne un état final et le contenu de la bande constitue alors un des mots de sortie.
Comme il peut y avoir plusieurs calculs acceptants, il peut y avoir plusieurs mots de
sortie. Dans le cas d'une machine déterministe, il y a au plus un seul calcul acceptant et
donc au plus un seul mot de sortie.
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
15
VI.4. Exemple de compteur de parité
Une procédure de reconnaissance par une machine de Turing peut être
spécifiée par une liste finie d’instructions.
Un calcul particulier est effectué par la liste d’instructions, l’état initial q0, le
contenu du ruban au départ et la position initiale de la tête de lecture/écriture
sur le ruban.
sur le ruban.
Exemple : Un compteur de parité des 1
Le ruban contient une séquence de 1 et 0 qui se termine par un délimiteur
droit #. L’état final est atteint et la case sur la quelle pointe la tête de L/E est 0
ou 1 selon que le nombre de 1 est pair ou impair
Les instructions sont les suivantes :
(q0, 0, q0, 0, 1)
(q0, 1, q1, 0, 1)
(q0, #, qF, 0, -)
(q1, 0, q1, 0, 1)
(q1, 1, q0, 0, 1)
(q1, # , qF, 1, -)
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
16
VI.4. Exemple de compteur de parité
Illustration d’un calcul:
(q0, 0, q0, 0, 1)
(q0, 1, q1, 1, 1)
(q0, B, q2, 0, -)
(q1, 0, q1, 0, 1)
(q1, 1, q0, 1, 1)
(q1, B, q2, 1, -)
1 0 1 1 0 #
Le nombre de 1 est
impair
1 0 1 1 0 #
1
(q0, 1, q1, 1, 1)
(q0, 1, q1, 1, 1)
(q1, 0, q1, 0, 1)
(q1, 0, q1, 0, 1)
(q1, 1, q0, 1, 1)
(q1, #, qF, 1 , -)
0 fi 0, 1
1 fi
1,1
q0
q0
q1
q1
0 fi 0, 1
1 fi 1, 1
fi 0, -
fi
1, -
qF
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
17
VI.4. Exemple de compteur de parité
Illustration d’un calcul:
(q0, 0, q0, 0, 1)
(q0, 1, q1, 1, 1)
(q0, 1, q1, 1, 1)
Publicité
(q0, B, q2, 0, -)
(q0, #, qF, 0, -)
(q1, #, q2, 1, -)
(q1, 0, q1, 0, 1)
(q1, 0, q1, 0, 1)
(q1, 1, q0, 1, 1)
(q1, 1, q0, 1, 1)
Le nombre de 1 est
pair
1 0 1 #
1 0 1 #
0
0 fi
0, 1
1 fi 1, 1
(1, 1, 1)
q0
q0
q0
q0
q0
q0
q1
q1
q1
q1
0 fi 0, 1
(0, 0, 1)
1 fi 1, 1
(1, 1, 1)
fi
0, -
fi
1, -
qF
q2
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
18
VI.4. Exemple de compteur de parité
Si, en plus du calcul de la parité, on demande de remplacer les 1 par 0, nous
obtenons les instructions suivantes:
(q0, 0, q0, 0, 1)
(q0, 1, q1, 0, 1)
(q0, #, qF, 0, -)
(q1, 0, q1, 0, 1)
(q1, 1, q0, 0, 1)
(q1, #, qF, 1, -)
0, 1
0 fi
1 fi
0, 1
q0
q0
q1
q1
0 fi
0, 1
1 0 1 1 0 #
10 0 10 10 0 B1
Le nombre de 1 est
impair
(q0, 1, q1, 0, 1)
(q0, 1, q1, 0, 1)
(q1, 0, q1, 0, 1)
(q1, 0, q1, 0, 1)
(q1, 1, q0, 0, 1)
(q1, #, qF, 1, -)
1 fi 0, 1
fi 0, -
fi
1, -
qF
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
19
Exercice
Exercice : Vérification des parenthèses
On dispose au départ d’une chaine qui contient des parenthèses. La chaine est
délimitée à droite et à gauche par le symbole #. A l’arrêt de la machine, le symbole
sous la tête de lecture/écriture est 0 si les parenthèses sont bien équilibrées et 1 dans
sous la tête de lecture/écriture est 0 si les parenthèses sont bien équilibrées et 1 dans
le cas contraire.
Donner les instructions pour une machine de Turing qui permet de répondre par 0 ou 1
si les parenthèses sont équilibrées ou non.
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
20
VI.5. Exemple de vérification de
parenthèses
Corrigé:
On démarre sur la première parenthèse. Le calcul consiste à aller chercher vers la
droite la première parenthèse fermante,
l’effacer et revenir vers la gauche pour
chercher la première parenthèse ouvrante à partir de là, l’effacer puis recommencer la
recherche (fermante, ouvrante).
recherche (fermante, ouvrante).
Nous avons besoin donc de deux états: un qui sert à se déplacer à droite (q0) pour
chercher une fermante et un qui sert à se déplacer à gauche (q1) pour chercher une
ouvrante.
Enfin, il se peut que l’on ne rencontre plus de parenthèses fermantes, auquel
cas il faut revenir au point de départ de la chaine en vérifiant qu’il n’ y a plus
d’ouvrante non plus. Un état q2 effectue cette vérification en reculant.
Nous utilisons le symbole x pour remplacer les parenthèses rencontrées pour ne pas
les reprendre une deuxième fois.
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
21
Exercice
X = {(, ), x, #}
Les instructions sont les suivantes :
(q0, ), q1, x, 0)
(q0, (, q0, (, 1)
(q0, #, q2, #, 0)
(q0, x, q0, x, 1)
(q0, x, q0, x, 1)
(q1, (, q0, x, 1)
(q1, #, qF, 1, -)
(q1, x, q1, x, 0)
(q1, x, q1, x, 0)
(q2, (, qF, 1, -)
(q2, #, qF, 0, -)
(q2, x, q2, x, 0)
qF est l’état final
qF est l’état final
(fi
x fi
(, 1
x, 1
q0
) fi
(fi
x, 0
x, 1
fi #, 0
q1
x fi
x, 0
fi 1, -
q2
(fi 1, -
fi
0, -
qF
x fi
x, 0
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
22
Exercice
Une machine de Turing qui accepte {anbn, n ‡ 0}
X = {a, b, x, #}
Les instructions sont les suivantes :
(q0, a, q1, x, 1)
(q0, #, qF, #,-)
(q2, x, q2, x, 0)
(q2, a, q1, x, 1)
(q1, a, q1, a, 1)
(q1, b, q2, x, 0)
(q1, x, q1, x, 1)
(q1, x, q1, x, 1)
Le mot aabb est accepté
1 0 1 1 0 #
(qv, x, qv, x, 1)
(qv, #, qF, #, -)
(q2, #, qv, #, 1)
(q2, #, qv, #, 1)
qF
fi #, -
fi #, -
a fi
x, 1
q1
q0
x fi
a fi
x, 1
a, 1
a fi
x, 1
b fi
x, 0
qv
#fi #, 1
q2
x fi
x, 0
xfi
x, 1
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
23
Exercice
Le mot aba n’est pas accepté
a a b b #
x
x
x b #
q0
q1
x a b b #
x
x
x b #
q1
q1
x a b b #
x
x
x
x #
a fi
x, 1
q1
q0
x fi
a fi
x, 1
a, 1
a fi
a fi
x, 1
x, 1
b fi
x, 0
Publicité
fi #, -
qF
qF
q0
q0
b fi 1, -
b fi 1, -
b fi 1, -
fi #, -
qv
#fi #, 1
q2
x fi
x, 0
q1
q2
x a x b #
x
x
x
x #
xfi
x, 1
q2
q2
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
24
Exercice
Le mot aabb est accepté
x
x
x
x #
x
x
x
x #
q2
qv
x
x
x
x #
x
x
x
x #
q2
qF
qF
qv
x
x
x
x #
x
x
x
x #
fi #, -
fi #, -
a fi
x, 1
q1
q0
x fi
a fi
x, 1
a, 1
a fi
a fi
x, 1
x, 1
b fi
x, 0
qv
#fi #, 1
q2
x fi
x, 0
qv
x
x
x
x #
qv
qF
xfi
x, 1
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
25
Exercice
Le mot aba n’est pas accepté
a b a # #
x
x a # #
q0
qv
x b a # #
x
x a # #
q1
qv
x
x a # #
x
x a # #
qF
qF
fi #, -
fi #, -
q2
qv
x
x a # #
q2
Arrêt de la machine car d (qv, a)
n’est pas définie. Le mot n’est
pas lu donc le mot aba n’est pas
accepté
a fi
x, 1
q1
q0
x fi
a fi
x, 1
a, 1
a fi
a fi
x, 1
x, 1
b fi
x, 0
qv
#fi #, 1
q2
x fi
x, 0
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
26
Exercice
Le mot aabb est accepté
x
x
x
x #
x
x
x
x #
q2
qv
x
x
x
x #
x
x
x
x #
q2
qF
qF
qv
x
x
x
x #
x
x
x
x #
fi #, -
fi #, -
a fi
x, 1
q1
q0
x fi
a fi
x, 1
a, 1
a fi
a fi
x, 1
x, 1
b fi
x, 0
qv
#fi #, 1
q2
x fi
x, 0
qv
x
x
x
x #
qv
qF
xfi
x, 1
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
27
Exercice
Une machine de Turing qui accepte {anbncn, n ‡ 0}
X = {a, b, x, #}
Les instructions sont les suivantes :
(q0, a, q1, x,1)
(q0, #, qF, #,-)
(q1, a, q1, a, 1)
(q1, b, q2, x, 1)
(q2, c, q3, x, 0)
(q2, x, q2, x, 1)
(q3, b, q3, b, 0)
(q3, a, q1, x, 1)
(q1, x, q1, x, 1)
(q2, b, q2, b, 1)
(q3, #, qv, #, 1)
(q3, x, q3, x, 0)
Publicité
(qv, x, qv, x, 1)
(qv, x, qv, x, 1)
(qv, #, qF, #, -)
fi #, -
qF
fi #, -
xfi
x, 1
a fi
x, 1
q1
q0
a fi
x, 1
x fi
a fi
x, 1
a, 1
b fi
x, 1
qv
#fi #, 1
q3
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
c fi
x, 0
q2
x fi
x, 1
b fi b, 1
c fi
a fi
x fi
x, 0
x, 1
x, 0
28
VI.6. Relation avec les calculateurs
et fonction T-calculable
Une machine de turing est un modèle pour un ordinateur avec un temps de
calcul très grand et un bon espace de calcul. Il est possible de simuler un
ordinateur sur une machine de turing.
Fonction T- calculable
Fonction T- calculable
Une fonction f(x) est dite Turing calculable (T-calculable) si ses valeurs peuvent
être calculées par une machine de turing dont le ruban contient une
représentation standard de l’argument x. Quand la machine (le calculateur)
s’arrête, la valeur de f(x) apparaît dans une représentation sur le ruban. Une
représentation standard possible est une représentation en Base 1 (symbole
utilisé est 1).
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
29
VI.6. Relation avec les calculateurs
Exercice : Montrer que la fonction ADD(m, n) est T-Calculable pour les entiers
n et m.
Corrigé:
La réponse est la suivante:
B
1
1
B
1
1
B
m
B
1
n
1
B
m+n
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
30
VI.6. Relation avec les calculateurs
(1, 1, 1)
(B, B, 1)
(B, B, 1)
(1, 1, 1)
(B, B, 0)
(B, B, 0)
(1, 1, 0)
(1, B, 0)
(B, B, 0)
(B, 1, 0)
(1, 1, 0)
(B, B, -)
On avance jusqu’au 2ème
le
délimiteur droit B,
décaler d’une case vers
décaler d’une case vers
la gauche et ensuite
remplacer
le premier
délimiteur B rencontré
par 1.
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
31
VI.6. Relation avec les calculateurs
Exercice: Montrer que la fonction Mul(m, n) = m x n est T-calculable et donner
l’algorithme de calcul associé
Corrigé:
On utilise une machine de turing à trois rubans
3
B
B
B
m*n
2
1
B
1
1
B
B
1
m
n
1
B
Tant qu’il y a 1 dans le
ruban1, on copie le contenu
du ruban2 dans le ruban3
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
32
VI.6. Relation avec les calculateurs
Nous utilisons P1, P2 et P3 pour désigner les têtes de L/E respectivement sur
les rubans 1, 2 et 3.
Tant que P1 pointe sur 1 faire
Tant que P2 pointe sur 1 faire
écrire à la position P3 un 1
avancer P1
avancer P1
avancer P3
Fin tant que
Reculer P2
tant que P2 pointe sur 1 Faire
Reculer P2
Fin Tant que
Avancer P1
Avancer P2
Fin Tant que
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
33
VI.6. Relation avec les calculateurs
et fonction T-calculable
Une machine de turing est un modèle pour un ordinateur avec un temps de
calcul très grand et un bon espace de calcul. Il est possible de simuler un
ordinateur sur une machine de turing.
Fonction T- calculable
Fonction T- calculable
Une fonction f(x) est dite Turing calculable (T-calculable) si ses valeurs peuvent
être calculées par une machine de turing dont le ruban contient une
représentation standard de l’argument x. Quand la machine (le calculateur)
s’arrête, la valeur de f(x) apparaît dans une représentation sur le ruban. Une
représentation standard possible est une représentation en Base 1 (symbole
utilisé est 1).
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
34
La thèse de Church
Thèse de Church
Lorsqu’on dit:
Il existe un algorithme qui calcul f(x)
Il existe un algorithme qui calcul f(x)
On voudrait dire :
Il existe une machine de Turing qui
execute l’algorithme (qui calcul f(x))
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
35
Décidabilité
Décidabilité
Intuitivement, P est décidable s’il existe un algorithme qui
pour chaque x répond par “OUI” ou par “NON” à la
question :
question :
“Est-ce que P(x) est vrai ?”.
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
36
Machine de Turing déterministe
Une machine de Turing déterministe est le modèle formel d'une machine
telle que nous les connaissons (nos ordinateurs sont des machines déterministes).
Les machines déterministes font toujours un seul calcul à la fois. Ce calcul est constitué
d'étapes élémentaires; à chacune de ces étapes, pour un état donné de la mémoire de
la machine, l'action élémentaire effectuée sera toujours la même.
Une machine de Turing non-déterministe est une variante purement
Une machine de Turing non-déterministe
théorique des machines de Turing où à chaque étape de son calcul, cette machine peut
effectuer un choix non-déterministe: elle a le choix entre plusieurs actions, et elle en
effectue une.
Si l'un des choix l'amène à accepter l'entrée, on considère qu'elle a fait ce choix-là. En
quelque sorte, elle devine toujours juste.
A chaque choix non-déterministe, elle se dédouble, les clones poursuivent le calcul en
parallèle suivant les branches du choix. Si l'un des clones accepte l'entrée, on dit que la
machine accepte l'entrée.
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
37
Machine de Turing déterministe
Un mot w = a1a2…an
S’il existe au moins un calcul :
˛ X* est accepté par une machine non déterministe
a1, b1, d1
a2, b2, d2
an, bn, dn
q0
q1
q2
….. qn-1
qn
q0 a1a2…an|-- a1 q1 a2…an |--…….|-- a1a2…an-1 qn-1 an |-- a1…an qn
Leila Jemni Ben Ayed
Théorie des Langages et Compilation (MT)
38