Vous êtes sur la page 1sur 26

Théorie des Langages et Calculabilité

Chapitre IV
Automates à piles

Yousra Hlaoui

FST-IF4

2018-2019

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 1 / 26


Chapitre IV
Automates à piles

1 Présentation

2 Automates à pile
Transition d’un automate à pile
Configuration d’un automate à pile

3 Langages acceptés

4 Automates à pile et langages non contextuels

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 2 / 26


Présentation

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 → xB) 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 → xBy), l’automate doit se souvenir qu’il
doit lire la chaı̂ne y après avoir lu la sous chaı̂ne dérivant de B.
Pour cette raison, on ajoute une pile à l’automate fini où on empile
ce que nous avons à lire(x) 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.
Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 3 / 26
Présentation

Automates à pile

Description
Pile z0 z0 z0 z0

Ruban d’entrée uuuuuuuuuu uuuuvuuuu

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.

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 4 / 26


Automates à pile

Automates à pile

Définition
Un automate à pile A est le tuplet A =< X , Q, q0 , F , Γ, Z0 , δ > Où :
X est l’alphabet d’entrée
Q est un ensemble non vide d’états
q0 ∈ Q est l’état initial
F ⊂ Q est l’ensemble des états finaux ou d’acceptation
Γ est l’alphabet de la pile ( pas nécessairement disjoint de X )
Z0 ∈ Γ est le symbole initial de la pile (symbole de fond de
pile)(Z0 ∈/ X)
δ est l’application de transition.
δ : Q × (X ∪ {ε}) × (Γ ∪ {ε}) → P(Q × Γ∗ )

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 5 / 26


Automates à pile

Automates à pile

Exemple 1 : un automate à pile qui accepte le langage :{an cbn /n ≥ 0}


(a, Z0 , Z0 a) (a, a, aa) (b, a, ε) (ε, Z0 , ε)
(c, a, a)(c, Z0 , Z0 )
q0 q1

Commencer par empiler tous les a,


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
Dans les deux cas, il ne doit pas être 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 précédé d’un a. On le dépile et on continue à
accepter uniquement des b et dépiler les a correspondants.
A la fin, il faut arriver à vider la pile

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 6 / 26


Automates à pile

Automates à pile

Exemple 2 : un automate à pile qui accepte le langage :{ωcω R }


(a, ε, a)(1)(b, ε, b)(2) (a, a, ε)(4) (b, b, ε)(5)
(c, ε, ε)(3)
q0 q1

Etat Entrée non encore lue Pile Transition utilisée


q0 abbcbba Z0 −
q0 bbcbba Z0 a (1)
q0 bcbba Z0 ab (2)
q0 cbba Z0 abb (2)
q1 bba Z0 abb (3)
q1 ba Z0 ab (5)
q1 a Z0 a (5)
q1 ε Z0 (4)

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 7 / 26


Automates à pile Transition d’un automate à pile

Transition d’un automate à pile

Définition 3 (Transition)
Une transition est de la forme δ(q0 , c, s) = (q1 , ω), avec :
(c, s, ω) ∈ X ∪ {ε} × Γ ∪ {ε} × Γ∗
c est le caractère lu sur l’entrée.
s est le sommet de la pile.
ω est le mot qui remplace s sur la pile.

(c, s, ω)
q0 q1

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 8 / 26


Automates à pile Transition d’un automate à pile

Transition d’un automate à pile

Exemples de signification d’étiquettes de transitions


(a, b, ba) : si a est sur la bande d’entrée et b est au sommet de la pile, alors on
empile a.
(a, b, ε) : si a est sur la bande d’entrée et b est au sommet de la pile, alors b est
dépilé.
(a, a, b) : si a est sur la bande d’entrée et a est au sommet de la pile, alors a est
dépilé et b est empilé.
(a, b, a) : si a est sur la bande d’entrée et b est au sommet de la pile, alors b est
dépilé et a est empilé.
(a, b, bbaa) : si a est sur la bande d’entrée et b est au sommet de la pile, alors
aab est empilé.
(a, a, aa) : si a est sur la bande d’entrée et a est au sommet de la pile, alors un
nouveau a est empilé.
(ε, a, a) : sans lire le symbole en entrée, si a est au sommet de la pile, alors il
reste au sommet de la pile. Dans ce cas, la tête de lecture ne bouge pas.

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 9 / 26


Automates à pile Transition d’un automate à pile

Transition d’un automate à pile

Exemples de signification des étiquettes de transitions (suite)


