• Aucun résultat trouvé

TDn 6 ◦ InformatiqueThéorique:MachinesdeTuring

N/A
N/A
Protected

Academic year: 2022

Partager "TDn 6 ◦ InformatiqueThéorique:MachinesdeTuring"

Copied!
7
0
0

Texte intégral

(1)

Polytech Paris Sud - ET4 Année 2018-2019

Informatique Théorique : Machines de Turing

TD n

6

Semaine du 22 octobre

On a utilisé en cours la notation p−−−→a,b,x q pour dire que si on est dans l'étatp et que la tête lit la lettreaalors elle la remplace par la lettrebet va dans la direction x(droite ou gauche). Cette notation était pratique pour comprendre la théorie, mais est longue à lire en pratique. On va simplier cette notation par p−−→aDb q si x=→ va à droite, et p−−→aGb q si x=← va à gauche. On note aussi simplement aD pour aDa quand la lettre n'est pas changée.

Démonstration. En terme pédagogique, ce n'est pas facile de corriger une machine de Turing. Il y a trois exos possibles : comprendre une machine qui fonctionne en mode vérication, comprendre une machine en mode écriture, dénir une machine qui résout un problème donné.

Comprendre en vérication : expliquer le rôle de chaque état, à quoi il sert et comment il départage les mots. ça peut aussi être des blocs d'états. Si on n'est pas sûr de sa réponse, justier ce qui nous amène à penser de la sorte, avec des exemples par exemple.

Comprendre en écriture : pareil, décrire ce à quoi sert à chaque état, et si possible donner un calcul explicite.

En dénition de machine : expliquer avec des phrases le principe de la machine et le rôle de chaque état.

Compréhension de machines de Turing

(2)

start 0 1 2 3 4 5 6 7

8 aD

aD bD

bD cD

cD

#G

$G

#D cG$

$G cG

bG$

$G bG

aD$

$D bD cD

#G

Démonstration. La machine s'arrête toujours (évident ?) et reconnaît le langage{anbncn | n1}. Les premiers états vérient que le mot est de la forme ambpcq puis on remplace les dernières lettres de chaque bloc progressivement.

Exercice 2. La machine de Turing suivante, sur l'alphabet d'entrée A ={a, b, c} avec symbole blanc#et symbole de bande$, n'a pas d'état nal. Elle est utilisée en mode cal- culateur et on suppose qu'elle est sur une bande bi-innie. Que fait-elle ? Quand s'arrête t'elle ? À quoi servent les états 8et9?

start 0 1 2 4

3

6 5

7

8 9

aD bD

#G aG bG

#D

aD$

aD

bD$

bD bDa aDb

#G

#Gb

#Ga

bG aG

aG

bG

$Da

$Db

aD aG bD

bG

#D

Démonstration. La machine s'arrête toujours et double chaque lettre d'un mot. Les états 8 et9servent uniquement à ramener la tête de lecture en début de ligne.

Exercice 3. () On considère la machine de Turing non déterministe suivante sur l'al- phabet d'entrée {0,1,+,(,),k} avec symbole blanc # et symbole de bande $. Quels sont les mots reconnus par cette machine ? On essaiera notamment sur le mot suivant (001 + 11 + 1001 + 101)(011 + 10 + 111)(10 + 1)k(10 + 1 + 101)(0101 + 1)(110 + 00).

(3)

start 0 1 2

4 3

(D$

0D$

1D$

0D$

1D$

+D$

0D 1D

0D 1D )D$

+D$

0D$

1D$

+D$

)D$

5 kD

6 7

9 8

(D$

0D$

1D$

0D$

1D$

+D$

0D 1D

0D 1D )D$

+D$

0D$

1D$

+D$

)D$

10

#G

$G

11 12

13

14 15

1G$

0G 1G

$G kG

$G

1D$ 0D

1D

$D kD

#G 0G$

0G 1G

$G kG

$G 0D$

16

kG$

17

$G

#D

Démonstration. Les mots reconnus doivent d'abord être bien formés : il s'agit de mots constitués d'une expression gauche et d'une expression droite séparées par unk, chacune des deux expressions étant une concaténation (éventuellement vide) de mots binaires non vides additionnés (au moins un mot) et mis entre parenthèses. Ensuite il faut et il sut qu'il existe au moins une manière de choisir un et un seul mot binaire dans chaque parenthèse de sorte que les deux mots binaires obtenus par concaténation de ces mots choisis soient les mêmes de chaque côté du k. Le mot en exemple est reconnu en choisissant les mots binaires 1001,011,10 à gauche deket10,0101,110à droite de k.

