Automates à pile

Download Report

Transcript Automates à pile

Th´
eorie des langages
Automates `
a pile
Elise Bonzon
http://web.mi.parisdescartes.fr/vbonzon/
[email protected]
Th´
eorie des langages
N
1 / 62
Automates `
a pile
Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
2 / 62
Automates `
a pile
Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
3 / 62
Automates `
a pile
Introduction
Grammaires hors contexte : g´en`erent des langages alg´ebriques
Les automates finis acceptent (exactement) les langages r´eguliers
Langages r´eguliers : sous-ensemble strict des langages alg´ebriques
Comment obtenir des automates qui acceptent les langages alg´ebriques
non r´eguliers?
Un automate fini dispose par d´
efinition d’une m´
emoire finie
⇒ L’ajout d’une 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 : d´efini 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 d’une transition dans l’automate, il est possible d’empiler 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 l’automate suivant qui reconnaˆıt le langage {an b m |n, m > 0}
b
a
0
a
1
b
2
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
a
0
a
b
1
2
Trace du calcul pour w = aaabbb
Entr´ee
Etat
Pile
Th´
eorie des langages
N
7 / 62
Automates `
a pile
Automate `
a pile : un exemple introductif
b
a
0
a
1
b
2
Trace du calcul pour w = aaabbb
Entr´ee
aaabbb
Etat
0
Pile
Pile vide
Th´
eorie des langages
N
7 / 62
Automates `
a pile
Automate `
a pile : un exemple introductif
b
a
0
a
1
b
2
Trace du calcul pour w = aaabbb
Entr´ee
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
a
0
a
1
b
2
Trace du calcul pour w = aaabbb
Entr´ee
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
a
0
a
1
b
2
Trace du calcul pour w = aaabbb
Entr´ee
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
a
0
a
1
b
2
Trace du calcul pour w = aaabbb
Entr´ee
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
a
0
a
1
b
2
Trace du calcul pour w = aaabbb
Entr´ee
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
a
0
a
1
b
2
Trace du calcul pour w = aaabbb
Entr´ee
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
N
7 / 62
Automates `
a pile
Automate `
a pile
De mani`ere imag´ee, un automate `a pile est compos´e de trois unit´es :
Une unit´e centrale, dont la configuration est symbolis´ee par un ´etat
Un canal de lecture qui contient un mot `
a analyser
Un canal de lecture-´ecriture qui est organis´e en pile, et qui sert `
a contenir
de l’information auxiliaire, en quantit´e non born´ee.
Th´
eorie des langages
N
8 / 62
Automates `
a pile
Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
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 ∈ Γ∗
Op´erations 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 : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
12 / 62
Automates `
a pile
Automate `
a pile
Automate `
a pile
Un automate `
a pile non d´eterministe (en anglais pushdown automaton) est un septuplet M = (Σ, Γ, Z0 , Q, q0 , F , δ), o`
u
Σ est l’alphabet d’entr´ee
Γ est l’alphabet de pile
Z0 ∈ Γ est le symbole initial de la pile
Q est un ensemble fini d’´etats
q0 ∈ Q est l’´etat initial de l’automate
F ⊆ Q est l’ensemble des ´etat finaux (on peut avoir F = ∅)
δ est une fonction de Q×(Σ ∪ {})×(Γ ∪ {}) vers l’ensemble des
parties de Q×(Γ ∪ {})
Th´
eorie des langages
N
13 / 62
Automates `
a pile
Automate `
a pile
Automate `
a pile : automate fini non-d´eterministe, `
a la diff´erence pr`es que
la fonction de transition δ comporte trois arguments
l’´
etat courant
le symbole d’entr´
ee courant
le symbole courant en haut de la pile, appartenant `
a l’alphabet de pile.
Si (r , T )∈ δ(q, a, Y ) (on peut ´ecrire aussi (q, a, Y , r , T ) ∈ δ ou
(q, a, Y ) → (r , T )), alors l’utilisation 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 n’est empil´
e
lire le symbole a
transiter dans l’´
etat r
Automate fini “traditionnel” est un automate `
a pile particulier, d´efini sur
un alphabet de pile vide (Γ = ∅) et dont toutes les transitions laissent la
pile inchang´ee.
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 n’est empil´
e
lire le symbole a
transiter dans l’´
etat r
q
a,Y /T
r
Th´
eorie des langages
N
15 / 62
Automates `
a pile
Automate `
a pile : exemple
Soit l’automate `a pile suivant qui reconnaˆıt le langage {an bn |n > 0}
b, T /
a, /T
a, /
0
b, /
1
2
Th´
eorie des langages
N
16 / 62
Automates `
a pile
Automate `
a pile : exemple
Soit l’automate `a pile suivant qui reconnaˆıt 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 : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
18 / 62
Automates `
a pile
Ex´
ecution et configurations
Une ex´ecution 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 d´efinie 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 Γ. L’automate se trouve
dans un ´etat q, et doit lire encore le mot m ∈ Σ∗
Le couple (m, q, h) est appel´e une configuration de l’automate.
L’ensemble des configurations est Σ∗ × Q × Γ∗ .
La configuration initiale (m, q0 , Z0 ) ∈ Σ∗ × Q × Γ est form´ee de
l’´etat 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 Γ. L’automate se trouve
dans un ´etat q, et doit lire encore le mot m ∈ Σ∗
Le couple (m, q, h) est appel´e une configuration de l’automate.
L’ensemble des configurations est Σ∗ × Q × Γ∗ .
La configuration initiale (m, q0 , Z0 ) ∈ Σ∗ × Q × Γ est form´ee de
l’´etat initial et du symbole initial de la pile
Un “mouvement” de l’automate repr´esente le passage d’une configuration
`a une autre.
Th´
eorie des langages
N
20 / 62
Automates `
a pile
Passage d’une configuration `
a une autre
Le passage d’une configuration c1 `
a une configuration c2 dans un
automate M s’´ecrit :
c1 `M c2
On note `∗M la clˆ
oture r´eflexive 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 tˆete de lecture
Th´
eorie des langages
N
23 / 62
Automates `
a pile
Transitions : exemple
Soit l’automate `a pile suivant qui reconnaˆıt le langage {an bn |n > 0}
b, T /
a, /T
a, /
0
b, /
1
2
(aabb, 0, Z0 )
Th´
eorie des langages
N
24 / 62
Automates `
a pile
Transitions : exemple
Soit l’automate `a pile suivant qui reconnaˆıt le langage {an bn |n > 0}
b, T /
a, /T
a, /
0
b, /
1
(aabb, 0, Z0 ) `M
2
(abb, 1, Z0 )
Th´
eorie des langages
N
24 / 62
Automates `
a pile
Transitions : exemple
Soit l’automate `a pile suivant qui reconnaˆıt le langage {an bn |n > 0}
b, T /
a, /T
a, /
0
b, /
1
(aabb, 0, Z0 ) `M
`M
2
(abb, 1, Z0 )
(bb, 1, TZ0 )
Th´
eorie des langages
N
24 / 62
Automates `
a pile
Transitions : exemple
Soit l’automate `a pile suivant qui reconnaˆıt le langage {an bn |n > 0}
b, T /
a, /T
a, /
0
b, /
1
(aabb, 0, Z0 ) `M
`M
`M
2
(abb, 1, Z0 )
(bb, 1, TZ0 )
(b, 2, TZ0 )
Th´
eorie des langages
N
24 / 62
Automates `
a pile
Transitions : exemple
Soit l’automate `a pile suivant qui reconnaˆıt le langage {an bn |n > 0}
b, T /
a, /T
a, /
0
b, /
1
(aabb, 0, Z0 ) `M
`M
`M
`M
2
(abb, 1, Z0 )
(bb, 1, TZ0 )
(b, 2, TZ0 )
(, 2, Z0 )
Th´
eorie des langages
N
24 / 62
Automates `
a pile
Transitions : exemple
Soit l’automate `a pile suivant qui reconnaˆıt 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 l’automate `a pile suivant qui reconnaˆıt 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 l’automate `a pile suivant qui reconnaˆıt 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 l’automate `a pile suivant qui reconnaˆıt 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
N
25 / 62
Automates `
a pile
Transitions : exemple
Soit l’automate `a pile suivant qui reconnaˆıt 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
N
25 / 62
Automates `
a pile
Transitions : exemple
Soit l’automate `a pile suivant qui reconnaˆıt 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
N
25 / 62
Automates `
a pile
Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
26 / 62
Automates `
a pile
Les crit`
eres d’acceptation
Dans nos exemples, on accepte un mot si le ruban vide, on est sur l’´etat
final et la pile vide
Ce sont des cas particuliers
Il y a deux crit`eres d’acceptation possibles :
Acceptation par ´
etat final (quelle que soit la pile quand on s’arrˆ
ete)
Acceptation par pile vide (quel que soit l’´
etat dans lequel on s’arrˆ
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
l’ensemble des mots accept´es 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 l’automate `a pile suivant qui reconnaˆıt 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
l’ensemble des mots accept´es 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 l’automate `a pile suivant qui reconnaˆıt le langage {an bn |n ≥ 0}
, Z0 /
b, T /
b, T /
0
1
a, Z0 /T
a, T /TT
Th´
eorie des langages
N
31 / 62
Automates `
a pile
Crit`
eres d’acceptation
Les deux crit`eres d’acceptation (par ´etat final et par pile vide) sont
´equivalents
Th´
eor`
eme
Un langage est accept´e par un automate `a pile avec le crit`ere
d’acceptation sur pile vide si et seulement si il est accept´e par un
automate `a pile avec acceptation par ´etat final.
Th´
eorie des langages
N
32 / 62
Automates `
a pile
Crit`
eres d’acceptation
Les deux crit`eres d’acceptation (par ´etat final et par pile vide) sont
´equivalents
Th´
eor`
eme
Un langage est accept´e par un automate `a pile avec le crit`ere
d’acceptation sur pile vide si et seulement si il est accept´e par un
automate `a pile avec acceptation par ´etat final.
⇒ Chaque transition dans laquelle Z0 est d´epil´e est remplac´ee 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 : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
33 / 62
Automates `
a pile
Automates d´
eterministes
Les automates `
a pile que nous avons d´efini jusqu’`
a maintenant sont
ind´eterministes
Un mot est accept´
e s’il existe au moins une suite de configurations qui
conduit `
a l’acceptation
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 d´eterministe?
Th´
eorie des langages
N
34 / 62
Automates `
a pile
Automates d´
eterministes
Les automates `
a pile M est d´eterministe `
a 2 conditions :
Premi`ere condition
pour un ´
etat q donn´
e
pour un symbole d’entr´
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
s’il existe une transition partant de (q, , z), elle est unique et pour toute
lettre x, il n’en existe pas partant de (q, x, z).
⇒ Dans une configuration donn´ee, 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 : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
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 alg´ebrique 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 alg´ebrique si et seulement si il est reconnu par un
automate `a pile
Th´
eor`
eme
Tout langage alg´ebrique n’est 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 alg´ebrique L est d´
eterministe s’il existe un automate `a pile
M acceptant par ´etat final d´eterministe 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 alg´ebrique L est d´
eterministe s’il existe un automate `a pile
M acceptant par ´etat final d´eterministe tel que LF (M) = L
Par exemple, {m ∈ (a + b)∗ |m est un palindrome} est un langage
alg´ebrique non d´eterministe.
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 alg´ebrique L est d´
eterministe s’il existe un automate `a pile
M acceptant par ´etat final d´eterministe tel que LF (M) = L
Par exemple, {m ∈ (a + b)∗ |m est un palindrome} est un langage
alg´ebrique non d´eterministe.
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 alg´ebrique
d´eterministe.
Th´
eorie des langages
N
39 / 62
Automates `
a pile
Automates `
a pile et grammaires alg´
ebriques
Les automates `
a pile sont n´ecessaires pour reconnaˆıtre les langages
alg´ebriques
Mais ils ne sont pas si faciles `
a concevoir
Le lien entre d´erivations d’une grammaire et ex´ecution d’un automate `
a
pile n’est pas ´evident `
a voir
? Est-il possible de d´
eriver automatiquement un automate `
a pile `
a partir
d’une grammaire alg´ebrique?
Th´
eorie des langages
N
40 / 62
Automates `
a pile
Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
41 / 62
Automates `
a pile
Rappel : Forme normale de Greibach
Forme normale de Greibach
Une grammaire alg´ebrique 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 pr´esente un algorithme de passage d’une grammaire alg´ebrique sous
forme normale de Greibach vers un automate `
a pile non d´eterministe
Id´ee :
Empiler l’axiome
A chaque symbole lu de la chaˆıne d’entr´
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 engendr´e par G = hV , Σ, P, Si sous forme
normale de Greibach.
On construit l’automate `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 δ it´erativement de la fa¸con 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 l’automate 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 l’automate 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
N
46 / 62
Automates `
a pile
Automates `
a pile
Introduction
Rappels sur les piles
Automates `a pile : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
47 / 62
Automates `
a pile
Automate `
a pile vers grammaire alg´
ebrique
On pr´esente un algorithme de passage d’un automate `
a pile `
a une
grammaire alg´ebrique
A tout couple (p, q) d’´etats de l’automate, 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 l’automate 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 d’´etats q1 , . . . , qm de Q faire
P ← P ∪ {hq, X , qm i → ahp, Bm , q1 ihq1 , Bm−1 , q2 i . . . hqm−1 , 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 /
0
1
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 /
0
1
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 /
0
1
a, Z0 /T
a, T /TT
2. P ← ∅
3. Pour tout ´etat q ∈ Q, P ← P ∪ {S → hq0 , Z0 , qi}
P re¸coit
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 /
0
1
a, Z0 /T
a, T /TT
4. Pour toute transition (q, a, X ) → (p, ) de δ faire
P ← P ∪ {hq, X , pi → a}
P re¸coit
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 /
0
1
a, Z0 /T
a, T /TT
5. Pour toute transition (q, a, X ) → (p, Bm . . . B1 ) de δ faire
Pour tout m-uplet d’´etats q1 , . . . , qm de Q faire
P ← P ∪ {hq, X , qm i → ahp, B1 , q1 ihq1 , B2 , q2 i . . . hqm−1 , 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 /
0
1
a, Z0 /T
a, T /TT
5. Pour toute transition (q, a, X ) → (p, Bm . . . B1 ) de δ faire
Pour tout m-uplet d’´etats q1 , . . . , qm de Q faire
P ← P ∪ {hq, X , qm i → ahp, B1 , q1 ihq1 , B2 , q2 i . . . hqm−1 , 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 /
0
1
a, Z0 /T
a, T /TT
5. Pour toute transition (q, a, X ) → (p, Bm . . . B1 ) de δ faire
Pour tout m-uplet d’´etats q1 , . . . , qm de Q faire
P ← P ∪ {hq, X , qm i → ahp, B1 , q1 ihq1 , B2 , q2 i . . . hqm−1 , 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 r´ecapitule :
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
B
→
aF
F
→
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 /
0
1
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 : d´efinition
Automates `a pile : configurations
Les crit`eres d’acceptation
Automates `a pile d´eterministes
Automates `a pile et langages alg´ebriques
Grammaire alg´ebrique vers automate `a pile
Automate `a pile vers grammaire alg´ebrique
Cloture des langages alg´ebriques
Th´
eorie des langages
N
55 / 62
Automates `
a pile
Clˆ
oture par union
Clˆ
oture par union
Soient L1 et L2 deux langages alg´ebriques.
Alors L1 ∪ L2 est un langage alg´ebrique.
Th´
eorie des langages
N
56 / 62
Automates `
a pile
Clˆ
oture par union
Clˆ
oture par union
Soient L1 et L2 deux langages alg´ebriques.
Alors L1 ∪ L2 est un langage alg´ebrique.
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 alg´ebriques.
Alors L1 .L2 est un langage alg´ebrique.
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 alg´ebriques.
Alors L1 .L2 est un langage alg´ebrique.
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 alg´ebrique.
Alors L∗ est un langage alg´ebrique.
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 alg´ebrique.
Alors L∗ est un langage alg´ebrique.
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 alg´ebrique pour L = {ai bj c k |i = j ou
j = k} ?
L se d´ecompose en l’union 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 concat´enation de
{ai b j |i = j} et
{c k |k ≥ 0}
L2 = {ai b j c k |i ≥ 0, j = k} est la concat´enation 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 alg´ebrique pour L = {ai bj c k |i = j ou
j = k} ?
L se d´ecompose en l’union 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 concat´enation de
{ai b j |i = j} et
{c k |k ≥ 0}
L2 = {ai b j c k |i ≥ 0, j = k} est la concat´enation 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 alg´ebrique pour L = {ai bj c k |i = j ou
j = k} ?
L se d´ecompose en l’union 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 concat´enation de
{ai b j |i = j} et
{c k |k ≥ 0}
L2 = {ai b j c k |i ≥ 0, j = k} est la concat´enation 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 alg´ebrique pour L = {ai bj c k |i = j ou
j = k} ?
L se d´ecompose en l’union 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 concat´enation de
{ai b j |i = j} et
{c k |k ≥ 0}
L2 = {ai b j c k |i ≥ 0, j = k} est la concat´enation 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 alg´ebriques n’est 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 alg´ebriques n’est pas close par intersection
Clˆ
oture par compl´
ementation
La classe des langages alg´ebriques n’est pas close par compl´ementation
Th´
eorie des langages
N
62 / 62