(ε, ε, b) : sans lire le symbole en entrée ni le sommet de la pile, b est empilé.
Dans ce cas, la tête de lecture ne bouge pas.
(ε, a, ε) : sans lire le symbole en entrée, si a est au sommet de la pile, alors, il
n’est pas remis. Dans ce cas, la tête de lecture ne bouge pas et a est tout
simplement dépilé.
(ε, ε, ε) : correspond à un changement d’état sans aucun changement sur
l’entrée ni sur la pile. Si dans un état donné apparaı̂t seulement cette transition,
elle doit être effectuée, car l’automate ne peut pas avoir un comportement passif.
(ε, Z0 , Z0 c) : La tête de lecture ne bouge pas et c est empilé sur une pile vide.
(a, Z0 , Z0 a) : si a est sur la bande d’entrée et la pile est vide, alors on empile a.
(ε, Z0 , ε) : vider la pile.

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 10 / 26


Automates à pile Configuration d’un automate à pile

Configuration d’un automate à pile

Définition (Configuration)
Une configuration détermine de manière précise le comportement d’un
automate.
Elle spécifie tous les aspects pertinents de la machine dans une situation
donnée.
Formellement, une configuration est un triplet (q, m, u) ∈ (Q × X ∗ × Γ∗ ), avec :
q est l’état courant de l’unité de contrôle
m représente la partie du mot à reconnaı̂tre non encore lue. Le symbole le
plus à gauche de m est le caractère sous la tête de lecture.
u est le contenu de la pile. Le symbole le plus à droite de u est le sommet
de la pile.
Pour spécifier, formellement, le comportement de l’automate à pile, on dira que
(q 0 , ω, uv R ) se dérive en une étape à partir de (q, aω, ub) où (q 0 , v ) ∈ δ(q, a, b).
On note
(q, aω, ub) `M (q 0 , ω, uv R )

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 11 / 26


Automates à pile Configuration d’un automate à pile

Configuration d’un automate à pile

Définition (Configuration) - Suite

Lors du mouvement (q, aω, ub) `M (q 0 , ω, uv R ) :


l’unité de contrôle passe de q à q 0
le symbole a a été lu
la tête de lecture s’est déplacée d’une case vers la droite
le symbole b a été dépilé et le mot v empilé à l’envers.

Définition (Configuration k−successeurs)