Le premier bloc eace certains des mots dans chaque parenthèse (le non déterminisme est au niveau du n÷ud1) pour n'en garder qu'un (quand on passe à l'état3 on en garde un, puis dans l'état 4 on eace ce qui reste) dans la première moitié (avant k). Pareil pour le second bloc après la seconde moitié. Tous les autres caractères ont été eacés par des$. Le troisième bloc compare la dernière lettre du deuxième bloc avec la dernière du premier. Si c'est la même ils les eacent et recommence la comparaison.

Création de machines de Turing

Exercice 4 (Palindrome). 1. Construire une machine de Turing acceptant le langage

(4)

Démonstration. On utilise la méthode suivante :

lire le premier caractèrea oub du ruban l'eacer (avec un blanc) et conserver sa valeur dans l'état (étatsqa etqb) ;

aller à la dernière case non vide du ruban ;

vérier que le caractère qui s'y trouve est bien le même et l'eacer ;

revenir (état qd) au premier caractère non blanc du ruban et recommencer tant que ce caractère estaou b.

Lorsque le premier caractère est c (état qc) vérier que la case suivante est bien vide et à cette condition entrer dans l'état nal.

La machine de Turing est :

start 0

qa qa0

qd

qb q0b qc

f

aD#

aD bD cD

#G

aG#

aG bG cG

#D

bD#

aD bD cD

#G cD bG#

#D

Pour lire un palindrome, on supprime l'état qc et on crée la transition 0 −−→#D f. Mais ceci ne permet de lire que les palindromes de taille paire. On ajoute donc les transitions suivantes :

0 start

qa q0a

qd

qb qb0 f

aD#

aD bD cD

#G

aG#

aG bG cG

#D

bD#

aD bD cD

#G

bG#

#D

#D

#D

(5)

Exercice 5 (Somme). 1. Construire une machine de Turing calculant n+ 1 pour n donné en binaire sur le ruban d'entrée. Par simplication on suppose quenest écrit de la gauche vers la droite des bits de poids faibles aux bits de poids forts.

2. De même en supposant n >0 construire une machine de Turing calculantn1. 3. En utilisant ce qui précède, décrire une méthode qui permettrait de calculern+m

en binaire. On peut le faire dans le cadre classique, mais on encourage à considérer une machine de Turing à deux bandes, la première ayant le plus grand nombre des deux, les deux représentations étant toujours des bits de poids faibles aux bits de poids forts. Le résultat sera écrit sur la première bande en n de parcours.

On introduit des notations sur les machines de Turing à plusieurs bandes : si on fait l'opérationaDbsur la première bande eta0Db0sur la seconde on noteraaDb;a0Db0. La tête a le droit de rester en place ce que l'on note aRb. Enn on note pour rester en place quelle que soit la lecture.

Démonstration. 1. Comme on a aligné les bits de poids faibles à gauche, il sut de chercher le premier caractère 0 et de le remplacer par 1 en remplaçant tous les 1 intermédiaires par des0, à cause des propagations de retenues. Si on arrive au bout on ajoute un1. Voici la machine :

start 0 f

1D0

0D1

#D1

2. Le principe est le même.

start 0 f

0D1

1D0

3. On décrémente la seconde bande (état q) puis on ramène la tête au début, et on augmente la première de un tant qu'on n'a rien détecté d'étrange sur la deuxième (en gros que le second est à 0). Sinon on passe dans l'état q0 et on a ni.

start 0 q 1 q+

∅; 0D1

∅; 1G0

∅; #D

∅; 1G

∅; #D

1D0;

0G1;

#G1; 0G;

1G;

#D;

(6)

Exercice 6 (Conditionnelles). On veut créer une machine de Turing qui prend en entrée deux entiers positifs n1 et n2 écrits en binaires et renvoie le plus grand des deux. Pour simplier on se place dans le modèle de la machine de Turing à plusieurs bandes. On suppose que la machine a trois bandes. La première contient n1, la seconde n2 et la troisième est entièrement constituée de symboles blancs # initialement et est utilisée pour écrire la sortie. On suppose aussi que les bits de poids forts den1 etn2 sont alignés sur la gauche, de sorte que le premier caractère des deux premières lignes est 0 si et seulement si la ligne en question code le nombre0.

Démonstration. On compare les deux nombres déjà en regardant qui a le plus de bits.

