Title: Chapitre 3
1Chapitre 3
2Objectif général
- Comprendre les capacités et les limites des
machines de Turing (et donc des ordinateurs) en
tant que dispositifs de reconnaissance de
langages. Faire le lien avec les grammaires à
structure de phrase.
3Bref historique
- En 1935, Turing se proposa de résoudre la
question posée par Hilbert. - La question est existe-t-il, au moins
théoriquement, une méthode ou un processus au
moyen duquel toutes les questions mathématiques
peuvent être décidées ?
4Bref historique
- Gödel a démontré quil existe des vérités
mathématiques quon ne peut pas démontrer
théorème dincomplétude. - Alan Turing définit en 1934 un processus précis
qui est assez général pour représenter toute
méthode bien définie pour résoudre des problèmes
de façon méthodique et automatisable. De là est
né le concept de la machine de Turing. - Les machines de Turing sont des versions
formelles dalgorithmes. - Thèse de Turing ou Church-Turing aucune
procédure de calcul ne peut être considérée comme
un algorithme à moins quon puisse la représenter
comme une machine de Turing ou bien de façon
équivalente par une fonction ?-récursive.
5Bref historique
- La thèse de Turing signifie que tout ce qui est
calculable peut être calculé par une machine de
Turing. - Il n est pas possible de prouver cette
affirmation. Cela dépend de la définition de
calculable. - La thèse de Turing est vraie si calculer signifie
manipuler un nombre fini de symboles et produire
une réponse après un nombre fini détapes.
6Bref historique
- Les machines de Turing, les grammaires à phrases
et les fonctions ?-récursives sont équivalentes,
ont la même puissance dexpression. - Pour plus de détails voir la page web
http//www.turing.org.uk/turing/bio/part3.html
7Machines de Turing
- Objectif spécifique
- Démontrer le fonctionnement dune machine de
Turing donnée en énumérant les configurations
consécutives à une configuration initiale donnée.
8Introduction
- Dans ce chapitre, nous étudierons une nouvelle
classe de machines, les machines de Turing, ainsi
que les langages quelles acceptent, les langages
à structures de phrase. - Les machines de Turing sont les machines les plus
puissantes.
9- Elles ont été inventées par Alan M. Turing en
1936. Elles sont semblables aux automates finis,
sauf quelles peuvent lire et écrire sur leur
ruban, et que leur tête de lecture/écriture peut
être déplacée dans les deux directions.
10Voici une représentation schématique dune
machine de Turing
Comme pour les automates finis, le ruban est
infini vers la droite.
11Différences avec les automates finis
- La tête peut se déplacer dans les deux sens.
- Cest une tête de lecture/écriture.
- Il y a un seul état final, qui est un état
darrêt (aussitôt que la machine latteint, elle
sarrête).
12- À chaque étape, la machine de Turing
- lit un symbole
- fait une transition détat (elle peut rester dans
le même état) - fait lune des trois actions suivantes
- écriture dun symbole
- déplacement de la tête vers la droite
- déplacement de la tête vers la gauche.
13Exemple
- Voici un diagramme de transitions dune machine
de Turing
- ? est létat initial.
- h est létat final (état darrêt).
- ?/a signifie lire ?, puis écrire a.
- a/R signifie lire a, puis déplacer la tête vers
la droite. - b/R signifie lire b, puis déplacer la tête vers
la droite
14Définition
- Une machine de Turing est un sixtuplet ( S, ?,
?, ?, ?, h) où - S est un ensemble fini détats.
- ? est lalphabet de la machine ou alphabet
dentrée (les séquences dentrée sont formées
avec cet alphabet). Lespace libre (ou blanc),
symbolisé par ?, ne fait pas partie de ?, i.e.
quon a ? ? ?.
15- ? est lalphabet du ruban. On a ? ? ? et ? ? ?.
- ? est la fonction de transition ? (S - h) ?
?? S ? (??L,R) où L, R ??. - La signification de ? est la suivante
- ?(p, x) (q, y) (où y ??) si dans létat p le
symbole sous la tête est x, remplacer x par y et
passer dans létat q. - ?(p, x) (q, L) si dans létat p le symbole
sous la tête est x, déplacer la tête dune case
vers la gauche et passer dans létat q. - ?(p, x) (q, R) si dans létat p le symbole
sous la tête est x, déplacer la tête dune case
vers la droite et passer dans létat q. -
16- Puisque ? est une fonction, la définition
précédente est celle dune machine déterministe,
i.e. non ambiguë et totalement définie (létat h,
doù norigine aucune transition, a été enlevé de
S avant de former le produit cartésien qui est le
domaine de ?.) - ? est létat initial. Dans les diagrammes de
transitions, il sera indiqué de la même manière
que pour les automates finis. - h est létat final (état darrêt). Dans les
diagrammes de transitions, il sera indiqué par un
double cercle, comme dhabitude.
17Remarque
- Une machine de Turing peut
- se rendre à létat final et arrêter
- boucler indéfiniment
- terminer anormalement en déplaçant la tête à
gauche du ruban.
18Remarques
- On suppose que ? représente une case inoccupée du
ruban initialement, toutes les cases autres que
celles qui contiennent la séquence dentrée
contiennent un ?. - Notez aussi quil y a un seul état final.
19Exemple
- Avec la machine suivante on a
S ?, h? a, b? a, b, ??(?, a) (?,
R)?(?, b) (?, R)?(?, ?) (h, a)
Tant que cette machine rencontre des a et des b,
elle déplace la tête vers la droite. Lorsquelle
rencontre un blanc, elle passe dans létat final,
en remplaçant ce blanc par un a.
20Définition
- Une configuration dune machine de Turing, cest
la donnée dun état et une description du contenu
du ruban avec une indication de la position de la
tête de lecture. - La description du ruban se fait en donnant la
séquence de symboles du ruban en commençant par
la première case. - Le symbole sous la tête de lecture/écriture est
souligné. - Des à droite de cette séquence indiquent que le
reste du ruban contient des blancs.
21Exemple
- Une configuration possible de la machine suivante
est
? abb?a??
Létat est ?. Le premier symbole du ruban est le
a de gauche il est suivi d un b,puis d un
autre b sur lequel se trouve la tête de lecture
de la machine.
22Supposons que la configuration initiale soit ?
abb?a?? Les configurations successives sont
alors
23Exercice
- Supposons que la configuration initiale de la
machine de Turing suivante soit 1 aaa?? Donnez
les configurations successives à cette
configuration initiale.
24Solution
État Ruban 1 aaa?? 2
aaa?? 1 aaa?? 2 aaa?? 1 aaa??
3 aaa??
25Exercice
- Construisez une machine de Turing M (S, a,
b, a, b, ?, ?, ?, h) qui arrête si et
seulement si le patron abab se trouve sur le
ruban à droite de la position initiale de la tête
de lecture. Donnez la suite de configurations si
la configuration initiale est ? a?abab? Que se
passe-t-il si la configuration initiale est ? ab?
?
26Solution
27État Ruban 1 a?abab? 2
a?abab? 1 a?abab? 2 a?abab?
3 a?abab? 4 a?abab? 5 a?abab? arrêt
28État Ruban 1 ab?? 2 ab??
3 ab?? 1 ab?? boucle infinie
29Construction modulaire
- Objectif spécifique
- Démontrer le fonctionnement dune machine de
Turing donnée sous la forme dun schéma de
combinaison de machines de Turing en énumérant
les configurations du ruban consécutives à une
configuration initiale donnée.
30Remarque
- Nous allons définir quelques machines de Turing
simples qui vont servir de blocs de base pour les
constructions ultérieures. Mais dabord, voyons
comment combiner des machines de Turing.
31Combinaisons de machines de Turing
- Méthode
- Enlever le statut détat initial à tous les états
initiaux, sauf à celui de la machine qui est
activée en premier. - Enlever le statut détat final à tous les états
finaux et introduire un nouvel état final.
32- Pour chaque ancien état final p et chaque x ??
- Si, après avoir atteint létat p avec le symbole
courant x (le symbole sous la tête de lecture/
écriture), la machine de Turing composée doit
sarrêter, ajouter la transition x/x de p vers le
nouvel état final. - Si, après avoir atteint létat p avec le symbole
courant x, la machine combinée doit transférer le
contrôle à la machine M (S, ?, ?, ?, ?, h),
alors ajouter la transition x/z de p vers létat
q de M tel que ?(?, x) (q, z) (i.e. quon
ajoute la transition ?(p, x) (q, z) ). L ajout
de cette transition revient à simuler, dans
l état p, le comportement de M dans l état ?
lors de la lecture dun x.
33Exemple
- Nous avons trois machines de Turing A, B et C
avec ? a, b, ?. - La machine A déplace la tête dune case vers la
droite.
34- La machine B trouve le premier a à droite de la
cellule courante.
- La machine C trouve le premier b à droite de la
cellule courante.
35On demande de construire une machine qui trouve
la deuxième occurrence du symbole non blanc (i.e.
différent de ?) qui est à droite de la position
initiale de la tête de lecture/écriture. Si le
symbole à droite de la position initiale de la
tête est ?, la machine combinée doit terminer
immédiatement.
36Solution Soit h le nouvel état final. Les
transitions de létat n vers létat h, de létat
r vers létat h et la transition ??? de létat t
vers létat h sont ajoutées en vertu de la partie
3(a) de la méthode précédente, alors que les
autres transitions qui partent de létat t
relèvent de la clause 3(b). Certaines des
transitions qui sont ajoutées ne seront jamais
utilisées, comme la transition b/b à partir de
létat n (car dans létat n, le symbole courant
est toujours un a). Néanmoins, ces transitions
doivent être ajoutées afin que la machine
composée soit totalement définie. Dans le cas de
la transition b/b, on peut considérer que si
létat n est atteint avec un b comme symbole
courant, alors la machine composée doit
sarrêter cest pour cela que cette transition
se dirige vers létat h.
37(No Transcript)
38Supposons que la configuration initiale soit s
a?bababba?
Le symbole à droite de la tête de
lecture/écriture est b. Loccurrence de b
cherchée est la suivante cest le b qui occupe
la septième case du ruban. Voici une suite de
configurations qui démontre comment cette
occurrence est trouvée.
État ruban s a?bababba? t
a?bababba? q a?bababba? q a?bababba?
r a?bababba? h a?bababba?
39Schémas de combinaisons de machines de Turing
- Nous introduisons maintenant une notation qui
permet de décrire de manière plus compacte des
combinaisons de machines de Turing.
40Notation
- x, y, z symboles de lalphabet
- A, B, C machines de Turing
41(No Transcript)
42La machine sarrête si x est le symbole courant
et quil ny a pas de transition pour x.
43Exemple
- La combinaison de machines de lexemple 3.10 est
représentée par le schéma suivant
- La machine A commence lexécution (elle déplace
la tête vers la droite) puis - elle passe le contrôle à B si le nouveau symbole
courant est a, - elle passe le contrôle à C si le nouveau symbole
courant est b, - elle sarrête si le nouveau symbole courant est
?, car après lexécution de A, il ny a pas de
transition pour ? i.e., on considère que la
machine passe dans létat final lorsquil ny a
pas de transition définie dans le schéma de
combinaison.
44Exemple
- Soit la machine de Turing suivante
Ce diagramme indique que si M2 commence
lexécution avec a ou b comme symbole courant
(symbole sous la tête) et si elle termine avec le
même symbole courant, alors elle passe le
contrôle à M1, sinon elle sarrête. Si le symbole
courant est ? après lexécution de M1 ou de M2,
il y a arrêt.
45Voici la même machine un peu plus détaillée
46Blocs élémentaires
- Nous allons définir une série de machines
élémentaires qui vont nous servir de blocs de
base pour la construction de machines plus
complexes. Nous supposerons que lalphabet du
ruban est ? x, y, ?. Il est facile de
généraliser à dautres alphabets.
471. La machine R déplace la tête de
lecture/écriture dune case vers la droite.
482. La machine L déplace la tête de
lecture/écriture dune case vers la gauche.
493. La machine x écrit un x (i.e. elle remplace le
symbole courant par un x).
50Avec les trois machines précédentes, nous pouvons
former des machines plus complexes, comme ?RyL
cette machine écrit un y à droite de la position
initiale de la tête, et ramène la tête dans la
position initiale. Par exemple, ?RyL fait passer
de la configuration ruban
xxx??
à la configuration
xxy??
514. La machine Rx déplace la tête de
lecture/écriture vers la droite jusquà ce
quelle trouve un x. La machine R?x déplace la
tête vers la droite jusquà ce quelle rencontre
un symbole différent de x.
Note les deux machines font R avant de tester le
symbole. Le symbole initialement sous la tête ne
compte donc pas.
De même, on construit Lx et L?x qui font la
recherche vers la gauche.
Cas particuliers très utiles R?, R??, L?, L??
52ATTENTION Les machines Rx et Rx sont différentes
(ainsi que Lx et Lx). Lorsque vous décrivez une
machine de Turing, assurez-vous que votre façon
décrire permette de distinguer ces cas. Si x est
en indice, faites le petit et écrivez-le plus bas.
535. La machine SR (shift right) déplace dune case
vers la droite la séquence de symboles non blancs
immédiatement à gauche de la tête dans la
configuration initiale ( on suppose quil y a un
? à gauche de cette séquence).
54Voici une suite de configurations du ruban
décrivant une exécution de SR. Il nest pas
possible de donner létat de la machine lorsquon
donne une configuration, puisque les descriptions
schématiques comme celles de SR ne précisent pas
les états.
55 ?xyyxx ? ? ? Exécution de ?. ? ?xyy ?x ?
? ? Exécution de L. ? ?xyy ?x ? ? ? w y,
exécution de L. ? ?xyy ?x ? ? ? w y, ? y,
exécution de R. ? ?xyy ?x ? ? ? w
y, ? y, exécution de ?. ?
56 ?xyy ?x ? ? ? w y, ? y, exécution de L.
? ?xyy ?x ? ? ? w y, ? y, exécution de L.
? ?xyy ?x ? ? ? w y, ? x, exécution de R.
? ?xyy ?x ? ? ? w y, ? x, exécution de ?.
? ?xxy ?x ? ? ? w y, ? x, exécution de L.
?
57 ?xxy ?x ? ? ? w y, ? x, exécution de L.
? ?xxy ?x ? ? ? w y, exécution de R. ?
?xxy ?x ? ? ? w y, exécution de ?. ? ? ?xy
?x ? ? ? w y, exécution de R?. ? ? ?xy ?x ?
? ? w y, exécution de w. ? ? ?xy yx ? ?
58Avec la configuration initiale x? ? ?, il y a
terminaison anormale (la tête tombe en bas du
ruban). Remarquez la méthode employée par SR.
Elle marque la position initiale avec un ?
quelle recherche à la fin. Un autre symbole
spécial pourrait être utilisé au lieu de
?. Similairement à SR, la machine SL déplace
dune case vers la gauche la séquence de symboles
non blancs immédiatement à droite de la tête dans
la configuration initiale (on suppose quil y a
un ? à droite de cette séquence).
59Exercice
En utilisant les machines de Turing élémentaires
présentées auparavant, construisez une machine
qui fait la copie dune séquence comprise entre
deux blancs. Cest-à-dire quelle passe dune
configuration de la forme ?w ? à la
configuration ?w ?w ? où w ???. Notez que
lécriture du w de droite peut se faire dans des
cases qui à lorigine ne contiennent pas
nécessairement ?.
60Solution
61Exercice
En utilisant les machines de Turing élémentaires
présentées auparavant, construisez une machine
qui décrémente une valeur binaire de 1. Par
exemple, elle passe de la configuration ?101
? à la configuration ?100 ?
62Solution
63Exercice
En utilisant les machines de Turing élémentaires
présentées auparavant, construisez une machine
qui remplace la séquence w1 par la séquence w2
qui la suit dans un certain ordre
lexicographique. Elle passe de la configuration
?w1 ? ? à la configuration ?w2 ? ? Lalphabet
de la machine est ? x, y, z. Lordre
lexicographique (sur ?) qui est utilisé est ?,
x, y, z, xx, yx, zx, xy, yy, zy, xz, yz, zz, xxx,
64Solution
65Exercice
- En utilisant les machines de Turing élémentaires
présentées auparavant, construisez une machine
qui complémente la séquence de 0 et de 1
immédiatement à droite de la tête de
lecture/écriture et qui retourne la tête à sa
position initiale. On suppose quil y a un ? à
droite de cette séquence. Prenez ? 0, 1, ?.
66- Dans un premier temps, supposez que la
configuration initiale du ruban soit ?w ? , avec
w ? 0, 1 (une telle supposition permet de
trouver une machine simple). Donnez la suite des
configurations du ruban si la configuration
initiale est - ?010 ?
- ? ?
Solution
67a) ?010 ?
?010 ? ? R? ? ?010 ? ? L ? ?010 ? ? 1
? ?011 ? ? L ? ?011 ?
? 0 ? ?001 ? ? L ? ?001 ? ? 1 ? ?101 ? ?
L ? ?101 ?
68(b) ? ?
? ? ? R? ? ? ? ? L ?
69- Dans un deuxième temps, supposez que la
configuration initiale soit uxw ? , avec x ? ?
et u, w ? ?. Donnez la suite des configurations
du ruban si la configuration initiale est 010010
?
700 1 0 0 1 0 ? ? ?, w 0 ? 0 1 ? 0 1 0 ? ?
R?, w 0 ? 0 1 ? 0 1 0 ? ? L, w 0 ? 0 1 ?
0 1 0 ?
? 1 ? 0 1 ? 0 1 1 ? etc 0 1 ? 1 0 1 ? ?
L, w 0 ? 0 1 ? 1 0 1 ? ? w 0, w ?
0 1 0 1 0 1 ?