Académique Documents
Professionnel Documents
Culture Documents
61/98
Automates à pile
Exemples :
I L1 = {an bn cp | n, p > 0} et L2 = {an bp cp | n, p > 0}
I L = L1 ∪ L2 (non déterministe)
Exercices :
1. Montrer que le langage {ww̃ | w ∈ Σ∗ } et son complémentaire peuvent être
acceptés par un automate à pile.
2. Montrer que le complémentaire du langage {ww | w ∈ Σ∗ } peut être accepté
par un automate à pile.
3. Soit A = (Q, Σ, Z, T, q0 z0 , F ) un automate à pile. Montrer qu’on peut
construire un automate à pile équivalent A0 tel que
T 0 ⊆ Q0 Z × (Σ ∪ {ε}) × Q0 Z ≤2 .
4. Soit A un automate à pile. Montrer qu’on peut construire un automate à pile
équivalent A0 tel que les mouvements de la pile sont uniquement du type push
ou pop.
63/98
Propriétés fondamentales
Lemme : fondamental
Soient A = (Q, Σ, Z, T, q0 z0 ) un automate à pile, p, r ∈ Q, g, h ∈ Z ∗ , w ∈ Σ∗ et
n ≥ 0. Les conditions suivantes sont équivalentes:
w
1. pgh −−
→ r est un calcul de A,
n
w
1 2 w
2. il existe deux calculs pg −−
n→
1
q et qh −−
n→
2
r de A avec q ∈ Q, w = w1 w2 et
n = n1 + n2 .
Preuve
w
=⇒: Dans le calcul pgh −− → r, on considère la première fois que le contenu de
n
la pile est h (possible car initialement gh, finalement ε). Soit qh la configuration
w1 w2
correspondante après n1 étapes. Le calcul s’écrit pgh −−
n→
1
qh −−
n→
2
r.
a 1 a k
Si p0 g0 h −→ p1 g1 h · · · −→ pk gk h est un calcul de A tel que gi 6= ε pour 0 ≤ i < n
a1 ak
alors p0 g0 −→ p1 g1 · · · −→ pk gk est un calcul de A.
0 0 v
⇐=: On utilise la remarque suivante: Si sf −→
k s f est un calcul de A avec s ∈ Q,
0 00 ∗ 00 v 0 0 00
f, f , f ∈ Z alors sf f −→k s f f est aussi un calcul de A.
65/98
Acceptation généralisée
Définition :
Soit A = (Q, Σ, Z, T, q0 z0 ) un automate à pile et K ⊆ QZ ∗ un langage reconnais-
sable. Le langage reconnu par A avec acceptation généralisée K est
w
LK (A) = {w ∈ Σ∗ | ∃ q0 z0 −
→ qh ∈ K dans T }
Cas particuliers :
I K = F Z ∗ : acceptation classique par état final.
I K = Q : acceptation par pile vide.
I K = F : acceptation par pile vide et état final.
I K = QZ 0 Z ∗ avec Z 0 ⊆ Z : acceptation par sommet de pile.
Exemple :
L = {an bn | n ≥ 0} peut être accepté par pile vide ou par sommet de pile.
68/98
Automates à pile et grammaires
69/98
Configurations accessibles (mots de pile)
Proposition : Reconnaissabilité des configurations accessibles
Soit A = (Q, Σ, Z, T, q0 z0 ) un automate à pile.
Pour p ∈ Q et g ∈ Z ∗ , on note
C(pg) = {qh ∈ QZ ∗ | ∃ pg →
−
+ qh dans T }
Preuve
Il suffit de tester si q0 ∈ F ou C(q0 z0 ) ∩ F Z ∗ 6= ∅.
73/98
Calculs d’accessibilité
Corollaire :
Soit A = (Q, Σ, Z, T, q0 z0 ) un automate à pile.
On peut effectivement calculer les ensembles suivants :
1. X = {(p, x, q) ∈ Q × Z × Q | ∃ px →
−
+ q dans T }
2. Y = {(p, x, q, y) ∈ Q × Z × Q × Z | ∃ px →
−
+ qy dans T }
3. W = {(p, x, q, y) ∈ Q × Z × Q × Z | ∃ px →
−
+ qyh dans T }
ε
4. X 0 = {(p, x, q) ∈ Q × Z × Q | ∃ px −→
+ q dans T }
ε
5. Y 0 = {(p, x, q, y) ∈ Q × Z × Q × Z | ∃ px −→
+ qy dans T }
ε
6. W 0 = {(p, x, q, y) ∈ Q × Z × Q × Z | ∃ px −→
+ qyh dans T }
Preuve
1. (p, x, q) ∈ X ssi q ∈ C(px).
2. (p, x, q, y) ∈ Y ssi qy ∈ C(px).
3. (p, x, q, y) ∈ W ssi C(px) ∩ qyZ ∗ 6= ∅.
On applique ce qui précède à l’automate A0 obtenu à partir de A en ne conservant
que les ε-transitions.
74/98
Clôture et réduction.
e∗ | w −−
Remarque : Soit D = {w ∈ Γ red
∗→ ε}.
P
On peut montrer que D est engendré par la grammaire S → − ε + a∈Γ aSaS.
Il s’agit donc du langage de Dyck en considérant a comme une parenthèse ouvrante
et a comme la parenthèse fermante correspondante.
Pour L ⊆ Γ e ∗ | ∃v ∈ L, v −red
e ∗ on pose Clot(L) = {w ∈ Γ −∗→ w}.
75/98
Clôture et réduction.
Preuve : Reconnaissabilité de la clôture
e T, I, F ) un automate fini reconnaissant L.
Soit A = (Q, Γ,
e T, p, q) et Lp,q = L(Ap,q ).
Pour p, q ∈ Q, on note Ap,q = (Q, Γ,
On peut décider si Lp,q ∩ D 6= ∅ en PTime
On peut calculer (PTime) l’ensemble R = {(p, q) ∈ Q2 | Lp,q ∩ D 6= ∅}.
e T 0 , I, F ) en ajoutant à A des ε-transitions:
On définit A0 = (Q, Γ,
T 0 = T ∪ {(p, ε, q) | (p, q) ∈ R}.
Remarque: R2 = R et donc dans un calcul de A0 il est inutile de prendre deux (ou
plus) ε-transitions consécutives.
Lemme: L(A0 ) = Clot(L).
⊆: Soit w = a1 · · · an ∈ L(A0 ). On a un calcul acceptant dans A0
ε 1 a ε n a ε
p0 −
→ q0 −→ p1 −
→ q1 · · · −−→ pn −
→ qn
pour tout 0 ≤ i ≤ n, il existe un mot vi ∈ Lpi ,qi ∩ D. On obtient
v = v0 a1 v1 · · · an vn −red
−∗→ w
76/98
Clôture et réduction.
Preuve : Reconnaissabilité de la clôture
⊇: Par induction sur le nombre n de réductions: Soit v −red
−n→ w avec v ∈ L.
77/98
Configurations accessibles (Preuve)
Soit A = (Q, Σ, Z, T, q0 z0 ) un automate à pile.
e+ .
On définit Γ = Q ] Z et le langage fini K = {qhx p | ∃ (px, a, qh) ∈ T } ⊆ Γ
Lemme : Soit n ≥ 0
n red
il existe un calcul pg →
−
n qh dans A ssi il existe w ∈ K tel que wpg −−
2n→ qh
Preuve du Lemme
=⇒: par récurrence sur n. Soit pg → −
n qh un calcul de A.
Si n = 0 alors qh = pg et on prend w = ε ∈ K 0 .
Si n > 0 alors g = xg 0 et le calcul s’écrit
a
pg = pxg 0 −→ 0 0 0 0 0
1 p h g −→ qh avec (px, a, p h ) ∈ T .
n−1 red
Par induction, il existe w0 ∈ K n−1 tel que w0 p0 h0 g 0 −−−→ qh.
2(n−1)
Soit w = w0 (p0 h0 x p) ∈ K n . On a wpg −red −→ qh.
2n
78/98
Configurations accessibles (Preuve)
Preuve du Lemme
⇐=: par récurrence sur n. Soit w ∈ K n tel que wpg −red −→ qh.
2n
Si n = 0 alors w = ε et qh = pg: on a pg → −0 qh dans A.
Si n > 0 alors w = w0 v avec w0 ∈ K n−1 et v = p0 h0 x r ∈ K.
Toutes les lettres barrées doivent être réduites à partir de wpg = w0 p0 h0 x rpg.
On en déduit r = p et g = xg 0 .
red
Donc, on a une transition (px, a, p0 h0 ) ∈ T et une réduction w0 p0 h0 g 0 −−−→ qh.
2(n−1)
Par induction, il existe un calcul p0 h0 g 0 −→ qh dans A.
n−1
Finalement,
a
pg = pxg 0 −→ 0 0 0
1 p h g −→ qh dans A.
n−1
79/98
Langages déterministes
Définition : Automate à pile déterministe
A = (Q, Σ, Z, T, q0 z0 , F ) est déterministe si
I ∀(pz, a) ∈ QZ × (Σ ∪ {ε}), |T (pz, a)| ≤ 1,
I ∀ pz ∈ QZ, T (pz, ε) 6= ∅ =⇒ ∀ a ∈ Σ, T (pz, a) = ∅
∗
Un langage L ⊆ Σ est déterministe s’il existe un automate à pile déterministe qui
accepte L par état final.
Exemples :
1. Le langage L4 = {an bp cn | n, p > 0} ∪ {an bp dp | n, p > 0} est déterministe
mais pas D+TR.
2. L5 = {an ban | n > 0} peut être accepté par un automate D+TR mais pas
par un automate D+S car il n’est pas fermé par préfixe.
Exercices :
1. Montrer que Dn∗ est D+TR mais pas D+S.
2. Montrer que le langage {an bn | n > 0} ∪ {an b2n | n > 0} est non ambigu
mais pas déterministe.
81/98
Acceptation par pile vide
Exemples :
1. Le langage L5 = {an ban | n ≥ 0} peut être accepté par pile vide par un
automate D+TR+S.
2. Le langage L4 = {an bp cn | n, p > 0} ∪ {an bp dp | n, p > 0} peut être accepté
par pile vide par un automate D.
Exercices :
1. Montrer qu’un langage L est déterministe et préfixe (L ∩ LΣ+ = ∅) ssi il
existe un automate déterministe qui accepte L par pile vide.
2. Montrer que pour les automates à pile déterministes, l’acceptation par pile
vide est équivalente à l’acceptation par pile vide ET état final.
Exercice :
Montrer que Dn∗ peut être accepté par sommet de pile par un automate D+TR+S.
83/98
Complémentaire
85/98
Blocage
Définition : Blocage
Un automate à pile A = (Q, Σ, Z, T, q0 z0 ) est sans blocage si pour toute configu-
ε a
ration accessible pα et pour toute lettre a ∈ Σ il existe un calcul pα −→
∗ −
→.
Remarque :
Si A est sans blocage alors chaque mot w ∈ Σ∗ a un unique calcul maximal (et fini)
w ε
q0 z0 −−
→ pα −
∗ 6→ dans A (avec α 6= ε).
86/98
Blocage
Preuve : Critère d’absence de blocage
Si A est sans blocage alors il satisfait clairement le critère.
Réciproquement, supposons que A satisfait le critère.
ε
On calcule X 0 = {(r, x, s) ∈ Q × Z × Q | ∃ rx −→ + s dans T }.
Soit pα une configuration accessible et a ∈ Σ.
On écrit α = x1 x2 · · · xn avec xi ∈ Z.
ε 0 0
Il n’existe pas de calcul pα −→ + p car sinon la configuration p est accessible ce qui
contredit le point 1 du critère.
Donc il existe 1 ≤ k ≤ n et des états p2 , . . . , pk tels que
(p, x1 , p2 ), (p2 , x3 , p3 ), . . . , (pk−1 , xk−1 , pk ) ∈ X 0
et il n’existe pas pk+1 avec (pk , xk , pk+1 ) ∈ X 0 .
ε
La configuration pk xk · · · xn est accessible, donc pk xk −6 → ω (critère point 3).
ε ε a
On en déduit pk xk −→
∗ qyβ avec qy −
6→ et donc qy −
→ (critère point 2).
ε ε a
Finalement, pα −→
∗ pk xk · · · xn −
→∗ qyβxk+1 · · · xn −
→
Décidabilité du critère: on vérifie que C(q0 z0 ) ∩ Q = ∅ (point 1) et pour chaque px
tel que px = q0 z0 ou C(q0 z0 ) ∩ pxZ ∗ 6= ∅, on vérifie le point 2 du critère et que
/ V 0 (point 3).
(p, x) ∈ 87/98
Blocage
Proposition : Suppression des blocages
Soit A = (Q, Σ, Z, T, q0 z0 , F ) un automate à pile déterministe, on peut ef-
fectivement construire un automate à pile déterministe sans blocage A0 =
(Q0 , Σ, Z 0 , T 0 , q00 z00 , F 0 ) qui reconnaı̂t le même langage.
Preuve
Q0 = Q ] {q00 , d, f }, F 0 = F ] {f }, Z 0 = Z ] {⊥}, z00 = ⊥ et
pour p ∈ Q, a ∈ Σ et x ∈ Z
ε
1. q00 ⊥ −
→ q0 z0 ⊥,
a a
2. Si px − → qα ∈ T 0 ,
→ qα ∈ T alors px −
a ε a
3. Si px −
6 → et px − → dx ∈ T 0 ,
6→ dans A alors px −
ε ε ε
4. Si px −6 →
ω dans A et px − → qα ∈ T 0 ,
→ qα ∈ T alors px −
ε ε ε
5. Si px −→
ω dans A et ∃ px −
→ → f x ∈ T 0,
∗ qα avec q ∈ F alors px −
ε ε ε
6. Si px −→
ω dans A et ∀ px −
→∗ qα on a q ∈ → dx ∈ T 0 ,
/ F alors px −
ε a a a
7. p⊥ −
→ d⊥, d⊥ −
→ d⊥, dx −
→ dx et f x −
→ dx.
Cette construction est effective.
88/98
Blocage
Preuve : A0 est déterministe, sans blocage, constructible en PTime
Déterministe: il suffit de le vérifier.
Sans blocage: on vérifie les conditions du critère.
1. C 0 (q00 ⊥) ∩ Q = ∅: on ne peut pas vider entièrement la pile car le fond de pile ⊥
n’est jamais effacé.
ε
2. Soit pxα une configuration accessible. Supposons px − 6→ dans A0 .
a
Si p ∈ Q alors x 6= ⊥ (7) et donc (2,3) ∀ a ∈ Σ, px − →
a
On a p 6= q00 et si p ∈ {d, f } alors (7) ∀ a ∈ Σ, px − → (notons que px 6= f ⊥).
ε 0
3. Soit pxα une configuration accessible. Supposons px −→ ω dans A .
Ce calcul ne peut pas utiliser les états d et f : il n’utilise que les transitions (1,4).
La transition (1) est utilisée au plus une fois.
ε
Si px 6= q00 ⊥ alors px −→
ω dans A et on ne peut pas utiliser la transition (4).
ε
Si px = q00 ⊥ alors q0 z0 −→
ω dans A et la transition (4) est impossible aussi.
Constructible en PTime:
Pour les conditions des transitions (4,5,6) on utilise les ensembles V 0 , X 0 et W 0 .
89/98
Blocage
0
Preuve : L(A) ⊆ L(A )
w
→ qβ un calcul acceptant de A pour w ∈ Σ∗ .
Soit q0 z0 −
ε 0
Si le calcul ne passe pas par une configuration pxα avec px −→ ω ((p, x) ∈ V ) alors
0 ε w
q0 ⊥ −→ q0 z0 ⊥ −−→ qβ⊥
(1)
(2,4)
0
est un calcul acceptant de A .
w ε ε
Sinon, le calcul s’écrit q0 z0 −
→ pxγ −→ ∗ qβ avec px − →ω
ε 0
Donc β = αγ avec px −→ ∗ qα et q ∈ F . On obtient un calcul acceptant dans A :
0 ε w ε
q0 ⊥ −→ q0 z0 ⊥ −−→ pxγ⊥ −
(1) → f xγ⊥
(5)
(2,4)
0
Preuve : L(A ) ⊆ L(A)
Un calcul acceptant de A0 ne peut pas atteindre l’état puits d. Deux possibilités:
Si le calcul accepte grâce à l’état f , il s’écrit:
ε w ε
q00 ⊥ − →
(1) q0 z0 ⊥ −−→ pxγ⊥ − →
(5) f xγ⊥
w (2,4)
ε
On en déduit q0 z0 −
→ pxγ dans A et il existe px −→ ∗ qα dans A avec q ∈ F .
w ε
Donc w est accepté par le calcul q0 z0 −
→ pxγ −→ ∗ qαγ de A.
0 0 ε w
Sinon, le calcul de A s’écrit q0 ⊥ −→ q0 z0 ⊥ −−→ qβ⊥ avec q ∈ F
(1)
w (2,4)
et on obtient le calcul acceptant q0 z0 −
→ qβ dans A pour w.
90/98
Complémentaire
Proposition :
Soit A = (Q, Σ, Z, T, q0 z0 , F ) un automate à pile déterministe, on peut effective-
ment construire un automate à pile déterministe A0 qui reconnaı̂t Σ∗ \ L(A).
Proposition :
Soit A = (Q, Σ, Z, T, q0 z0 , F ) un automate à pile déterministe, on peut effective-
ment construire un automate à pile déterministe équivalent A0 tel qu’on ne puisse
pas faire d’ε-transition à partir d’un état final de A0 .
Exercice :
Montrer que tout langage déterministe est non ambigu.
91/98
Complémentaire
Preuve : Complémentaire
On suppose A déterministe et sans blocage. On pose Q0 = Q × {1, 2, 3, 4}.
/ F et q00 = (q0 , 2) sinon.
L’état initial est q00 = (q0 , 1) si q0 ∈
ε
1. Si px − → qα ∈ T et i ∈ {1, 2} alors (
ε 0 1 si i = 1 ∧ q ∈/F
(p, i)x −
→ (q, j)α ∈ T avec j =
2 sinon.
a ε
2. Si px −
→ qα ∈ T et i ∈ {1, 2} alors (p, i)x −
→((p, i + 2)x ∈ T 0 et
a 1 si q ∈ /F
→ (q, j)α ∈ T 0 avec j =
(p, i + 2)x −
2 sinon.
L’automate A0 est déterministe et sans blocage.
w ε
Soit w ∈ Σ∗ et q0 z0 −→ pα l’unique calcul maximal de A sur w. On a pα − 6 →.
w
L’unique calcul maximal de A0 sur w s’écrit q00 z0 −→ (p, j)α avec j = 3 si le calcul
de A n’a pas visité F depuis la dernière transition visible (6= ε), et j = 4 sinon.
I Avec F 0 = Q × {3} on obtient L(A0 ) = L(A).
I Avec F 0 = Q × {4} on obtient L(A0 ) = L(A).
Dans les deux cas, à partir d’un état de F 0 il n’y a pas d’ε-transition.
De plus, chaque mot w ∈ L(A0 ) a un unique calcul acceptant dans A0 .
92/98
Grammaires de type 0
Définition : Grammaires générales (type 0)
G = (Σ, V, P, S) où
I Σ est l’alphabet terminal
I V est l’alphabet non terminal (variables)
I S ∈ V est l’axiome (variable initiale)
I P ⊆ (Σ ∪ V )∗ × (Σ ∪ V )∗ est un ensemble fini de règles ou productions.
n
Exemple : Grammaire G1 pour {a2 | n > 0}
1: S→
− DXaF 3 : XF →
− YF 5 : DY →
− DX 7 : aZ →
− Za
2 : Xa →
− aaX 4 : aY →
− Ya 6 : XF →
− Z 8 : DZ →
− ε
Définition : Dérivation
α ∈ (Σ ∪ V )∗ se dérive en β ∈ (Σ ∪ V )∗ , noté α →− β, s’il existe (α2 , β2 ) ∈ P tel
que α = α1 α2 α3 et β = α1 β2 α3 .
∗
On note −
→ la clôture réflexive et transitive de →
−.
9/98
Grammaires de type 0
10/98
Grammaires algébriques
Définition : Grammaire hors contexte ou algébrique ou de type 2
Une grammaire G = (Σ, V, P, S) est hors contexte ou algébrique si P ⊆ V ×(Σ∪V )∗
(sous ensemble fini).
Un langage est de type 2 (ou hors contexte ou algébrique) s’il peut être engendré
par une grammaire hors contexte.
On note Alg la famille des langages algébriques.
Exemples :
1. Le langage {an bn | n ≥ 0} est algébrique.
2. Expressions complètement parenthésées.
Lemme : fondamental
Soit G = (Σ, V, P, S) une grammaire algébrique, α1 , α2 , β ∈ (Σ ∪ V )∗ et n ≥ 0.
n n
1 n
2
α1 α2 −
→β ⇐⇒ α1 −→ β1 , α2 −→ β2 avec β = β1 β2 et n = n1 + n2
14/98
Grammaires linéaires
Définition : Grammaire linéaire
La grammaire G = (Σ, V, P, S) est
I linéaire si P ⊆ V × (Σ∗ ∪ Σ∗ V Σ∗ ),
I linéaire gauche si P ⊆ V × (Σ∗ ∪ V Σ∗ ),
I linéaire droite si P ⊆ V × (Σ∗ ∪ Σ∗ V ).
Un langage est linéaire s’il peut être engendré par une grammaire linéaire.
On note Lin la famille des langages linéaires.
Exemples :
I Le langage {an bn | n ≥ 0} est linéaire.
I Le langage {an bn cp | n, p ≥ 0} est linéaire.
Proposition :
Un langage est rationnel si et seulement si il peut être engendré par une grammaire
linéaire gauche (ou droite).
16/98
Arbres de dérivation
Définition :
Soit G = (Σ, V, P, S) une grammaire.
Un arbre de dérivation pour G est un arbre t étiqueté dans V ∪ Σ ∪ {ε} tel que
chaque nœud interne u est étiqueté par une variable x ∈ V et si les fils de u portent
les étiquettes α1 , . . . , αk alors (x, α1 · · · αk ) ∈ P .
De plus, si k 6= 1, on peut supposer α1 , . . . , αk 6= ε.
Exemple :
Arbres de dérivation pour les expressions.
Mise en évidence des priorités ou de l’associativité G ou D.
Définition : Ambigüité
I Une grammaire est ambigüe s’il existe deux arbres de dérivations (distincts) de
même racine et de même frontière.
I Un langage algébrique est non ambigu s’il existe une grammaire non ambigüe
qui l’engendre. Dans le cas contraire, on dit qu’il est inhéremment ambigu.
20/98
Arbres de dérivation
Lemme : Dérivations et arbres de dérivation
Soit G = (Σ, V, P, S) une grammaire.
∗
1. Si x −
→ α une dérivation de G alors il existe un arbre de dérivation t de G tel
que rac(t) = x et Fr(t) = α.
∗
2. Si t un arbre de dérivation de G alors il existe une dérivation rac(t) −
→ Fr(t)
dans G.
∗
Si Fr(t) ∈ Σ∗ alors on peut faire une dérivation gauche rac(t) − →g Fr(t).
Une dérivation est gauche si on dérive toujours le non terminal le plus à gauche.
Remarques :
I 2 dérivations sont équivalentes si elles sont associées au même arbre de
dérivation.
I Il y a bijection entre dérivations gauches terminales et arbres de dérivation
ayant une frontière dans Σ∗ .
I Si la grammaire est linéaire, il y a bijection entre dérivations et arbres de
dérivations.
23/98
Ambigüité
Exemples :
I La grammaire S →
− SS + aSb + ε est ambigüe mais elle engendre un langage
non ambigu.
I La grammaire E → − E + E | E × E | a | b | c est ambigüe et engendre un
langage rationnel.
Proposition : Tout langage rationnel peut être engendré par une gram-
maire linéaire droite non ambigüe.
25/98
Lemme d’itération
Exemple :
Le langage L1 = {an bn cn | n ≥ 0} n’est pas algébrique.
Corollaire :
Les familles Alg et Lin ne sont pas fermées par intersection ou complémentaire.
27/98
Automates à pile et grammaires
69/98
Grammaires quadratiques
Définition : Taille d’une grammaire
grammaire G = (Σ, V, P, S) est |G| = |Σ| + |V | + ||P ||
La taille d’une X
avec ||P || = 1 + |α|.
x→
− α∈P
Pour simplifier certains algorithmes ou obtenir une meilleure complexité, il est
parfois utile de borner la taille des seconds membres des règles.
Proposition :
Soit G = (Σ, V, P, S) une grammaire.
On peut construire en temps O(|G|) une grammaire équivalente G0 en FNQF.
En particulier, |G0 | = O(|G|).
30/98
Grammaires réduites
32/98
Grammaires propres
Définition : Grammaires propres
La grammaire G = (Σ, V, P, S) est propre si P ⊆ V × ((Σ ∪ V )+ \ V ),
i.e., elle ne contient pas de règle de la forme x →
− ε ou x →
− y avec x, y ∈ V .
Un langage L ⊆ Σ∗ est propre si ε ∈ / L.
Lemme :
Soit G = (Σ, V, P, S) une grammaire.
On peut calculer l’ensemble des variables x telles que ε ∈ LG (x) O(|G|).
On peut construire une grammaire équivalente sans ε-règle autre que S →
− ε et dans
ce cas S n’apparaı̂t dans aucun membre droit O(|G|).
Proposition :
Soit G = (Σ, V, P, S) une grammaire.
On peut construire une grammaire propre G0 qui engendre LG (S) \ {ε} O(|G|2 ).
Remarque : la réduction d’une grammaire propre est une grammaire propre.
Corollaire :
On peut décider si un mot u ∈ Σ∗ est engendré par une grammaire G.
38/98
Problèmes décidables
Exercice :
Soit G une grammaire algébrique et A un automate fini.
Montrer que l’on peut décider en temps polynomial si L(G) ∩ L(A) 6= ∅.
45/98
Problèmes indécidables
Proposition :
Soient L, L0 deux langages algébriques et R un langage rationnel.
Les problèmes suivants sont indécidables :
I L ∩ L0 = ∅ ?
I L = Σ∗ ?
I L = L0 ?
I L ⊆ L0 ?
I R⊆L?
I L est-il rationnel ?
I L est-il déterministe ?
I L est-il ambigu ?
I L est-il algébrique ?
I L ∩ L0 est-il algébrique ?
47/98
Propriétés de clôture
Proposition :
1. La famille Alg est fermée par concaténation, itération.
2. La famille Alg est fermée par substitution algébrique.
3. Les familles Alg et Lin sont fermées par union et miroir.
4. Les familles Alg et Lin sont fermées par intersection avec un rationnel.
5. Les familles Alg et Lin sont fermées par morphisme.
6. Les familles Alg et Lin sont fermées par projection inverse.
7. Les familles Alg et Lin sont fermées par morphisme inverse.
Définition : Projection
La projection de A sur B ⊆ A est le morphisme
( π : A∗ → B ∗ défini par
a si a ∈ B
π(a) =
ε sinon.
51/98
Résumé: Propriétés de clôture
∪ ∩ compl. · ∗
aut.fini oui oui oui oui oui
AAP oui non1 non2 oui oui
AAPD non3 non1 oui non4 non
Contre-exemples (rappel):
1. an b n c p ∩ ap b n c n
2. Σ∗ \ { ww | w ∈ Σ∗ }
3. an b n ∪ an b 2n
4. { am b n | m ≥ n } · { wc w̃ | w ∈ {a, b}∗ }
1/4
Résumé: Décidabilité
2/4
AAP à pile visible
Alphabet visible
Un alphabet visible est un alphabet Σ avec λ : Σ → {c, i, r }.
On écrit Σx := { a | a ∈ Σ ∧ λ(a) = x } pour x = c, i, r .
Exemples
{ an cb n | n ≥ 0 } est accepté par un AAPV avec Σ2 = {a}, Σ1 = {c},
Σ2 = {b}.
Par contre { an ban | n ≥ 0 } est algébrique mais pas AAPV.
Propriétés
Les AAPV sont clôturés par les op. booléennes, concaténation, itération.
Tout langage accepté par un AAPV est aussi accepté par un AAPV
déterministe.
Les problèmes de vide, universalité, inclusion sont décidables pour les AAPV.
4/4