En cas d'égalité on doit faire une comparaison plus ne : on rembobine via l'état1 puis on compare deux à deux dans l'état 2. Puis on a deux états à partir desquels on fait le recopiage :q1 si le mot sur la première bande est le plus grand, q2 sinon. On rembobine alors les lectures puis on recopie. La seconde transition de2 versq1 (qui n'existe pas de 2 versq2) gère le cas d'égalité.

0 start

0D; 0D; 1D; 0D; 0D; 1D; 1D; 1D;

q1

q2

0D; #D; 1D; #D;

#D; 0D;

#D; 1D;

0G;∅; 1G;∅;

∅; 0G;

∅; 1G;

q01

#D;∅;

1D;∅; #D1 0D;∅; #D0

q02

∅; #D;

∅; 1D; #D1

∅; 0D; #D0

f

#D;∅;∅

∅; #D;∅

1 #G; #G; 0G; 0G; 1G; 0G; 0G; 1G; 1G; 1G;

2 #D; #D;

0D; 0D; 1D; 1D;

1D; 0D;

#D; #D;

0D; 1D;

Lien avec les automates

Exercice 7. 1. SoitA= (Q, A, I, F, E)un automate synchrone. Comment créer une machine de TuringM= (Q0, A0,#, B, q0, F0, E0) reconnaissant le même langage ? Si A est déterministe, on veillera à ce que la machine de Turing Mconstruite le soit aussi.

(7)

2. On demande souvent aux machines de Turing de s'arrêter dès qu'elles arrivent sur un état nal. On ajoute donc cette condition à notre création de la question 1. Proposer une construction.

3. Rééchir une ou deux minutes à la question des ε-transitions.

Démonstration. 1. Si |I| >1 on commence par créer un automate A avec un seul état initial (on peut aussi déterminiser). On dénit A1 = (Q1, A,{i}, F, E1) avec Q1=Q∪ {i}et :

E1 =E∪ {ia q | ∃pI, pa qE}.

SiI a déjà un état initial on dénitA1 =A. Maintenant on veut dénit la machine de Turing. On va essentiellement toujours lire vers la droite, et on s'arrête donc quand on lit le caractère blanc #. On dénit alors Mainsi :

Q0 =Q1,A0=A,B =A∪ {#},q0 =i,F0 =F

E0 ={p−−−→a,a,→ q | pa qE1}. On s'arrête donc dès qu'on lit #.

2. Le vrai problème est cette question de l'arrêt : dans une machine de Turing, on veut s'arrête dès qu'on atteint un état nal. Si on garde la machine de Turing précédente le langage est changé drastiquement. Imaginons en eet que l'état initial deA soit aussi nal, alors la machine associée s'arrête tout de suite, et on accepte tous les mots. On va donc supprimer tous les états et rajouter deux états, un nal et non- nal, pour contrôler la n du mot (la lecture du caractère #).

On dénit la machine de TuringM0= (Q0∪ {q, q0}, A,#, B, q0,{q}, E00) avec E00=E0∪ {p−−−−→#,#,→ q | pF} ∪ {p−−−−→#,#,→ q0 | p /F}.

3. Cela pose plusieurs problèmes : quel état on atteint ? Le caractère ε n'est jamais lu sur la bande. L'idée naturelle est d'utiliser l'algorithme de suppression des ε- transitions.

Références

Documents relatifs

- Tracer 4 ronds sur du papier canson noir (de la taille du fond d'une grosse boite de conserve environ), former 4 cônes et les coller sur..

Par conséquent, en supprimant la première ligne de li py l'élément a m , qui figurait en tète de la dernière colonne, se trouve sup- primé, et la dernière colonne du

En effet, si 9 est de degré p , il résulte du lemme III que le système S^ admet pour les [3 et les a une solution unique (abstraction faite d'un facteur constant arbi- traire),

Or MM' est infiniment petit du premier ordre et il en est de même de cos({VIM / I 1 ) ; d'autre part F, I { a une limite, inconnue pour nous actuellement, mais que nous

c'est-à-dire, qu'en supposant chaque reste égal à la moitié du diviseur respectif; n serait tout au plus égal à 3&; mais ces restes, sauf le dernier, sont tous plus petits que

1° Pour avoir une limite 1' du nombre de divisions à faire dans la recherche du plus grand commun diviseur de deux nombres entiers A et B, on écrit les termes de la série (2) jus-

On divise le plus grand nombre par le plus petit en s’arrêtant au quotient entier(On réalise ainsi une division Euclidienne) On recommence la division en prenant le diviseur et le

Réponses à renvoyées avant le dimanche 22 mars minuit. /1 b) A l'aide d'un exemple chiffré, détermine cette vitesse. /2 c) Quelle particularité de le vitesse de la lumière,