Vous êtes sur la page 1sur 10

Théorie des langages et des

automates

Ramzi GUETARI
Année Universitaire 2011 / 2012

ISI
Institut
Supérieur
Informatique

‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

ISI
Institut
Supérieur
Informatique 1
‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

Généralités

Une machine de Turing est un automate abstrait, constitué des


éléments suivants:
 Une bande infinie, décomposée en cellules au sein desquelles
peuvent être stockés des caractères (issus d’un ensemble fini).
 Une tête de lecture / écriture pouvant :
 Lire et modifier le caractère stocké dans la cellule correspondant à la position
courante de la tête (le caractère courant).
 se déplacer d’une cellule vers la gauche ou vers la droite (modifier la position
courante).
 Un ensemble fini d’états internes permettant de conditionner le
fonctionnement de la machine.
ISI
Institut
Supérieur
07/12/2011 Informatique 2
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

1
Généralités

 une table de transitions indiquant, pour chaque couple (état interne,


caractère courant) les nouvelles valeurs pour ce couple, ainsi que le
déplacement de la tête de lecture/écriture.
Dans la table de transitions, chaque couple est donc associé à un
triplet : (état interne[nouveau], caractère[nouveau], déplacement)

ISI
Institut
Supérieur
07/12/2011 Informatique 3
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

Généralités

"guts" of the machine


on/off
switch accept or
reject
tape
tape read tape head tape head
input read/write
head can move can read or
tape head
left or right.. write!

ISI
Institut
Supérieur
07/12/2011 Informatique 4
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

2
Généralités

Une machine de Turing (TM) est un automate d’états fini avec une
«déformation» :
 Un ruban d’entrée avec un symbole à chaque position.
 Le ruban est taille infinie dans les deux directions.
 Les positions non occupées contiennent un symbole spécial “cellule-
blanche” noté B (on peut aussi utiliser ε)
 La TM a une tête de lecture / écriture pouvant se déplacer dans les
deux sens (gauche et droite).
 La tête est initialement placée sur le premier symbole d’entrée.

 Le contenu d’un emplacement (case) dans la ruban d’entrée peut


être remplacé par un autre symbole.
ISI
Institut
Supérieur
07/12/2011 Informatique 5
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

Généralités

Une TM M = (E, , , , B, e0, F), où


 E est un ensebmle fini d’états.
  est l’alphabet d’entrée.
  est un ensemble fini de symboles (L’alphabet du ruban)
  est la fonction de transitions :
 : E    E    {L, R}
 B   est un symbole spécial appelé blank.
 =  - {B}
 e0 est l’état initial.
F est l’ensemble des états d’acceptation.

ISI
Institut
Supérieur
07/12/2011 Informatique 6
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

3
Fonctionnement d’une Machine de Turing

 La bande est initialisée avec la séquence de caractères


correspondant aux données d’entrées.
 Pour chaque déplacement: la TM écrit un symbole, effectue une
transition entre deux états, et déplace la tête d’un cran, à gauche ou
à droite.
 Si la TM accède à un état d’acceptation, elle s’arrête et accepte la
bande d’entrée.

ISI
Institut
Supérieur
07/12/2011 Informatique 7
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

Fonctionnement d’une Machine de Turing

 Le déplacement de la tête de lecture est déterminé par l’état et le


symbole courants.
 La tête de lecture/écriture est positionnées sur la première cellule de
la bande.
 La TM commence à l’état initial et recherche le caractère non blanc
le plus à gauche sur la bande.
 Accepteur : La machine accepte ou rejette une bande d'entrée par
selon qu'elle se retrouve dans un état d’acceptation ou non.
 La TM effectue un calcul en modifiant la bande d’entrée pour fournir
une sortie.
ISI
Institut
Supérieur
07/12/2011 Informatique 8
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

4
Les transition d’une machine de turing

 Diagramme d’états / transitions :


a/b, R
q r

a/b, L
q r

 Déplacement vers la droite: si la TM est dans l'état q, et que le


symbole courant du ruban est a, écrire b à la place de a, se déplacer
d'une position vers la droite, et se placer à l‘état r.
 Déplacement vers la gauche : même principe sauf que le
déplacement s’effectue à gauche.
ISI
Institut
Supérieur
07/12/2011 Informatique 9
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

Que peut une machine de turing faire ?

 Il est clair qu‘une TM peut accepter n'importe quel langage régulier.


Il suffit pour cela de limiter les «instructions» de lecture de la bande
d’entrée de gauche à droite et de ne jamais modifier son contenu.
 Qu’en est t-il des langages hors contextes ?
 Une TM peut elle accepter {anbn} ?
 Qu’en est-il de {anbncn} ?

ISI
Institut
Supérieur
07/12/2011 Informatique 10
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

5
TM pour langages réguliers

L (a*b*c*)

a/a, R b/b, R

b/b, R
1 2

B/B, R c/c, R c/c, R

