Beruflich Dokumente
Kultur Dokumente
V.6
V.1. Présentation
L’automate fini permet de représenter une grammaire régulière. Par suite, il permet de
reconnaître des mots d’un langage régulier (associé à une grammaire régulière).
À une règle (A x B) d’une grammaire régulière, on peut associer une transition
(A, x, B)
A x B
Partant d’une grammaire non contextuelle ayant une règle de production de la forme (A
x B y), l’automate doit se souvenir qu’il doit lire la chaine y après avoir lu la sous
chaine dérivant de B. Pour cette raison, on ajoute une pile à l’automate fini où on
empile ce que nous avons à lire (y) et après avoir dérivé la sous chaine dérivant de B,
on doit lire y et dépiler le y de la pile.
On parle d’automate à pile
2
V.2. Définition d’un automate à pile
Un automate à pile A est un septuplet
X est un alphabet
Q est un ensemble d’états
q0 Q est l’état initial
F Q est l’ensemble des états finaux
est le vocabulaire de la pile
Z0 est le symbole initial de la pile (symbole de fond de pile)
est une fonction de transition
: Q x (X {}) x { parties finies de Q x *}
3
V.3. Description d’un automate à pile
Z0 Pile
Tête de lecture/écriture
q Unité de contrôle
Tête de lecture
U V Ruban d’entrée
L’unité de contrôle, se trouve à un état q munie de deux têtes (L/E sur pile
et L sur ruban d’entrée). Le ruban d’entrée sert de support à un mot de X*.
La lecture se fait de gauche à droite. La pile est un ruban infini du côté droit
où sont lus et écrits les symboles de la pile (*). La case lue est toujours
celle qui contient le symbole le plus à droite.
4
V.4. Exemple d’un automate à pile qui
accepte {ancbn / n 0}
(a, Z0, Z0a)
(a, a, aa) •Commencer par empiler tous les a
q0 •On doit lire un c
• Le c peut être précédé d’un a
comme il peut être le seule
symbole dans le mot
(c, a, a) • Dans les deux cas, il ne doit
(c, Z0 , Z0) être
pas empilé et il faut changer
d’état pour séparer la lecture
des a de la lecture des b.
•si on lit un b alors il doit être
q1 (b, a, ) précédé d’un a. On le dépile et on
(, Z0, ) continue à accepter uniquement des
b et dépiler les a correspondants.
•A la fin, il faut arriver à vider la pile
5
Exemple d’un automate à pile qui
accepte {ancbn / n 0} suite
Acceptation du mot aacbb
6
Exemple d’un automate à pile qui
accepte {ancbn / n 0} suite
Le mot c est accepté
C C C
q0 q1 q1
Z0 Z0
Le mot aacb n’est pas accepté par ce que on n’arrive pas à vider la pile
7
V.5. Fonctionnement d’un automate à
pile
a- Configuration
Une configuration d’un automate à pile est le contenu des deux rubans, d’un état
et de la lettre à lire
c. Configuration k successeur
k
|-- |-- 1 |-- 2 |-- … k / k =
* k
|-- k0 |--
9
+ k
|-- k>0 |--
V.5. Langages acceptés par un
automate à pile
Deux critères d’acceptation sont définis pour un automate à pile
- Le critère pile vide (mot accepté = mot lu + pile vide)
- Le critère état final (mot accepté = mot lu + état final)
10
V.5. Langages acceptés par un
automate à pile
Pour un automate à pile A, deux langages sont acceptés L(A) et N(A) qui peuvent être
vides (cas de N(A) lorsqu’il n’ya pas d’état final N(A) = si F = )
*
L(A) = { X* / (, q0, , Z0) |-- ( , q, , )}
*
N(A) = { X* / (, q0, , Z0) |-- (, qF, , )/ qF F}
11
V.5. Langages acceptés par un
automate à pile
Pour un automate à pile A sans état final,N(A) =
(a, Z0, Z0a)
Pour l’automate A suivant
A q0 (a, a, aa)
L(A) = {anbn /: n 1}
N(A) = {aibj / i j>0}
q1 (b, a, )
(, Z0, ) a2b N(A) en effet
( , q0, aab , Z0) |-- (a, q0, ab, Z0 a)
|-- (aa, q0, b, Z0 aa) |-- (aab, q1, , Z0 a)
12
V.6. Construction d’un automate à pile à partir d’une
grammaire non contextuelle (GNC)
Définition. Un langage est dit non contextuel ou indépendant du contexte ou hors
contexte s’il existe un automate à pile qui l’accepte