Vous êtes sur la page 1sur 115

Th

eorie des langages

Automates `
a pile
Elise Bonzon
http://web.mi.parisdescartes.fr/vbonzon/
elise.bonzon@parisdescartes.fr

Th
eorie des langages
N

1 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

2 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

3 / 62

Automates `
a pile

Introduction
Grammaires hors contexte : gen`erent des langages algebriques
Les automates finis acceptent (exactement) les langages reguliers
Langages reguliers : sous-ensemble strict des langages algebriques
Comment obtenir des automates qui acceptent les langages algebriques
non reguliers?
Un automate fini dispose par d
efinition dune m
emoire finie
Lajout dune pile permet d
etendre les possibilit
es de m
emorisation
Garder en m
emoire les
etapes de calculs pass
ees
Conditionner les
etapes de calculs `
a venir

&%
c
b
a

Th
eorie des langages
N

4 / 62

Automates `
a pile

Introduction

Automate fini : defini principalement `


a partir de sa fonction de transition
Automate `
a pile : enrichi la fonction de transition par
1. un nouvel alphabet fini qui contient les symboles qui peuvent
etre empil
es
et d
epil
es
2. des transitions conditionn
ees par le symbole en haut de la pile
3. lors dune transition dans lautomate, il est possible dempiler ou de d
epiler
un symbole dans la pile

Th
eorie des langages
N

5 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
Soit lautomate suivant qui reconnat le langage {an b m |n, m > 0}
b

Cet automate ne peut pas reconnaitre le langage {an b m |n = m > 0} :


impossible de compter le nombre de a vus.
Automate `
a pile :
Empiler un symbole (T ) `
a chaque passage dans la boucle de l
etat 1
D
epiler un symbole `
a chaque passage dans la boucle de l
etat 2
Calcul r
eussi : pile vide

Th
eorie des langages
N

6 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
b

Trace du calcul pour w = aaabbb


Entree

Etat

Pile

Th
eorie des langages
N

7 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
b

Trace du calcul pour w = aaabbb


Entree
aaabbb

Etat
0

Pile
Pile vide

Th
eorie des langages
N

7 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
b

Trace du calcul pour w = aaabbb


Entree
aaabbb
aabbb

Etat
0
1

Pile
Pile vide
Pile vide

Th
eorie des langages
N

7 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
b

Trace du calcul pour w = aaabbb


Entree
aaabbb
aabbb
abbb

Etat
0
1
1

Pile
Pile vide
Pile vide
T

Th
eorie des langages
N

7 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
b

Trace du calcul pour w = aaabbb


Entree
aaabbb
aabbb
abbb
bbb

Etat
0
1
1
1

Pile
Pile vide
Pile vide
T
TT

Th
eorie des langages
N

7 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
b

Trace du calcul pour w = aaabbb


Entree
aaabbb
aabbb
abbb
bbb
bb

Etat
0
1
1
1
2

Pile
Pile vide
Pile vide
T
TT
TT

Th
eorie des langages
N

7 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
b

Trace du calcul pour w = aaabbb


Entree
aaabbb
aabbb
abbb
bbb
bb
b

Etat
0
1
1
1
2
2

Pile
Pile vide
Pile vide
T
TT
TT
T

Th
eorie des langages
N

7 / 62

Automates `
a pile

Automate `
a pile : un exemple introductif
b

Trace du calcul pour w = aaabbb


Entree
aaabbb
aabbb
abbb
bbb
bb
b


Etat
0
1
1
1
2
2
2

Pile
Pile vide
Pile vide
T
TT
TT
T
Pile vide
Th
eorie des langages

7 / 62

Automates `
a pile

Automate `
a pile

De mani`ere imagee, un automate `a pile est compose de trois unites :


Une unite centrale, dont la configuration est symbolisee par un etat
Un canal de lecture qui contient un mot `
a analyser
Un canal de lecture-ecriture qui est organise en pile, et qui sert `
a contenir
de linformation auxiliaire, en quantite non bornee.

Th
eorie des langages
N

8 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

9 / 62

Automates `
a pile

Rappels sur les piles

Pile : Type P
LIFO (Last In First Out)
constante pilevide P
empiler : E P P
depiler : P \ {pilevide} P
sommet : P \ {pilevide} E
est vide : P IB

& %
ep
..
.
e2
e1

Th
eorie des langages
N

10 / 62

Automates `
a pile

Piles et automates `
a pile
On introduit un alphabet de pile
Une pile p est un mot p
Operations sur les piles :
Tester si la pile est vide : d
eterminer si p = 
Empiler un
el
ement x dans une pile p : p xp
Si la pile est non vide, elle est de la forme xp, o`
u x et p . D
epiler
l
el
ement x : xp p
On peut
etendre ces notions `
a des mots. Ainsi, empiler un mot
u = u1 u2 . . . ul revient `
a empiler successivement les lettres u1 , . . . , ul .
Partant de la pile p , on obtient
p u1 p u2 u1 p . . . ul . . . u2 u1 p = u R p

Attention : On obtient le miroir du mot u dans la pile

Th
eorie des langages
N

11 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

12 / 62

