Vous êtes sur la page 1sur 13

Automate pile

Exemple introductif
Soit reconnatre un mot AP
w = anbn {apbp , p 1}.
Ruban dentre
Pour cela on utilise 2 tats:
q1 pour lire les a et ai-1 ai ai+1
q2 pour les b.
La machine tant en q1(tat initial),
si elle lit un a elle empile un
symbole X en restant en q1
Si elle rencontre b elle change X
q
dtat en passant q2 pour ne lire .
que les b aprs et chaque .
lecture de b on dpile X.
Machine
Pile
Dfinition dun automate pile PDA
(Push Down Automata)
Un PDA est une structure M = (Q, , , , q0, F)
O :
 : alphabet dentre
 : alphabet de pile
 Q : ensemble fini dtats
 $ , symbole initial de pile
 q0 Q, tat initial
 F Q, tats finaux
 : Q x ( {}) x (Q x *)
(q, a, X) = { (p1, 1), ,(pn, n) ), p, qiQ; a ; , *,
(q, a, X) = { (p1, 1), ,(pn,) ) :
Pour quil y ait transition, il faut que :
lautomate soit ltat q,
le sommet de la pile est le symbole X et
le symbole courant,sous la tte de lecture est a ou .
Si ceci est vrifi
lautomate passe lun des tats pi,
dpile X et empile i, (remplace X par i)
la tte de lecture se dplace dune position droite si a
sinon elle ne bouge pas .
La transition se traduit par :
(q, a, X) (pi, i) ou
(q, , X) (pi, i)
Remarque : lautomate est non dterministe exprim par le choix de ltat pi
ou par lorsquil ny a pas de lecture.
Configuration dun PDA
 une configuration (q, v, ) est une description
instantane de la machine o :
q est ltat courant
v est le mot qui reste lire et
est le contenu de la pile (crit de gauche
droite i. e. le symbole $ est le plus gauche.

 la configuration initiale de lautomate est (q0,w,$).


Relation entre deux configurations
successives note
 (q, av , X) (p, v,) SSI
il existe une transition (q, a, X) (p, )
 * est la fermeture rflexive et transitive de la
relation
 Langage reconnu par un PDA M :
N(M) = {w * / (q0, w, $) * (q, , )} , q Q
reconnaissance par pile vide
L(M) = {w * / (q0, w, $) * (q, , )}, q F, *
reconnaissance par tat final
Exemples
 L = {an bn , n 1}  Reprsentation
Lautomate pile graphique.
reconnaissant L :
Q={q0,q1}, ={$,X},q0=q1
Les transitions: a, $ / $X b, X /
a, X / XX , $ /
(q1, a, $) (q1, $X)
(q1, a, X) (q1, XX) q1 b, X / q2
(q1, b, X) (q2, )
(q2, b, X) (q2, )
(q2, , $) (q1, )
Reconnaissance du mot aabb :
(q1, aabb, $) (q1, abb, $X) (q1, bb, $XX) (q2, b, $X) (q2, , $) (q2, , )
 L = {w c w / w (a+b)*}
R

On associe a le symbole A
et b B. .
Les transitions : a, $ / $A
b, $ / $B
(q0,a,$) (q0,$A) , (q0,b,$) (q0,$B) a, A / AA
(q0,a,A) (q0,AA) , (q0,b,A) (q0,AB) a, B / BA
a, A /
(q0,a,B) (q0,BA) , (q0,b,B) (q0,BB) b, A / AB
b, B /
b, B / BB
, $ /
(q0,c,A) (q1,A) , (q0,c,B) (q1, B)
(q1,a,A) (q1,) , (q1,b,B) (q1,)
q0 q1
(q1,,$) (q1,) c, A / A
c, B / B
W = ab c ba N(M)
(q0,abcba,$) (q0,bcba,$A) (q0,cba,$AB) (q1,ba,$AB) (q1,a,$A) (q1,,$)
(q1,,)
 Remarques
Sil y a plusieurs transitions qui
sappliquent une mme configuration
lautomate pile est non dterministe.
Un automate pile est dterministe si
pour toute configuration de lautomate, il
existe au plus une seule transition i. e.
|(q, a, X)| 1 q Q, a , X
(q, , X) (q, a, X) =
Il n y a pas toujours quivalence entre reconnaissance par automate pile
Non dterministe et reconnaissance par automate pile dterministe
 Exemple.
Le langage L = {w wR , w (a + b)*} est
reconnaissable par un automate pile non
dterministe.
Pour le langage {wcwR , w (a + b)*}, la lettre
c indique le milieu du mot wcwR pour dpiler.
Dans ce cas il faut estimer le milieu de wwR :
lorsquon rencontre aa ou bb. (si w se termine
par a , wR commence par a).
Ceci se traduit par : on lit a (resp. b) et A
(resp. B) au sommet de la pile.
 Les transitions :
(q1,a,$) (q1,$A) (q1,b,$) (q1,$B) (q1,,$) (q2,)
(q1,a,A) {(q1,AA), (q2,)} (q1,b,B) {(q1,BB), (q2,)}
(q1,a,B) (q1,BA) (q1,b,A) (q1,AB)
(q2,a,A) (q2,) (q2,b,B) (q2,) (q2,,$) (q2,)
(q1,aabbaa, $)
(q1,abbaa,$A) (q2,aabbaa, )
(q1,bbaa,$AA) (q2, bbaa,$)

(q1, baa,$AAB) (q2,bbaa,)


(q1, aa,$AABB) (q2, aa,$AA)

(q1, a,$AABBA) (q2, a,$A)

(q1, ,$AABBAA) (q1, ,$AABB) (q2, ,$)

(q2, ,)
Automates pile et langages
algbriques.
 Un langage est algbrique si et
seulement s il est accept par
un automate pile.
 Grammaire automate pile  Les transitions de lautomate
Soit G = (T, V, P, S) une gram. pile :
Alg.
On dfinit lautomate pile M
suivant :
M = (T, Q, , , q0, F) o : (q, , A) (q, ) pour
chaque rgle A
Q = {q, f} , (q, a, a) (q, ) pour
q0 = q, F = {f}, chaque terminal a
= V T {$} (q, , $) (f, )
($S est au fond de la pile)

Remarque : lautomate pile dfini est non dterministe


 Exemple.
L = {wcwR , w (a + b)*}
Grammaire :
SaSa SbSb Sc
Automate pile :
(q,,S) (q, aSa) (q,,S) (q, bSb) (q,,S) (q, c)
(q,a,a) (q, ) (q,b,b) (q, ) (q,c,c) (q, )
(q, , $) (q, )

Reconnaissance du mot abcba :


(q,abcba,$S) (q,abcba,$aSa) (q,bcba,$aS) (q,bcba,$abSb)
(q,cba,$abS) (q,cba,$abc) (q, ba,$ab) (q, a,$a) (q, ,$)
(f, , )