• Aucun résultat trouvé

1 Grammaires algébriques (non contextuelles)

N/A
N/A
Protected

Academic year: 2022

Partager "1 Grammaires algébriques (non contextuelles)"

Copied!
5
0
0

Texte intégral

(1)

Langages formels, calculabilité et complexité ENS Paris – A1S1 2019-2020

17 octobre 2019 NathanGrosshans

TD 4 – Grammaires algébriques

1 Grammaires algébriques (non contextuelles)

On rappelle qu’étant donné un mot w ∈ Σ, on définit le mot renversé de w, noté wR, comme étantwR =εsiw=εet wR=an· · ·a1 siw=a1· · ·an pour n∈N>0.

Exercice 1.Donner une grammaire algébrique pour chacun des langages suivants (sans trop justifier).

1. {w∈ {a, b}|w=wR} (langage des palindromes sur{a, b}).

2. {w∈ {a, b}|w6=wR} (langage des non palindromes sur {a, b}).

3. {w∈ {(,),0,1, . . . ,9,∗,+}|w correspond à une expression arithmétique surNvalide}. 4. {aibjck|i6=j∨j6=k}.

5. {w∈ {a, b}| |w|a≥ |w|b}.

6. {an0ban1b· · ·ankb|k∈N∧∃j∈N, nj 6=j}. 7. {ww0 ∈ {a, b} | |w|=|w0| ∧w6=w0}. Solution 1.

1. G= ({S},{a, b}, R, S) oùR contient les règles :

S→aSa|bSb|a|b|ε. 2. G= ({S, T},{a, b}, R, S) où R contient les règles :

S →aSa|bSb|aT b|bT a

T →aT a|aT b|bT a|bT b|a|b|ε. 3. G= ({E, N, N0},{(,),0,1, . . . ,9,∗,+}, R, E)où R contient les règles :

E→(E)|E∗E |E+E|N N →0|1N0 |2N0 | · · · |9N0 N0 →0N0 |1N0 | · · · |9N0 |ε. 4. G= ({A, B, C, D, G, S},{a, b, c}, R, S) oùR contient les règles :

S →GC|AD G→aGb|aA|bB D→bDc|bB |cC

A→aA|ε B →bB|ε C →cC|ε. 5. G= ({S},{a, b}, R, S) oùR contient les règles :

S→aSbS|bSaS|aS |ε.

Il est évident que tout motw∈ {a, b} tel queS ⇒ wvérifie |w|a≥ |w|b.

Inversement, on montre par récurrence sur la longueur dew que tout mot w∈ {a, b} tel que

|w|a≥ |w|b vérifie S⇒ w. Pour cela, on utilise le fait que pour tout mot w∈ {a, b} vérifiant

(2)

— Soitw commence par b et il existe donc un préfixeu de w tel que |u|a =|u|b etu termine para, d’où w=uv=bu0av avec u=bu0a,|u0|a=|u0|b et|v|a=|w|a− |u|a≥ |w|b− |u|a=

|w|b− |u|b =|v|b. On conclut par hypothèse de récurrence suru0 etv.

— Soitw commence paraet il y a alors deux sous-cas. Soit|w|a=|w|b, ce qui implique qu’il existe un préfixe u de w tel que |u|a =|u|b et u termine par b, et on procède de manière analogue au cas précédent. Soit|w|a>|w|b, ce qui implique que w=aw0 avec|w0|a≥ |w0|b, et on peut conclure par hypothèse de récurrence surw0.

6. G= ({A, D, G, S},{a, b}, R, S) oùR contient les règles : S→GbD

G→AbGa|AbD|Aa D→AbD|ε

A→aA|ε. On observera ici qu’un mot w∈ {a, b} vérifie :

— A⇒w si et seulement si w∈ L(a);

— D⇒ w si et seulement si w∈ L((ab));

— G⇒ w si et seulement s’il existek, n∈N, k6=ntels quew∈ L (ab)kan . 7. G= ({A, B, S},{a, b}, R, S) oùR contient les règles :

S→AB|BA

A→aAa|aAb|bAa|bAb|a B →aBa|aBb|bBa|bBb|b . Ceci vient du fait que pour tout alphabet Σ, on a