B/B, R
B/B, R
4 3

c/c, R

ISI
Institut
Supérieur
07/12/2011 Informatique 11
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

TM pour les langages hors contexte

L (anbn)
 Effacer le premier symbole (a) et le dernier symbole (b) à chaque
traitement; si le mot était {anbn}, il ne reste rien à la fin.
 Cinq étapes :
1. Si le symbole courant est B, aller à l’étape 5. Si le symbole courant est a,
écrire B par dessus et aller à l’étape 2.
2. Se déplacer à droite en ignorant tous les a et b rencontrés. Lorsqu’on arrive
au premier caractère B se déplacer à gauche d’une case et aller à l’étape 3.
3. Si le symbole courant est b, écrire B par dessus et aller à l’étape 4.
4. Se déplacer à gauche en ignorant tous les a et b rencontrés. Lorsqu’on arrive
au premier caractère B se déplacer à droite d’une case et aller à l’étape 1.
5. Accepter.
ISI
Institut
Supérieur
07/12/2011 Informatique 12
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

6
TM pour les langages hors contexte

L (anbn)
a/a, R
b/b, R

B/B, R a/B, R
5 1 2

B/B, R B/B, L

4 3
b/B, L
a/a, L
b/b, L
ISI
Institut
Supérieur
07/12/2011 Informatique 13
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

TM pour les langages hors contexte

L (anbn) – Une autre approche :


 On marque chaque a et chaque b correspondant avec X.

 On va considérer le premier a et le premier b rencontrés à chaque


phase de gauche à droite.
 Chaque fois qu’un symbole a est marqué, on se déplace à droite
jusqu’à ce qu’on rencontre un symbole b. Marquer le symbole b et se
déplacer à gauche jusqu’au premier symbole a restant. Répéter
l’opération tant c’est possible.
 S’il n’y a plus de symboles a, se déplacer à droite pour vérifier qu’il
n’y a plus de symboles b non plus.

ISI
Institut
Supérieur
07/12/2011 Informatique 14
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

7
TM pour les langages hors contexte

 L (anbn) a/a, R X/X, R

a/X, R
X/X, R
1 2 3 X/X, L
B/B, R b/X, L b/X, L

X/X, R
7 4
a/a, L
B/B, R 5
6
a/a, L B/B, R

ISI
Institut
X/X, R Supérieur
07/12/2011 Informatique 15
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

TM pour les langages hors contexte

Stratégie pour anbncn

1. Si le symbole courant est B, aller à l’étape 7. Si le symbole courant


est a, le remplacer par un X et aller à l’étape 2.
2. Se déplacer à droite en passant tous les symbole a et Y. au
premier symbole b, le réécrire par Y et aller à l’étape 3.
3. Se déplacer à droite en ignorant les b et les Z. Au premier c, écrire
Z par dessus et aller à l’étape 4.
4. Se déplacer à gauche en passant les a, b, Z, et Y. Au premier X,
se déplacer à droite d’une case et aller à l’étape 5. I n s t i t u t
07/12/2011
Supérieur
Informatique ISI
16
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

8
TM pour les langages hors contexte

Stratégie pour anbncn


5. Si le symbole courant est a, écrire X et aller à l’étape 2. Si le
symbole courant est Y aller à l’étape 6.
6. Se déplacer à gauche passant tous les Y et Z. Au premier B, aller
à l’étape 7.
7. Accepter.

ISI
Institut
Supérieur
07/12/2011 Informatique 17
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

TM pour les langages hors contexte

L (anbncn)
1
b/b, R
a/X, R Z/Z, R
B/B, R
a/a, R b/Y, R
Y/Y, R 2 3

5 a/X, R c/Z, L

X/X, R
5 4
B/B, R
Y/Y, R a/a, L
b/b, L
Y/Y, L
6 Z/Z, L
ISI
Institut
Supérieur
07/12/2011 Informatique 18
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

9
Description instantanée d’une TM

 Une description instantanée (ID) pour une TM est une chaîne xqy :
 x  * représente la ruban côté gauche de la tête de lecture/écriture.
 q est l’état courant.
 y  * représente la ruban côté droite de la tête de lecture/écriture.
 Les chaînes ID sont normalisées comme suit :
 Dans x, Les symboles blancs (B) en tête sont ignorés à moins que toute la
partie gauche ne contient que des caractères blancs; dans ce cas x = B
 Dans y, les symboles blancs à la fin sont ignorés sauf si cette partie droite ne
contient que des blancs, dans ce cas y = B
 On définit une fonction idfix (z) qui normalise une chaîne ID z en supprimant (ou
ajoutant) les symboles blancs de début et de fin selon le besoin.

ISI
Institut
Supérieur
07/12/2011 Informatique 19
Copyright © Ramzi GUETARI ‫اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻲ ﻟﻺﻋﻼﻣﯿّﺔ‬

10

Vous aimerez peut-être aussi