Automate À Pile
Automate À Pile
Automate À Pile
Chapitre IV
Automates à piles
Yousra Hlaoui
FST-IF4
2018-2019
1 Présentation
2 Automates à pile
Transition d’un automate à pile
Configuration d’un automate à pile
3 Langages acceptés
Présentation
A x
B
Automates à pile
Description
Pile z0 z0 z0 z0
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.
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 × Γ∗ )
Automates à pile
Automates à 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
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 )
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.
Langages acceptés
(x, Z0 , Z0 x) (z, x, ε)
(x, x, xx) (z, Z0 , ε)
(y, x, x)
(y, Z0 , Z0 )
q0 q1
Langages acceptés
(ε, Z0 , ε)
(a, Z0 , Z0 a) (b, a, ε)
(a, a, aa) (ε, Z0 , ε)
(b, a, ε)
q0 q1
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}.
Langages acceptés
(b, a, ε) (ε, Z0 , Z0 )
q0 q1 q2
(ε, Z0 , Z0 )
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 )
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 )
Langages acceptés
Exemple6 : Automate fini acceptant {an b2n c k k > 0} avec le critère pile vide
(b, a, ε) (c, Z0 , Z0 )
q0 q1 q2
(c, Z0 , Z0 )
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 )
Langages acceptés
(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, ε)
Langages acceptés
(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
Langages acceptés
Exemple9 : Automate fini acceptant les mots palindrômes sur le vocabulaire {a, b, c}
avec le critère pile vide
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
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 , ε)
Solution - Suite
(ε, S, bSa)
(ε, S, ε)
(a, a, ε)
(b, b, ε)
(ε, Z0 , Z0 S)
q0 q1