Automates `
a pile

Automate `
a pile
Automate `
a pile
Un automate `
a pile non deterministe (en anglais pushdown automaton) est un septuplet M = (, , Z0 , Q, q0 , F , ), o`
u
est lalphabet dentree
est lalphabet de pile
Z0 est le symbole initial de la pile
Q est un ensemble fini detats
q0 Q est letat initial de lautomate
F Q est lensemble des etat finaux (on peut avoir F = )
est une fonction de Q( {})( {}) vers lensemble des
parties de Q( {})

Th
eorie des langages
N

13 / 62

Automates `
a pile

Automate `
a pile
Automate `
a pile : automate fini non-deterministe, `
a la difference pr`es que
la fonction de transition comporte trois arguments
l
etat courant
le symbole dentr
ee courant
le symbole courant en haut de la pile, appartenant `
a lalphabet de pile.

Si (r , T ) (q, a, Y ) (on peut ecrire aussi (q, a, Y , r , T ) ou


(q, a, Y ) (r , T )), alors lutilisation de cette transition conduira `
a:
d
epiler Y
Si Y =  la transition a lieu ind
ependamment du symbole en haut de pile, qui
reste inchang
ee

empiler T
Si T = , aucun symbole nest empil
e

lire le symbole a
transiter dans l
etat r

Automate fini traditionnel est un automate `


a pile particulier, defini sur
un alphabet de pile vide ( = ) et dont toutes les transitions laissent la
pile inchangee.
Th
eorie des langages
N

14 / 62

Automates `
a pile

Automate `
a pile

Transition (r , T ) (q, a, Y )
d
epiler Y
Si Y =  la transition a lieu ind
ependamment du symbole en haut de pile, qui
reste inchang
ee

empiler T
Si T = , aucun symbole nest empil
e

lire le symbole a
transiter dans l
etat r

a,Y /T

Th
eorie des langages
N

15 / 62

Automates `
a pile

Automate `
a pile : exemple

Soit lautomate `a pile suivant qui reconnat le langage {an bn |n > 0}


b, T /

a, /T
a, /
0

b, /
1

Th
eorie des langages
N

16 / 62

Automates `
a pile

Automate `
a pile : exemple
Soit lautomate `a pile suivant qui reconnat le langage {w |w est un
palindrome}
a, /Ta

b, /

a, Ta /

a, /
0

b, /Tb

1
, /

b, Tb /

Th
eorie des langages
N

17 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

18 / 62

Automates `
a pile

Ex
ecution et configurations

Une execution est une suite de configurations.


Pour un automate fini, une configuration est :
mot restant `
a lire m

etat courant q Q
Exemple : (abbb, q)

Pour un automate `
a pile, une configuration est definie par :
le mot restant `
a lire m
l
etat courant q Q
le contenu de la pile, l
el
ement le plus `
a gauche
etant le sommet de pile
Exemple : (abbb, q, TA TB TB Z0 )

Th
eorie des langages
N

19 / 62

Automates `
a pile

Configurations

Configuration
La pile contient, `a tout moment, un mot h sur . Lautomate se trouve
dans un etat q, et doit lire encore le mot m
Le couple (m, q, h) est appele une configuration de lautomate.
Lensemble des configurations est Q .
La configuration initiale (m, q0 , Z0 ) Q est formee de
letat initial et du symbole initial de la pile

Th
eorie des langages
N

20 / 62

Automates `
a pile

Configurations

Configuration
La pile contient, `a tout moment, un mot h sur . Lautomate se trouve
dans un etat q, et doit lire encore le mot m
Le couple (m, q, h) est appele une configuration de lautomate.
Lensemble des configurations est Q .
La configuration initiale (m, q0 , Z0 ) Q est formee de
letat initial et du symbole initial de la pile

Un mouvement de lautomate represente le passage dune configuration


`a une autre.

Th
eorie des langages
N

20 / 62

Automates `
a pile

Passage dune configuration `


a une autre

Le passage dune configuration c1 `


a une configuration c2 dans un
automate M secrit :
c1 `M c2
On note `M la cl
oture reflexive et transitive de `M
Il y a deux modes de transition pour changer de configuration :
Sur une -transition
Sur une -transition

Th
eorie des langages
N

21 / 62

Automates `
a pile

-transition : exemple

Transition (q1 , b, TA ) (q1 , TB )


Configuration (bba, q1 , TA Z0 )
On aura alors :
(bba, q1 , TA Z0 ) `M (ba, q1 , TB Z0 )

Th
eorie des langages
N

22 / 62

Automates `
a pile

-transition : exemple

Transition (q1 , , TA ) (q2 , TB )


Configuration (bba, q1 , TA Z0 )
On aura alors :
(bba, q1 , TA Z0 ) `M (bba, q2 , TB Z0 )
On ne touche pas `
a la tete de lecture

Th
eorie des langages
N

23 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {an bn |n > 0}
b, T /

a, /T
a, /
0

b, /
1

(aabb, 0, Z0 )

Th
eorie des langages
N

24 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {an bn |n > 0}
b, T /

a, /T
a, /
0

b, /
1

(aabb, 0, Z0 ) `M

(abb, 1, Z0 )

Th
eorie des langages
N

24 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {an bn |n > 0}
b, T /

a, /T
a, /
0

b, /
1

(aabb, 0, Z0 ) `M
`M

(abb, 1, Z0 )
(bb, 1, TZ0 )

Th
eorie des langages
N

24 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {an bn |n > 0}
b, T /

a, /T
a, /
0

b, /
1

(aabb, 0, Z0 ) `M
`M
`M

(abb, 1, Z0 )
(bb, 1, TZ0 )
(b, 2, TZ0 )

