Professional Documents
Culture Documents
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
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
Th
eorie des langages
N
6 / 62
Automates `
a pile
Automate `
a pile : un exemple introductif
b
Etat
Pile
Th
eorie des langages
N
7 / 62
Automates `
a pile
Automate `
a pile : un exemple introductif
b
Etat
0
Pile
Pile vide
Th
eorie des langages
N
7 / 62
Automates `
a pile
Automate `
a pile : un exemple introductif
b
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
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
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
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
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
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
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
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
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.
empiler T
Si T = , aucun symbole nest empil
e
lire le symbole a
transiter dans l
etat r
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
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
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
Th
eorie des langages
N
20 / 62
Automates `
a pile
Th
eorie des langages
N
21 / 62
Automates `
a pile
-transition : exemple
Th
eorie des langages
N
22 / 62
Automates `
a pile
-transition : exemple
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)
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
Th
eorie des langages
N
30 / 62
Automates `
a pile
Th
eorie des langages
N
30 / 62
Automates `
a pile
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
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
Th
eorie des langages
N
42 / 62
Automates `
a pile
Grammaire alg
ebrique vers automate `
a
pile
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}
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
+
)
(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
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
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
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
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
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
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
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}
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}
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}
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}
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