{ww0 |w, w0∈Σn,|w|= w0

∧w6=w0}= [

k1,k2N a1,a2∈Σ,a16=a2

Σk1a1Σk1Σk2a2Σk2 .

Exercice 2.Trouver une grammaire algébrique non ambiguë pour le langage

{w∈ {(,),0,1, . . . ,9,∗,+} |wcorrespond à une expression arithmétique sur Nvalide} telle que dans chaque arbre de dérivation (« parse tree »),∗ a priorité sur+.

Solution 2.G= ({S, P, T, N, N0},{(,),0,1, . . . ,9,∗,+}, R, S) où R contient les règles : S→P +S|P

P →T ∗P |T T →(S)|N

N →0|1N0 |2N0 | · · · |9N0 N0→0N0 |1N0 | · · · |9N0 |ε.

Exercice 3.Soit G = ({S},{(,)}, R, S) etG0 = ({B, R},{(,)}, R0, B) des grammaires algébriques où R contient les règles

S→SS |(S)|ε etR0 contient les règles

B →(RB |ε R→)|(RR .

Montrer que G etG0 engendrent le même langage, mais que l’une est ambiguë et pas l’autre.

(3)

Solution 3.Les deux engendrent le langage L des mots sur {(,)} bien parenthésés. Pour montrer cela, on démontre, d’une part, par récurrence sur |w|, que pour tout w ∈ L,S ⇒ w et B ⇒ w et que pour tout w =w0) tel quew0 ∈ L, R ⇒ w). D’autre part, on démontre, par récurrence sur la longueur des dérivations, que pour tout w∈ {(,)}, siS ⇒ w, alors w∈L, si B ⇒ w, alors w∈L, et si R⇒ w, alorsw=w0) avec w0 ∈L.

On a queG est ambiguë, puisqu’il existe deux arbres de dérivation différents pour le mot()()(). Au contraire, on peut montrer, par récurrence sur la longueur des dérivations, que pour tout w∈ {(,)}, si B ⇒ w ou R ⇒ w, alors il existe un unique arbre de dérivation pour w, en observant que tout mot w∈Lest soit vide, soit se décompose de manière unique comme w= (w1)w2 où w1, w2∈L.

2 Langages algébriques (non contextuels) et langages rationnels

Étant donné une grammaire algébrique G = (V,Σ, R, S), on dit qu’elle est linéaire droite lorsque dans toute règleX→udeR, soitu∈Σ, soitu=u0Y avecu0 ∈Σ (le corps de chaque règle contient au plus une variable tout à droite).

Exercice 4.Montrer qu’un langage est rationnel si et seulement s’il est engendré par une grammaire linéaire droite.

Solution 4.Soit un AFDA= (Q,Σ, δ, q0, F). En supposant queQ∩Σ =∅, on construit la grammaire algébrique linéaire droiteG = (Q,Σ, R, q0) oùR contient :

— pour tous q ∈Q eta∈Σ, la règleq →aδ(q, a);

— pour tout q ∈F, la règleq →ε. On a L(A) =L(G).

SoitG= (V,Σ, R, S)une grammaire algébrique linéaire droite. On construit l’AFNA= (Q,Σ, δ, q0, F) avec, en supposant queA∈/ V,Q= (V ∪ {A})×Σ≤l où l∈Nest la longueur maximale du corps d’une règle de R (et Σ≤l correspond à l’ensemble de tous les mots sur Σ de longueur au plus l), q0 = (S, ε),F ={(A, ε)}etδ:Q×(Σ∪ {ε})→P(Q) est telle que :

— pour tous X ∈V ∪ {A},w∈Σ≤l,|w| ≥1 eta∈Σ,

δ((X, w), a) =