E est la configuration k −successeurs de C ( C `kM E)sssi C permet de dériver


E en k étapes.

Exemple de configuration de l’automate acceptant ωcω R du mot : abbcbba


(q0 , abbcbba, Z0 ) `M (q0 , bbcbba, Z0 a) `M (q0 , bcbba, Z0 ab) `M
(q0 , cbba, Z0 abb) `M (q1 , bba, Z0 abb) `M (q1 , ba, Z0 ab) `M (q1 , a, Z0 a) `M (q1 , ε, Z0 )

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 12 / 26


Langages acceptés

Langages acceptés

Définition 4
Soit M = (Q, X , Γ, Z0 , δ, q0 , F ) un automate à pile :
L(M) = {ω ∈ X ∗ /(q0 , ω, Z0 ) `∗M (q, ε, γ) avec q ∈ F et γ ∈ Γ∗ } est
le langage accepté par M avec le critère état accepteur.
N(M) = {ω ∈ X ∗ /(q0 , ω, Z0 ) `∗M (q, ε, ε) avec q ∈ Q} est le
langage accepté par M avec le critère pile vide.

Théorème 1 (Equivalence entre les 2 critères d’acceptation)


Si L = L(M2 ) où M2 est un automate à pile, alors Il existe M1 , un
automate à pile tel que L = N(M1 ).

Théorème 2 (Equivalence entre les 2 critères d’acceptation)


Si L = N(M1 ) où M1 est un automate à pile, alors Il existe M2 , un
automate à pile tel que L = L(M2 ).
Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 13 / 26
Langages acceptés

Langages acceptés

Exemple1 : Automate fini acceptant {x n yz n+1  n ≥ 0} avec le critère pile vide

(x, Z0 , Z0 x) (z, x, ε)
(x, x, xx) (z, Z0 , ε)
(y, x, x)
(y, Z0 , Z0 )
q0 q1

Vérifions que le mot ω = xyzz est accepté par l’automate :


(q0 , xyzz, Z0 ) ` (q0 , yzz, Z0 x) ` (q1 , zz, Z0 x) ` (q1 , z, Z0 ) ` (q1 , ε, ε)
donc le mot xyzz est accepté par l’automate.
Vérifions que le mot ω = yz est accepté par l’automate :
(q0 , yz, Z0 ) ` (q1 , z, Z0 ) ` (q1 , ε, ε)
donc le mot yz est accepté par l’automate.

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 14 / 26


Langages acceptés

Langages acceptés

Exemple2 : Automate fini acceptant {an bn  n ≥ 0} avec le critère pile vide

(ε, Z0 , ε)
(a, Z0 , Z0 a) (b, a, ε)
(a, a, aa) (ε, Z0 , ε)

(b, a, ε)
q0 q1

Vérifions que le mot ω = aabb est accepté par l’automate :


(q0 , aabb, Z0 ) ` (q0 , abb, Z0 a) ` (q0 , bb, Z0 aa) ` (q1 , b, Z0 a) ` (q1 , ε, ε)
Donc ω = aabb est accepté.

Remarques
1 Pour un automate à pile A sans état final : L(A) = ∅
2 Pour l’automate ci-dessus : N(A) = {an bn  n ≥ 0} et L(A) = {ai bj  i ≥ j > 0}.

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 15 / 26


Langages acceptés

Langages acceptés

Exemple3 : Automate fini acceptant {an bn  n ≥ 0} avec le critère état accepteur ou


final
(a, Z0 , Z0 a)
(a, a, aa) (b, a, ε)

(b, a, ε) (ε, Z0 , Z0 )
q0 q1 q2

(ε, Z0 , Z0 )

Vérifions que le mot ω = aabb est accepté par l’automate :


(q0 , aabb, Z0 ) ` (q0 , abb, Z0 a) ` (q0 , bb, Z0 aa) ` (q1 , b, Z0 a) ` (q1 , ε, Z0 ) `
(q2 , ε, Z0 )
Donc ω = aabb est accepté.

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 16 / 26


Langages acceptés

Langages acceptés

Exemple4 : Automate fini acceptant {an bm  m > n} avec le critère pile vide

(a, Z0 , Z0 a) (b, Z0 , Z0 )
(a, a, aa) (b, a, ε) (ε, Z0 , ε)

(b, a, ε) (b, Z0 , Z0 )
q0 q1 q2

(b, Z0 , Z0 )

Vérifions que le mot ω = abb est accepté par l’automate :


(q0 , abb, Z0 ) ` (q0 , bb, Z0 a) ` (q1 , b, Z0 ) ` (q2 , ε, Z0 ) ` (q2 , ε, ε)
Donc ω = abb est accepté.

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 17 / 26


Langages acceptés

Langages acceptés

Exemple5 : Automate fini acceptant {an bm  m > n} avec le critère état final

(a, Z0 , Z0 a)
(a, a, aa) (b, a, ε) (b, Z0 , Z0 )

(b, a, ε) (b, Z0 , Z0 )
q0 q1 q2

(b, Z0 , Z0 )

Vérifions que le mot ω = abb est accepté par l’automate :


(q0 , abb, Z0 ) ` (q0 , bb, Z0 a) ` (q1 , b, Z0 ) ` (q2 , ε, Z0 )
Donc ω = abb est accepté.

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 18 / 26


Langages acceptés

Langages acceptés

Exemple6 : Automate fini acceptant {an b2n c k  k > 0} avec le critère pile vide

(a, Z0 , Z0 aa) (c, Z0 , Z0 )


(a, a, aaa) (b, a, ε) (ε, Z0 , ε)

(b, a, ε) (c, Z0 , Z0 )
q0 q1 q2

(c, Z0 , Z0 )

Vérifions que le mot ω = abbcc est accepté par l’automate :


(q0 , abbcc, Z0 ) ` (q0 , bbcc, Z0 aa) ` (q1 , bcc, Z0 a) ` (q1 , cc, Z0 ) `
(q2 , c, Z0 ) ` (q2 , ε, Z0 ) ` (q2 , ε, ε)

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 19 / 26


Langages acceptés

Langages acceptés

Exemple6 : Automate fini acceptant {an b2n c k  k > 0} avec le critère état final

(a, Z0 , Z0 aa)
(a, a, aaa) (b, a, ε) (c, Z0 , Z0 )

(b, a, ε) (c, Z0 , Z0 )
q0 q1 q2

(c, Z0 , Z0 )

Vérifions que le mot ω = abbcc est accepté par l’automate :


(q0 , abbcc, Z0 ) ` (q0 , bbcc, Z0 aa) ` (q1 , bcc, Z0 a) ` (q1 , cc, Z0 ) `
(q2 , c, Z0 ) ` (q2 , ε, Z0 )

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 20 / 26


Langages acceptés

Langages acceptés

Exemple7 : Automate fini acceptant {an bm c t  t = n + m} avec le critère pile vide

(a, Z0 , Z0 a) (c, b, ε)
(a, a, aa) (c, a, ε)
(ε, Z0 , ε) (b, b, bb) (ε, Z0 , ε)
(b, Z0 , Z0 b)
(b, a, ab) (c, b, ε)
q0 q1 q2

(c, a, ε)

Vérifions que le mot ω = abcc est accepté par l’automate :


(q0 , abcc, Z0 ) ` (q0 , bcc, Z0 a) ` (q1 , cc, Z0 ab) ` (q2 , c, Z0 a) ` (q2 , ε, Z0 ) `
(q2 , ε, ε)

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 21 / 26


Langages acceptés

Langages acceptés

Exemple8 : Automate fini acceptant {an bm c t  t = n + m} avec le critère état


accepteur

(a, Z0 , Z0 a) (c, b, ε)
(a, a, aa) (b, b, bb) (c, a, ε)
(b, Z0 , Z0 b)
(b, a, ab) (c, b, ε)
q0 q1 q2

(c, a, ε)

(ε, Z0 , Z0 )
(ε, Z0 , Z0 )
q3

Vérifions que le mot ω = abcc est accepté par l’automate :


(q0 , abcc, Z0 ) ` (q0 , bcc, Z0 a) ` (q1 , cc, Z0 ab) ` (q2 , c, Z0 a) ` (q3 , ε, Z0 )

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 22 / 26


Langages acceptés

Langages acceptés

Exemple9 : Automate fini acceptant les mots palindrômes sur le vocabulaire {a, b, c}
avec le critère pile vide

(a, Z0 , Z0 a) (b, Z0 , Z0 b)(c, Z0 , Z0 c) (a, a, ε)


(a, a, aa) (b, b, bb)(c, c, cc) (b, b, ε)
(a, b, ba) (b, a, ab)(c, a, ac) (a, a, ε) (a, a, a) (b, b, b)(c, c, c) (c, c, ε)
(a, c, ca) (b, c, cb)(c, b, bc) (b, b, ε) (a, b, b) (b, a, a)(c, a, a) (ε, Z0 , ε)
(c, c, ε) (a, c, c) (b, c, c)(c, b, b)
(a, Z0 , ε) (b, Z0 , ε)(c, Z0 , ε)
q0 q1

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 23 / 26


Automates à pile et langages non contextuels

Automates à pile et langages non contextuels

Théorème 3
Si L est un langage non contextuel, alors il existe un automate à pile M
tel que L = N(M)

Preuve
Nous savons que si L est un langage non contextuel ssi il existe une
grammaire NC G = (VN , VT , R, S) telle que N(G) = L. Construisons
un automate à pile M = (Q, X , Γ, Z0 , δ, q0 , F ), tel que L = N(M) ( par le
critère pile vide), avec :
X = VT Q = {q0 , q1 } F =∅ Γ = X ∪ VN ∪ {Z0 }
δ/δ(q0 , ε, Z0 ) = (q1 , Z0 S)
δ(q1 , ε, A) = (q1 , αR ) ∀A → α ∈ R
δ(q1 , a, a) = (q1 , ε) ∀a ∈ VT

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 24 / 26


Automates à pile et langages non contextuels

Construction d’un automate à pile à partir d’une


grammaire non contextuelle

Exercice
Soit la grammaire G = ({S}, {a, b}, S, R) avec R = {S → aSb, S → ε}
1 Construire un automate à pile qui accepte N(G) avec le critère pile vide
2 Vérifier que le mot aabb est accepté par l’automate

Solution
X = {a, b} Q = {q0 , q1 } F = ∅ Γ = {a, b, S, Z0 }
δ(q0 , ε, Z0 ) = (q1 , Z0 S)
δ(q1 , ε, S) = (q1 , bSa)
δ(q1 , ε, S) = (q1 , ε)
δ(q1 , a, a) = (q1 , ε)
δ(q1 , b, b) = (q1 , ε)

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 25 / 26


Automates à pile et langages non contextuels

Construction d’un automate à pile à partir d’une


grammaire non contextuelle

Solution - Suite
(ε, S, bSa)
(ε, S, ε)
(a, a, ε)
(b, b, ε)

(ε, Z0 , Z0 S)
q0 q1

Vérifions que le mot ω = aabb est accepté par l’automate :


(q0 , aabb, Z0 ) ` (q1 , aabb, S) ` (q1 , aabb, bSa) ` (q1 , abb, bS) `
(q1 , abb, bbSa) ` (q1 , bb, bbS) ` (q1 , bb, bb) ` (q1 , b, b) ` (q1 , ε, ε)

Yousra Hlaoui (FST-IF4) Automates à piles 2018-2019 26 / 26

Vous aimerez peut-être aussi