Th
eorie des langages
N

24 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {an bn |n > 0}
b, T /

a, /T
a, /
0

b, /
1

(aabb, 0, Z0 ) `M
`M
`M
`M

(abb, 1, Z0 )
(bb, 1, TZ0 )
(b, 2, TZ0 )
(, 2, Z0 )

Th
eorie des langages
N

24 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {w |w est un
palindrome}
a, /Ta

b, /

a, Ta /

a, /
0

1
, /

b, /Tb

b, Tb /

(baaab, 0, Z0 )

Th
eorie des langages
N

25 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {w |w est un
palindrome}
a, /Ta

b, /

a, Ta /

a, /
0

1
, /

b, /Tb

(baaab, 0, Z0 ) `M

b, Tb /

(aaab, 0, Tb Z0 )

Th
eorie des langages
N

25 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {w |w est un
palindrome}
a, /Ta

b, /

a, Ta /

a, /
0

1
, /

b, /Tb

(baaab, 0, Z0 ) `M
`M

b, Tb /

(aaab, 0, Tb Z0 )
(aab, 0, Ta Tb Z0 )

Th
eorie des langages
N

25 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {w |w est un
palindrome}
a, /Ta

b, /

a, Ta /

a, /
0

1
, /

b, /Tb

(baaab, 0, Z0 ) `M
`M
`M

b, Tb /

(aaab, 0, Tb Z0 )
(aab, 0, Ta Tb Z0 )
(ab, 1, Ta Tb Z0 )
Th
eorie des langages

25 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {w |w est un
palindrome}
a, /Ta

b, /

a, Ta /

a, /
0

1
, /

b, /Tb

(baaab, 0, Z0 ) `M
`M
`M
`M

b, Tb /

(aaab, 0, Tb Z0 )
(aab, 0, Ta Tb Z0 )
(ab, 1, Ta Tb Z0 )
(b, 1, Tb Z0 )
Th
eorie des langages

25 / 62

Automates `
a pile

Transitions : exemple
Soit lautomate `a pile suivant qui reconnat le langage {w |w est un
palindrome}
a, /Ta

b, /

a, Ta /

a, /
0

1
, /

b, /Tb

(baaab, 0, Z0 ) `M
`M
`M
`M
`M

b, Tb /

(aaab, 0, Tb Z0 )
(aab, 0, Ta Tb Z0 )
(ab, 1, Ta Tb Z0 )
(b, 1, Tb Z0 )
(, 1, Z0 )
Th
eorie des langages

25 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

26 / 62

Automates `
a pile

Les crit`
eres dacceptation

Dans nos exemples, on accepte un mot si le ruban vide, on est sur letat
final et la pile vide
Ce sont des cas particuliers
Il y a deux crit`eres dacceptation possibles :
Acceptation par
etat final (quelle que soit la pile quand on sarr
ete)
Acceptation par pile vide (quel que soit l
etat dans lequel on sarr
ete)

Mais le ruban doit toujours etre vide!


Ces deux crit`eres sont equivalents

Th
eorie des langages
N

27 / 62

Automates `
a pile

Acceptation par
etat final
Acceptation par
etat final
Un mot m est accept
e par
etat final par un automate `a pile
M = (, , Z0 , Q, q0 , F , ) si pour la configuration (m, q0 , Z0 ), il existe
un etat qf F et un mot z tel que
(m, q0 , Z0 ) `M (, qf , z)

Th
eorie des langages
N

28 / 62