({(X, u)} si w=auavec u∈Σ

∅ sinon

etδ((X, w), ε) =∅;

— pour tout a∈Σ,δ((A, ε), a) =∅ etδ((A, ε), ε) =∅;

— pour tous X ∈V eta∈Σ,

δ((X, ε), a) ={(Y, u)|Y ∈V, u∈Σ,(X→auY)∈R} ∪ {(A, u)|u∈Σ,(X→au)∈R}

etδ((X, ε), ε) =

({(A, ε)} si(X→ε)∈R

∅ sinon .

Exercice 5.Soit la grammaire algébrique G = ({S},{a, b, c}, R, S) où R contient les règles S → aSSb|c. Montrer que tout langage rationnel inclus dans L(G) est fini.

Solution 5.Nous allons montrer que pour tout motw∈ {a, b} tel queS ⇒ w, on a|w|a=|w|b et que pour tout n∈N>0 vérifiant|w| ≥ 2n−1, il existe un préfixeu de w tel que |u|a− |u|b =n−1. Montrons-le par récurrence sur |w|.

Cas de base |w|= 1. Alors nécessairement w=cet on conclut trivialement.

Récurrence. Soit l ∈ N, l ≥ 2 et supposons que pour tout mot w ∈ {a, b} tel que |w| < l et S ⇒ w, on a |w|a=|w|b et que pour toutn∈N>0 vérifiant|w| ≥2n−1, il existe un préfixe u de wtel que|u|a− |u|b=n−1.

Soitw∈ {a, b} tel que|w|=letS⇒w. Alorswest nécessairement de la formew=aw1w2b où S ⇒ w1 etS ⇒ w2. Par hypothèse de récurrence, puisque |w1|a=|w1|b et|w2|a =|w2|b,

(4)

Soit maintenant n ∈ N>0 tel que |w| ≥ 2n−1. Si n = 1, on a que le préfixe u = ε de w vérifie|u|a− |u|b = 0. Autrement, on a nécessairement que|w1| ≥2n−1−1ou |w2| ≥2n−1−1. Si |w1| ≥ 2n−1−1, alors, par hypothèse de récurrence, il existe un préfixe u1 de w1 tel que

|u1|a−|u1|b=n−2;u=au1est donc un préfixe dewtel que|u|a−|u|b =n−1. Si|w2| ≥2n−1−1, alors, par hypothèse de récurrence, il existe un préfixe u2 de w2 tel que |u2|a− |u2|b =n−2; u=aw1u2 est donc un préfixe dewtel que |u|a− |u|b =n−1(puisque|w1|a=|w1|b).

Soit maintenant un langage L ⊆ L(G) infini. Il existe donc une suite (wn)n≥1 de mots de L de longueur strictement croissante tels que|wn| ≥2n−1 pour toutn∈N>0. Par ce que nous venons de montrer, pour chaque n∈N>0, on a donc qu’il existe une décomposition wn=unvn de wn telle que

|un|a−|un|b =|vn|b−|vn|a=n−1. Pour tousn, m∈N>0, n6=m, on a donc queu−1n L6=u−1m L, puisque unvn=wn∈Lalors queumvn∈/ L, en observant que|um|a+|vn|a− |um|b− |vn|b=m−1−(n−1) = m−n6= 0, ce qui prouve, par ce que nous venons de montrer, queumvn ne peut appartenir àL(G)et donc àL. Par conséquent,La un nombre infini de quotients à gauche, et ne peut donc être rationnel.

En conclusion, tout langage rationnel inclus dans L(G)doit être fini.

3 Forme normale de Chomsky

On rappelle qu’une grammaire algébrique G = (V,Σ, R, S) est en forme normale de Chomsky (FNC) quand toutes les règles de R sont de la forme :

A→BC ou A→a ou S→ε avec A∈V,B, C ∈V \ {S}eta∈Σ.

Exercice 6.Proposer une grammaire algébrique en FNC équivalente à la grammaire algébrique G= ({B, C, S},{a, b}, R, S) où R contient les règles :

S →CSC|aB C →B|S B →b|ε.

Solution 6.En appliquant l’algorithme du cours (et en regroupant les symboles redondants), on trouve la grammaire algébrique G0 = ({A, B, C, D, S, S0},{a, b}, R0, S0) où R0 contient les règles :

S0 →CD|AB|a|SC|CS S →CD|AB|a|SC|CS C →b|CD |AB|a|SC |CS D→SC

A→a B →b.

Exercice 7.Proposer un algorithme en temps polynomial (en la taille cumulée du mot et de la grammaire) qui reconnaît si un mot appartient au langage engendré par une grammaire algébrique en FNC.

Solution 7.Étant donné un alphabet Σ, soit w∈ Σ etG = (V,Σ, R, S) une grammaire algébrique en FNC.

Si w=ε, alors il suffit de vérifier si la règleS →εappartient àR ou non.

Autrement, w=a1· · ·an pour n∈N>0 eta1, . . . , an∈Σ, et donc pour tous i, j∈[[1, n]], i≤j, on va calculer l’ensembleTi,j des variablesX ∈V telles queX⇒ai· · ·aj. Une fois ceci fait, il suffit de vérifier siS appartient àT1,n ou non.

(5)

Pour tous i, j∈[[1, n]], i≤j, on a

Ti,j =

({X ∈V |(X →ai)∈R} sii=j S

l∈[[i,j−1]]{X∈V |(X→X1X2)∈R, X1 ∈Ti,l, X2 ∈Tl+1,j} sinon .

On voit donc assez facilement qu’on peut calculer lesTi,j en temps polynomial en la taille cumulée de w etG.

Références

Documents relatifs

Proposer un algorithme en temps polynomial (en la taille cumulée du mot et de la grammaire) qui reconnaît si un mot appartient au langage engendré par une grammaire algébrique en

De toute manière il semble que l'algèbre de Mohammed-ben-Mousa soit restée inconnue en Occident pendant les xn e et xm e siècles, et que cet au- teur ne fut alors célèbre en

Ci-dessous nous étudions les ©-langages algébriques, c'est-à-dire les langages de la forme L™{G,f) = L &lt;ù (GJ)vL(G,f) formés des mots finis et infinis engendrés par une

Notre travail s'organise ainsi : après avoir rappelé quelques définitions et propriétés élémentaires sur les mots infinis (section I) et sur les grammaires algébriques

Une grammaire algébrique (resp. simple) avec axiome est la donnée y, S, a) d'une grammaire algébrique (resp. Deux grammaires sont équivalentes si elles engendrent le même langage.

Admettons que l'écriture basée sur des signes conventionnels soit moins simple à acquérir - ce qui n'est pas sûr - , admettons que la grammaire com- plique

avait une profondo exp(lrionce en la mat.èro. Il faut blan connallro los règles pour dcrire. Voilà donc qui nous met en digne compagnie. avec Pascel ot Racine qui

Que beaucoup croient que la science est la mère des techniques ou que les techniques dépassent la science , que la grammaire guide la rhétorique ou que la