Automates `
a pile

Acceptation par
etat final
Acceptation par
etat final
Un mot m est accept
e par
etat final par un automate `a pile
M = (, , Z0 , Q, q0 , F , ) si pour la configuration (m, q0 , Z0 ), il existe
un etat qf F et un mot z tel que
(m, q0 , Z0 ) `M (, qf , z)
Langage accept
e par
etat final
Le langage accept
e par
etat final par un automate `
a pile est
lensemble des mots acceptes par cet automate.
LF (M) = {m |(m, q0 , Z0 ) `M (, qf , z)}

Th
eorie des langages
N

28 / 62

Automates `
a pile

Acceptation par
etat final : exemple
Soit lautomate `a pile suivant qui reconnat le langage {an bn |n 0}
b, T /

1
b, T /

a, /T

, Z0 /Z0

0
, Z0 /Z0
F

Th
eorie des langages
N

29 / 62

Automates `
a pile

Acceptation par pile vide


Acceptation par pile vide
Un mot m est accept
e par pile vide par un automate `a pile
M = (, , Z0 , Q, q0 , F , ) si pour la configuration (m, q0 , Z0 ), il existe
un etat q Q tel que
(m, q0 , Z0 ) `M (, q, )

Th
eorie des langages
N

30 / 62

Automates `
a pile

Acceptation par pile vide


Acceptation par pile vide
Un mot m est accept
e par pile vide par un automate `a pile
M = (, , Z0 , Q, q0 , F , ) si pour la configuration (m, q0 , Z0 ), il existe
un etat q Q tel que
(m, q0 , Z0 ) `M (, q, )
Langage accept
e par pile vide
Le langage accept
e par pile vide par un automate `
a pile est
lensemble des mots acceptes par cet automate.
LV (M) = {m |(m, q0 , Z0 ) `M (, q, )}

Th
eorie des langages
N

30 / 62

Automates `
a pile

Acceptation par pile vide : exemple


Soit lautomate `a pile suivant qui reconnat le langage {an bn |n 0}
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT

Th
eorie des langages
N

31 / 62

Automates `
a pile

Crit`
eres dacceptation
Les deux crit`eres dacceptation (par etat final et par pile vide) sont
equivalents

Th
eor`
eme
Un langage est accepte par un automate `a pile avec le crit`ere
dacceptation sur pile vide si et seulement si il est accepte par un
automate `a pile avec acceptation par etat final.

Th
eorie des langages
N

32 / 62

Automates `
a pile

Crit`
eres dacceptation
Les deux crit`eres dacceptation (par etat final et par pile vide) sont
equivalents

Th
eor`
eme
Un langage est accepte par un automate `a pile avec le crit`ere
dacceptation sur pile vide si et seulement si il est accepte par un
automate `a pile avec acceptation par etat final.
Chaque transition dans laquelle Z0 est depile est remplacee par une
transition vers un nouvel etat final
Apr`es avoir atteint un etat final, on vide enti`erement la pile

Th
eorie des langages
N

32 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

33 / 62

Automates `
a pile

Automates d
eterministes

Les automates `
a pile que nous avons defini jusqu`
a maintenant sont
indeterministes
Un mot est accept
e sil existe au moins une suite de configurations qui
conduit `
a lacceptation
Mais il peut y en avoir plusieurs
Et il peut il y avoir plusieurs suites de configuration qui m`
enent `
a l
echec

Automate `
a pile deterministe?

Th
eorie des langages
N

34 / 62

Automates `
a pile

Automates d
eterministes
Les automates `
a pile M est deterministe `
a 2 conditions :
Premi`ere condition
pour un
etat q donn
e
pour un symbole dentr
ee x donn
e
pour un sommet de pile z donn
e

il existe au plus une transition partant de (q, x, z)


Seconde condition
pour un
etat q donn
e
pour un sommet de pile z donn
e

sil existe une transition partant de (q, , z), elle est unique et pour toute
lettre x, il nen existe pas partant de (q, x, z).
Dans une configuration donnee, on ne peut pas avoir le choix sur la
transition `
a appliquer

Th
eorie des langages
N

35 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

36 / 62

Automates `
a pile

Automates `
a pile et langages
g
ebriques (hors-contextes)

al-

Th
eor`
eme
Un langage est algebrique si et seulement si il est reconnu par un
automate `a pile

Th
eorie des langages
N

37 / 62

Automates `
a pile

Automates `
a pile et langages
g
ebriques (hors-contextes)

al-

Th
eor`
eme
Un langage est algebrique si et seulement si il est reconnu par un
automate `a pile
Th
eor`
eme
Tout langage algebrique nest pas reconnu par un automate `a pile
d
eterministe

Th
eorie des langages
N

37 / 62

Automates `
a pile

Automates `
a pile et langages
g
ebriques (hors-contextes)

al-

Langages alg
ebriques
non d
eterministes

Langages alg
ebriques
d
eterministes

Th
eorie des langages
N

38 / 62

Automates `
a pile

Langage alg
ebrique d
eterministe

Langage alg
ebrique d
eterministe
Un langage algebrique L est d
eterministe sil existe un automate `a pile
M acceptant par etat final deterministe tel que LF (M) = L

Th
eorie des langages
N

39 / 62

Automates `
a pile

Langage alg
ebrique d
eterministe

Langage alg
ebrique d
eterministe
Un langage algebrique L est d
eterministe sil existe un automate `a pile
M acceptant par etat final deterministe tel que LF (M) = L
Par exemple, {m (a + b) |m est un palindrome} est un langage
algebrique non deterministe.
Intuitivement, on ne sait pas deviner o`
u est le milieu du mot.

Th
eorie des langages
N

39 / 62

Automates `
a pile

Langage alg
ebrique d
eterministe

Langage alg
ebrique d
eterministe
Un langage algebrique L est d
eterministe sil existe un automate `a pile
M acceptant par etat final deterministe tel que LF (M) = L
Par exemple, {m (a + b) |m est un palindrome} est un langage
algebrique non deterministe.
Intuitivement, on ne sait pas deviner o`
u est le milieu du mot.
{m1 cm2 |m1 m2 (a + b) est un palindrome} est un langage algebrique
deterministe.

Th
eorie des langages
N

39 / 62

Automates `
a pile

Automates `
a pile et grammaires alg
ebriques

Les automates `
a pile sont necessaires pour reconnatre les langages
algebriques
Mais ils ne sont pas si faciles `
a concevoir
Le lien entre derivations dune grammaire et execution dun automate `
a
pile nest pas evident `
a voir
? Est-il possible de d
eriver automatiquement un automate `
a pile `
a partir
dune grammaire algebrique?

Th
eorie des langages
N

40 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

41 / 62

Automates `
a pile

Rappel : Forme normale de Greibach

Forme normale de Greibach


Une grammaire algebrique G = hV , , P, Si est sous la forme normale
de Greibach si toute production est de la forme :
A aA1 . . . An
A a
avec A, Ai V \ , et a

Th
eorie des langages
N

42 / 62

Automates `
a pile

Grammaire alg
ebrique vers automate `
a
pile

On presente un algorithme de passage dune grammaire algebrique sous


forme normale de Greibach vers un automate `
a pile non deterministe
Idee :
Empiler laxiome
A chaque symbole lu de la chane dentr
ee, remplacer la partie gauche de la
production concern
ee par le reste de la partie droite

Th
eorie des langages
N

43 / 62

Automates `
a pile

Grammaire alg
ebrique vers automate `
a
pile
Grammaire alg
ebrique vers automate `
a pile
Soit L = L \  le langage engendre par G = hV , , P, Si sous forme
normale de Greibach.
On construit lautomate `a pile M = (, , S, Q, q0 , F , ) tel que
=V \
Q = {q0 }
F = (reconnaissance sur pile vide)
S le symbole initial de la pile
On construit iterativement de la facon suivante :
1.
2. Pour toute r`
egle A aA1 A2 . . . An ,
{(q0 , a, A) (q0 , A1 A2 . . . An )}
On lit a, on d
epile A et on empile A1 A2 . . . An (A1 est en sommet de la
pile)
Th
eorie des langages
N

44 / 62

Automates `
a pile

Grammaire alg
ebrique vers automate `
a
pile : exemple
Soit G = hV , , P, Si avec
V = {a, b, S, B}
= {a, b}
P = {S aSB|aB; B b}

Th
eorie des langages
N

45 / 62

Automates `
a pile

Grammaire alg
ebrique vers automate `
a
pile : exemple
Soit G = hV , , P, Si avec
V = {a, b, S, B}
= {a, b}
P = {S aSB|aB; B b}

On construit lautomate M = (, , S, Q, q0 , F , ) tel que


= {S, B}
Q = {q0 }, F =
contient
(q0 , a, S) (q0 , SB)
(q0 , a, S) (q0 , B)
(q0 , b, B) (q0 , )

Th
eorie des langages
N

45 / 62

Automates `
a pile

Grammaire alg
ebrique vers automate `
a
pile : exemple
Soit G = hV , , P, Si avec V = {a, +, , (, ), S, A, B, C },
= {a, b, +, , (, )}
S
S
S
S
S

a
aAS
(SCAS
aBS
(SCBS

S
A
B
C

(SC
+

)

Th
eorie des langages
N

46 / 62

Automates `
a pile

Grammaire alg
ebrique vers automate `
a
pile : exemple
Soit G = hV , , P, Si avec V = {a, +, , (, ), S, A, B, C },
= {a, b, +, , (, )}
S
S
S
S
S

a
aAS
(SCAS
aBS
(SCBS

S
A
B
C

(SC
+

)

On construit lautomate M = (, , S, Q, q0 , F , ) tel que


= {S, A, B, C }, Q = {q0 }, F = et contient
(q0 , a, S)
(q0 , a, S)
(q0 , (, S)
(q0 , a, S)
(q0 , (, S)

(q0 , )
(q0 , AS)
(q0 , SCAS)
(q0 , BS)
(q0 , SCBS)

(q0 , (, S)
(q0 , +, A)
(q0 , , B)
(q0 , ), C )

(q0 , SC )
(q0 , )
(q0 , )
(q0 , )
Th
eorie des langages

46 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

47 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique

On presente un algorithme de passage dun automate `


a pile `
a une
grammaire algebrique
A tout couple (p, q) detats de lautomate, et `
a tout X de la pile, on
associe un non terminal de la forme hp, X , qi
On associe toutes les lectures possibles dans lautomate pour obtenir la
grammaire sans savoir a priori lesquelles vont vider la pile
A la fin, on nettoie la grammaire obtenue

Th
eorie des langages
N

48 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : algorithme
Soit M = (, , Z0 , Q, q0 , F , ). On veut construire G = hV , , P, Si
equivalente.
1. V = {hq, X , pi|p et q Q, X } {S}
2. P
3. Pour tout etat q Q, P P {S hq0 , Z0 , qi}
4. Pour toute transition (q, a, X ) (p, ) de faire
P P {hq, X , pi a}
5. Pour toute transition (q, a, X ) (p, Bm . . . B1 ) de faire
Pour tout m-uplet detats q1 , . . . , qm de Q faire
P P {hq, X , qm i ahp, Bm , q1 ihq1 , Bm1 , q2 i . . . hqm1 , B1 , qm i}

Th
eorie des langages
N

49 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT

Th
eorie des langages
N

50 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT
1. V = {hq, X , pi|p et q Q, X } {S}
V = {S, hq0 , Z0 , q0 i, hq0 , Z0 , q1 i, hq1 , Z0 , q0 i, hq1 , Z0 , q1 i,
hq0 , T , q0 i, hq0 , T , q1 i, hq1 , T , q0 i, hq1 , T , q1 i}

Th
eorie des langages
N

50 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT
2. P
3. Pour tout etat q Q, P P {S hq0 , Z0 , qi}
P recoit
S hq0 , Z0 , q0 i
S hq0 , Z0 , q1 i
Th
eorie des langages
N

50 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT
4. Pour toute transition (q, a, X ) (p, ) de faire
P P {hq, X , pi a}
P recoit
hq0 , Z0 , q0 i 
hq0 , T , q1 i b
hq1 , T , q1 i b
Th
eorie des langages
N

50 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT
5. Pour toute transition (q, a, X ) (p, Bm . . . B1 ) de faire
Pour tout m-uplet detats q1 , . . . , qm de Q faire
P P {hq, X , qm i ahp, B1 , q1 ihq1 , B2 , q2 i . . . hqm1 , Bm , qm i}

Th
eorie des langages
N

50 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT
5. Pour toute transition (q, a, X ) (p, Bm . . . B1 ) de faire
Pour tout m-uplet detats q1 , . . . , qm de Q faire
P P {hq, X , qm i ahp, B1 , q1 ihq1 , B2 , q2 i . . . hqm1 , Bm , qm i}
hq0 , Z0 , q0 i
hq0 , Z0 , q1 i

ahq0 , T , q0 i
ahq0 , T , q1 i
Th
eorie des langages
N

50 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT
5. Pour toute transition (q, a, X ) (p, Bm . . . B1 ) de faire
Pour tout m-uplet detats q1 , . . . , qm de Q faire
P P {hq, X , qm i ahp, B1 , q1 ihq1 , B2 , q2 i . . . hqm1 , Bm , qm i}
hq0 , T , q0 i
hq0 , T , q0 i
hq0 , T , q1 i
hq0 , T , q1 i

ahq0 , T , q0 ihq0 , T , q0 i
ahq0 , T , q1 ihq1 , T , q0 i
ahq0 , T , q0 ihq0 , T , q1 i
ahq0 , T , q1 ihq1 , T , q1 i

Th
eorie des langages
N

50 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On recapitule :
V = {S, hq0 , Z0 , q0 i, hq0 , Z0 , q1 i, hq1 , Z0 , q0 i, hq1 , Z0 , q1 i,
hq0 , T , q0 i, hq0 , T , q1 i, hq1 , T , q0 i, hq1 , T , q1 i}

S
S
hq0 , Z0 , q0 i
hq0 , T , q1 i
hq1 , T , q1 i
hq0 , Z0 , q0 i
hq0 , Z0 , q1 i
hq0 , T , q0 i
hq0 , T , q0 i
hq0 , T , q1 i
hq0 , T , q1 i

hq0 , Z0 , q0 i
hq0 , Z0 , q1 i

b
b
ahq0 , T , q0 i
ahq0 , T , q1 i
ahq0 , T , q0 ihq0 , T , q0 i
ahq0 , T , q1 ihq1 , T , q0 i
ahq0 , T , q0 ihq0 , T , q1 i
ahq0 , T , q1 ihq1 , T , q1 i
Th
eorie des langages
N

51 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On renomme :
V = {S, hq0 , Z0 , q0 i, hq0 , Z0 , q1 i, hq1 , Z0 , q0 i, hq1 , Z0 , q1 i,
hq0 , T , q0 i, hq0 , T , q1 i, hq1 , T , q0 i, hq1 , T , q1 i}

S
S
hq0 , Z0 , q0 i
hq0 , T , q1 i
hq1 , T , q1 i
hq0 , Z0 , q0 i
hq0 , Z0 , q1 i
hq0 , T , q0 i
hq0 , T , q0 i
hq0 , T , q1 i
hq0 , T , q1 i

hq0 , Z0 , q0 i
hq0 , Z0 , q1 i

b
b
ahq0 , T , q0 i
ahq0 , T , q1 i
ahq0 , T , q0 ihq0 , T , q0 i
ahq0 , T , q1 ihq1 , T , q0 i
ahq0 , T , q0 ihq0 , T , q1 i
ahq0 , T , q1 ihq1 , T , q1 i
Th
eorie des langages
N

52 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On renomme :
V = {S, A, hq0 , Z0 , q1 i, hq1 , Z0 , q0 i, hq1 , Z0 , q1 i,
hq0 , T , q0 i, hq0 , T , q1 i, hq1 , T , q0 i, hq1 , T , q1 i}

S
S
A
hq0 , T , q1 i
hq1 , T , q1 i
A
hq0 , Z0 , q1 i
hq0 , T , q0 i
hq0 , T , q0 i
hq0 , T , q1 i
hq0 , T , q1 i

A
hq0 , Z0 , q1 i

b
b
ahq0 , T , q0 i
ahq0 , T , q1 i
ahq0 , T , q0 ihq0 , T , q0 i
ahq0 , T , q1 ihq1 , T , q0 i
ahq0 , T , q0 ihq0 , T , q1 i
ahq0 , T , q1 ihq1 , T , q1 i
Th
eorie des langages
N

52 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On renomme :
V = {S, A, B, C , D, E , F , G , H}

S
S
A
F
H
A

A
B

b
b
aE

B
E
E
F
F

aF
aEE
aFG
aEF
aFH

Th
eorie des langages
N

52 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On nettoie :
V = {S, A, B, C , D, E , F , G , H}
S
S
A
F
H
A

A
B

b
b
aE

B
E
E
F
F

aF
aEE
aFG
aEF
aFH

Th
eorie des langages
N

53 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On nettoie :
V = {S, A, B, C , D, E , F , G , H}
S
S
A
F
H
A

A
B

b
b
aE

B
E
E
F
F

aF
aEE
aFG
aEF
aFH

Symboles productifs : {A, F , H, S, B}

Th
eorie des langages
N

53 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On nettoie :
V = {S, A, B, C , D, E , F , G , H}
S
S
A
F
H
A

A
B

b
b
aE

B
E
E
F
F

aF
aEE
aFG
aEF
aFH

Symboles productifs : {A, F , H, S, B}


On supprime C , D, E , G

Th
eorie des langages
N

53 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On nettoie :
V = {S, A, B, F , H}
S
S
A
F
H

A
B

b
b

aF

aFH

Symboles productifs : {A, F , H, S, B}


On supprime C , D, E , G

Th
eorie des langages
N

53 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On nettoie :
V = {S, A, B, F , H}
S
S
A
H

A
B

b

B
F
F

aF
b
aFH

Symboles productifs : {A, F , H, S, B}


On supprime C , D, E , G

Symboles accessibles : {S, A, B, F , H}

Th
eorie des langages
N

53 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On nettoie :
V = {S, A, B, F , H}
S
S
A
H

A
B

b

B
F
F

aF
b
aFH

Symboles productifs : {A, F , H, S, B}


On supprime C , D, E , G

Symboles accessibles : {S, A, B, F , H}


Suppression des r`egles unitaires

Th
eorie des langages
N

53 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
On nettoie :
V = {S, A, B, F , H}
S
S


aF

F
F

b
aFb

Symboles productifs : {A, F , H, S, B}


On supprime C , D, E , G

Symboles accessibles : {S, A, B, F , H}


Suppression des r`egles unitaires

Th
eorie des langages
N

53 / 62

Automates `
a pile

Automate `
a pile vers grammaire alg
ebrique : exemple
, Z0 /

b, T /
b, T /

a, Z0 /T
a, T /TT
On obtient :
S
S
F
F


aF
b
aFb
Th
eorie des langages
N

54 / 62

Automates `
a pile

Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : definition
Automates `a pile : configurations
Les crit`eres dacceptation
Automates `a pile deterministes
Automates `a pile et langages algebriques
Grammaire algebrique vers automate `a pile
Automate `a pile vers grammaire algebrique
Cloture des langages algebriques

Th
eorie des langages
N

55 / 62

Automates `
a pile

Cl
oture par union

Cl
oture par union
Soient L1 et L2 deux langages algebriques.
Alors L1 L2 est un langage algebrique.

Th
eorie des langages
N

56 / 62

Automates `
a pile

Cl
oture par union

Cl
oture par union
Soient L1 et L2 deux langages algebriques.
Alors L1 L2 est un langage algebrique.
Preuve par construction :
Soient G1 = hV1 , 1 , P1 , S1 i et G1 = hV2 , 2 , P2 , S2 i engendrant L1 et L2
et tels que (V1 \ 1 ) (V2 \ 2 ) = et S 6 V1 V 2 (et sinon on
renomme)
On construit G = hV , , P, Si telle que :
V = V1 V2 {S}
= 1 2
P = P1 P2 {S S1 |S2 }

Th
eorie des langages
N

56 / 62

Automates `
a pile

Cl
oture par concat
enation

Cl
oture par concat
enation
Soient L1 et L2 deux langages algebriques.
Alors L1 .L2 est un langage algebrique.

Th
eorie des langages
N

57 / 62

Automates `
a pile

Cl
oture par concat
enation

Cl
oture par concat
enation
Soient L1 et L2 deux langages algebriques.
Alors L1 .L2 est un langage algebrique.
Preuve par construction :
Soient G1 = hV1 , 1 , P1 , S1 i et G1 = hV2 , 2 , P2 , S2 i engendrant L1 et L2
et tels que (V1 \ 1 ) (V2 \ 2 ) = et S 6 V1 V 2 (et sinon on
renomme)
On construit G = hV , , P, Si telle que :
V = V1 V2 {S}
= 1 2
P = P1 P2 {S S1 S2 }

Th
eorie des langages
N

57 / 62

Automates `
a pile

Cl
oture par op
eration
etoile

Cl
oture par op
eration
etoile
Soit L un langage algebrique.
Alors L est un langage algebrique.

Th
eorie des langages
N

58 / 62

Automates `
a pile

Cl
oture par op
eration
etoile

Cl
oture par op
eration
etoile
Soit L un langage algebrique.
Alors L est un langage algebrique.
Preuve par construction :
Soit G1 = hV1 , 1 , P1 , S1 i engendrant le langage L
On construit G = hV , , P, Si engendrant le langage L telle que :
V = V1 {S}
= 1
P = P1 {S |S1 S}

Th
eorie des langages
N

58 / 62

Automates `
a pile

Exemple
Peut-on trouver une grammaire algebrique pour L = {ai bj c k |i = j ou
j = k} ?
L se decompose en lunion de
L1 = {ai b j c k |i = j, k 0}
L2 = {ai b j c k |i 0, j = k}

L1 = {ai b j c k |i = j, k 0} est la concatenation de


{ai b j |i = j} et
{c k |k 0}

L2 = {ai b j c k |i 0, j = k} est la concatenation de


{ai |i 0} et
{b j c k |j = k}

Th
eorie des langages
N

59 / 62

Automates `
a pile

Exemple
Peut-on trouver une grammaire algebrique pour L = {ai bj c k |i = j ou
j = k} ?
L se decompose en lunion de
L1 = {ai b j c k |i = j, k 0}
L2 = {ai b j c k |i 0, j = k}

L1 = {ai b j c k |i = j, k 0} est la concatenation de


{ai b j |i = j} et
{c k |k 0}

L2 = {ai b j c k |i 0, j = k} est la concatenation de


{ai |i 0} et
{b j c k |j = k}

Th
eorie des langages
N

59 / 62

Automates `
a pile

Exemple
Peut-on trouver une grammaire algebrique pour L = {ai bj c k |i = j ou
j = k} ?
L se decompose en lunion de
L1 = {ai b j c k |i = j, k 0}
L2 = {ai b j c k |i 0, j = k}

L1 = {ai b j c k |i = j, k 0} est la concatenation de


{ai b j |i = j} et
{c k |k 0}

L2 = {ai b j c k |i 0, j = k} est la concatenation de


{ai |i 0} et
{b j c k |j = k}

Th
eorie des langages
N

59 / 62

Automates `
a pile

Exemple
Peut-on trouver une grammaire algebrique pour L = {ai bj c k |i = j ou
j = k} ?
L se decompose en lunion de
L1 = {ai b j c k |i = j, k 0}
L2 = {ai b j c k |i 0, j = k}

L1 = {ai b j c k |i = j, k 0} est la concatenation de


{ai b j |i = j} et
{c k |k 0}

L2 = {ai b j c k |i 0, j = k} est la concatenation de


{ai |i 0} et
{b j c k |j = k}

Th
eorie des langages
N

59 / 62

Automates `
a pile

Exemple, suite
{ai bj |i = j}
S1 |aS1 b
k

{c |k 0}
S2 |cS2

L1 = {ai b j c k |i = j, k 0}
S1 |aS1 b
S2 |cS2
SL1 S1 S2

L2 = {ai b j c k |i 0, j = k}
S3 |aS3
S4 |bS4 c
SL2 S3 S4

Th
eorie des langages
N

60 / 62

Automates `
a pile

Exemple, suite
{ai bj |i = j}
S1 |aS1 b
k

{c |k 0}
S2 |cS2

L1 = {ai b j c k |i = j, k 0}
S1 |aS1 b
S2 |cS2
SL1 S1 S2

L2 = {ai b j c k |i 0, j = k}
S3 |aS3
S4 |bS4 c
SL2 S3 S4

Th
eorie des langages
N

60 / 62

Automates `
a pile

Exemple, suite
{ai bj |i = j}
S1 |aS1 b
k

{c |k 0}
S2 |cS2

L1 = {ai b j c k |i = j, k 0}
S1 |aS1 b
S2 |cS2
SL1 S1 S2

L2 = {ai b j c k |i 0, j = k}
S3 |aS3
S4 |bS4 c
SL2 S3 S4

Th
eorie des langages
N

60 / 62

Automates `
a pile

Exemple, suite
{ai bj |i = j}
S1 |aS1 b
k

{c |k 0}
S2 |cS2

L1 = {ai b j c k |i = j, k 0}
S1 |aS1 b
S2 |cS2
SL1 S1 S2

L2 = {ai b j c k |i 0, j = k}
S3 |aS3
S4 |bS4 c
SL2 S3 S4

Th
eorie des langages
N

60 / 62

Automates `
a pile

Exemple, suite
L = {ai b j c k |i = j ou j = k}
G = hV , , S, Pi
V = {S1 , S2 , S3 , S4 , SL1 , SL2 , S}
= {a, b, c}
P :
S1
S2
SL1
S3
S4
SL2
S

|aS1 b
|cS2
S1 S2
|aS3
|bS4 c
S3 S4
SL1 |SL2

Th
eorie des langages
N

61 / 62

Automates `
a pile

Exemple, suite
L = {ai b j c k |i = j ou j = k}
G = hV , , S, Pi
V = {S1 , S2 , S3 , S4 , SL1 , SL2 , S}
= {a, b, c}
P :
S1
S2
SL1
S3
S4
SL2
S

|aS1 b
|cS2
S1 S2
|aS3
|bS4 c
S3 S4
SL1 |SL2

Th
eorie des langages
N

61 / 62

Automates `
a pile

Exemple, suite
L = {ai b j c k |i = j ou j = k}
G = hV , , S, Pi
V = {S1 , S2 , S3 , S4 , SL1 , SL2 , S}
= {a, b, c}
P :
S1
S2
SL1
S3
S4
SL2
S

|aS1 b
|cS2
S1 S2
|aS3
|bS4 c
S3 S4
SL1 |SL2

Th
eorie des langages
N

61 / 62

Automates `
a pile

Exemple, suite
L = {ai b j c k |i = j ou j = k}
G = hV , , S, Pi
V = {S1 , S2 , S3 , S4 , SL1 , SL2 , S}
= {a, b, c}
P :
S1
S2
SL1
S3
S4
SL2
S

|aS1 b
|cS2
S1 S2
|aS3
|bS4 c
S3 S4
SL1 |SL2

Th
eorie des langages
N

61 / 62

Automates `
a pile

Exemple, suite
L = {ai b j c k |i = j ou j = k}
G = hV , , S, Pi
V = {S1 , S2 , S3 , S4 , SL1 , SL2 , S}
= {a, b, c}
P :
S1
S2
SL1
S3
S4
SL2
S

|aS1 b
|cS2
S1 S2
|aS3
|bS4 c
S3 S4
SL1 |SL2

Th
eorie des langages
N

61 / 62

Automates `
a pile

Cl
oture par intersection et compl
ementation

Cl
oture par intersection
La classe des langages algebriques nest pas close par intersection

Th
eorie des langages
N

62 / 62

Automates `
a pile

Cl
oture par intersection et compl
ementation

Cl
oture par intersection
La classe des langages algebriques nest pas close par intersection
Cl
oture par compl
ementation
La classe des langages algebriques nest pas close par complementation

Th
eorie des langages
N

62 / 62