• Aucun résultat trouvé

3 Limitations du lemme de pompage et lemme d’Ogden

N/A
N/A
Protected

Academic year: 2022

Partager "3 Limitations du lemme de pompage et lemme d’Ogden"

Copied!
5
0
0

Texte intégral

(1)

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

24 octobre 2019 NathanGrosshans

TD 5 – Automates à pile et algébricité

1 Automates à pile (« pushdown automata »)

Exercice 1.Pour chacun des langages suivants, donner un automate à pile (AP) le reconnaissant.

1. {w∈ {a, b}| |w|a=|w|b}. 2. {van|v∈ {a, b}∧ |v|a=n}.

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

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

5. Pour k ∈ N>0 fixé, le langage des mots sur Ak = {a1, . . . , ak,a¯1, . . . ,a¯k} engendré par la grammaire algébrique G= ({S, T}, Ak, R, S) où R contient les règles :

S →T S|ε

T →a1S¯a1 | · · · |akS¯ak .

(C’est le langage de Dyck des mots bien parenthésés aveck types de parenthèses.) Solution 1.

1. On construit l’AP suivant :

start 1 2

a b

3 ε, ε→$

a, b→ε b, a→ε

a, a→a a,$→$

b, b→b b,$→$ ε, ε→a

ε, ε→b ε,$→ε

. 2. On construit l’AP suivant :

start 1 ε, ε→$ 2 3 4

a, ε→a b, ε→ε

ε, ε→ε

a, a→ε

ε,$→ε

. 3. On construit l’AP suivant :

(2)

start 1 ε, ε→$ 2 3 4 a, ε→a

b, ε→b

ε, ε→ε a, ε→ε b, ε→ε

a, a→ε b, b→ε

ε,$→ε

. 4. On construit l’AP suivant :

start 1 ε, ε→$ 2 3 4 5

a, ε→a b, ε→b

a, ε→a b, ε→b

a, ε→ε b, ε→ε

a, b→ε b, a→ε

a, a→ε b, b→ε

ε,$→ε

. 5. On construit l’AP suivant :

start 1 ε, ε→$ 2 3

a1, ε→a1

...

ak, ε→ak

¯

a1, a1 →ε ...

¯

ak, ak→ε

ε,$→ε

.

Exercice 2.Soit Σun alphabet. Montrer que pour tousL, K langages sur Σtels queLest rationnel etK est algébrique,L∩K est aussi un langage algébrique sur Σ.

Solution 2.Soit A= (QL,Σ, δL, qL,0, FL) un AFD reconnaissant L et P = (QK,Σ,Γ, δK, qK,0, FK) un AP reconnaissantK.

On construit l’AP P0= (QL×QK,Σ,Γ, δ0,(qL,0, qK,0), FL×FK) où δ0: (QL×QK)×(Σ∪ {ε})× (Γ∪ {ε})→P((QL×QK)×(Γ∪ {ε}))est telle que pour tousqL∈QL,qK ∈QK,a∈Σetb∈Γ∪ {ε},

δ0((qL, qK), a, b) =

(p, δL(qK, a)), c (p, c)∈δK(qK, a, b) et

δ0((qL, qK), ε, b) ={((p, qK), c)|(p, c)∈δK(qK, ε, b)} . On peut montrer que P0 reconnaît L∩K.

2 Algébricité

Exercice 3.Montrer que le langage {anbncn|n∈N}n’est pas algébrique.

(3)

Solution 3.Si ce langage était algébrique, d’après le lemme de pompage, pourpsuffisamment grand, on aurait que apbpcp dans le langage se décomposerait comme apbpcp=uvxyz avec vy6=ε,|vxy| ≤p etuvixyizdans le langage pour touti. On aurait donc quevycontient au plus deux lettres différentes, ce qui impliquerait que le mot uxz ne contenant pas le même nombre de a, de b et de c est dans le langage.

Exercice 4.En déduire que la classe des langages algébriques n’est close ni par intersection, ni par complémentation.

Solution 4.On peut montrer que les langages {anbncm | n, m ∈ N} et {ambncn | n, m ∈ N} sont tous les deux algébriques. Or, leur intersection est égale à {anbncn|n∈N}, qui n’est pas un langage algébrique par ce qui a été montré dans l’exercice précédent.

Comme vu dans la feuille de TD précédente, le langage {aibjck | i, j, k ∈ N, i 6= j∨j 6= k} est algébrique. On montre que son complémentaire n’est pas algébrique, parce que s’il l’était, alors son intersection avec le langage rationnel L(abc), qui est égale à {anbncn | n ∈ N}, serait elle aussi algébrique.

Exercice 5.Montrer que les langages suivants ne sont pas algébriques.

1. {anbncm|n, m∈N, n≤m≤2n}. 2. {aibjck|i, j, k∈N, i < j < k}. 3. {a2n |n∈N}.

4. {aP(n) |n∈N} pour P un polynôme à coefficients dans Nde degré au moins 2.

5. {ww|w∈ {a, b}}. 6. {w#w|w∈ {a, b}}.

7. {w#w0 |w, w0∈ {a, b},|w|=|w0| ∧w6=w0}. Solution 5.

1. Si ce langage était algébrique, d’après le lemme de pompage, pour p suffisamment grand, on aurait que apbpc2p dans le langage se décomposerait comme apbpc2p = uvxyz avec vy 6= ε,

|vxy| ≤p etuvixyiz dans le langage pour tout i. On aurait donc que

— soit vy contient uniquement des a ou des b, ce qui impliquerait que le mot uxz contenant soit un nombre dea et deb différent, soit un nombre p0 < p de a etb tel que 2p0 <2p est dans le langage ;

— soitvycontient uniquement desbou desc, ce qui impliquerait que le motuv2xy2zcontenant un nombre de b strictement supérieur au nombre n de a ou un nombre de c strictement supérieur à2nest dans le langage.

2. Si ce langage était algébrique, d’après le lemme de pompage, pour p suffisamment grand, on aurait que apbp+1cp+2 dans le langage se décomposerait comme apbp+1cp+2 = uvxyz avec vy6=ε,|vxy| ≤p etuvixyizdans le langage pour tout i. On aurait donc que

— soit vy contient au moins un a mais pas de c, ce qui impliquerait que le mot uv3xy3z contenant strictement au moins autant deaque de cest dans le langage ;

— soitvycontient au moins un bmais pas dea, ce qui impliquerait que le motuxz contenant au plus autant debque de aest dans le langage ;

— soit vy contient uniquement des c, ce qui impliquerait que le mot uxz contenant au plus aurant decque deb est dans le langage.

3. Si ce langage était algébrique, d’après le lemme de pompage, pour p suffisamment grand, on aurait quea2p dans le langage se décomposerait commea2p =uvxyz avec vy6=ε,|vxy| ≤pet uvixyizdans le langage pour touti. On aurait doncvy=adavec0< d≤p, ce qui impliquerait queuv2xy2z=a2p+d est dans le langage, sachant que2p+1−2p = 2p > p≥d.

4. Soit k∈Nle degré de P. Si ce langage était algébrique, d’après le lemme de pompage, pour p suffisamment grand, on aurait queaP(p)dans le langage se décomposerait commeaP(p)=uvxyz avec ε, et dans le langage pour tout i. On aurait donc

(4)

avec 0 < d ≤ p, ce qui impliquerait que uv2xy2z = aP(p)+d est dans le langage, sachant que P(p+ 1)−P(p)> p≥d.

5. Si ce langage était algébrique, d’après le lemme de pompage, pour p suffisamment grand, on aurait que apbpapbp dans le langage se décomposerait comme apbpapbp =uvxyz avec vy 6= ε,

|vxy| ≤p etuvixyiz dans le langage pour tout i. On aurait donc que

— soit vxy est un facteur du premier bloc apbp, ce qui impliquerait que le mot uxz dans le langage est soit de longueur impaire, soit vérifie que la première moitié du mot se termine par unaalors que la seconde moitié du mot se termine par un b;

— soit vxy est un facteur du bloc central bpap, ce qui impliquerait que le mot uxz dans le langage est soit de longueur impaire, soit vérifie que la première moitié du mot se termine par unaalors que la seconde moitié du mot se termine par unb, soit vérifie que la seconde moitié du mot commence par un b alors que la première moitié du mot commence par un a, soit est égal à apbdadbp oùd < p;

— soit vxy est un facteur du second bloc apbp, ce qui impliquerait que le mot uxz dans le langage est soit de longueur impaire, soit vérifie que la seconde moitié du mot commence par unb alors que la première moitié du mot commence par una.

6. Similaire au précédent.

7. Si ce langage était algébrique, d’après le lemme de pompage, pour p suffisamment grand, on aurait que ap!+pbp#apbp!+p dans le langage se décomposerait comme ap!+pbp#apbp!+p=uvxyz avec vy6=ε,|vxy| ≤p etuvixyizdans le langage pour tout i. On aurait donc que

— soitvxy est un facteur du premier bloc ap!+pbp, ce qui impliquerait que le motuxz dans le langage contient un bloc à gauche de # moins long que le bloc à droite de # ;

— soit vxy est un facteur du bloc central bp#ap contenant #, ce qui impliquerait soit que le motuxzdans le langage ne contient pas #, soit quev=bi,x=bj#akety =alet que donc, ou i 6=l et donc le mot uxz dans le langage contient un bloc à gauche de # de longueur différente de celle du bloc à droite de #, ou i= l et donc le mot ap!+pbp!+p#ap!+pbp!+p = uvp!/i+1xyp!/i+1zest dans le langage ;

— soit vxy est un facteur du second bloc apbp!+p, ce qui impliquerait que le mot uxz dans le langage contient un bloc à droite de # moins long que le bloc à gauche de #.

3 Limitations du lemme de pompage et lemme d’Ogden

Soit K ={aibjckdl|i, j, k, l∈N, i= 0∨j =k=l} un langage sur{a, b, c, d}. Exercice 6.Montrer que K vérifie le lemme de pompage.

Solution 6.Soit p= 1. Soit s∈K tel que|s| ≥1.

Sis=bjckdlpourj, k, l∈N, alors en décomposantscommes=uvxyzavecu=x=y=ε,vétant égal à la première lettre de setz étant égal au reste, on a nécessairement quevy6=ε,|vxy| ≤1 =p et pour tout m ∈N, uvmxymz ∈ K, puisqu’il est toujours nécessairement de la forme bj0ck0dl0 pour j0, k0, l0 ∈N.

Sinon, si s = aibjcjdj pour i ∈ N>0, j ∈ N, alors en décomposant s comme s = uvxyz avec u=x =y=ε,v =a etz =ai−1bjcjdj, on a nécessairement que vy6=ε,|vxy| ≤1 =p et pour tout m∈N,uvmxymz=amai−1bjcjdj ∈K.

On a donc que K vérifie le lemme de pompage pour p= 1.

Soit le lemme suivant, que l’on admettra dans un premier temps.

Lemme 3.1 (Ogden). Soit L un langage algébrique sur un alphabet Σ. Il existe n ∈ N>0 tel que pour tout s∈L avec |s| ≥n et tout sous-ensemble D⊆[[1,|s|]] d’au moins n positions dans s dites distinguées, il est possible de décomposerscomme s=uvxyz avec u, v, x, y, z∈Σ de telle façon que :

1. au moins l’une des lettres dans le facteur v ou y corresponde à une position distinguée ; 2. le facteur vxy contienne au plus n lettres correspondant à des positions distinguées ; 3. pour tout i∈N, uvixyiz∈L.

(5)

Exercice 7.L’utiliser pour montrer queK n’est pas algébrique.

Solution 7.SiK était algébrique, d’après le lemme d’Ogden, pour p suffisamment grand, on aurait queabpcpdp ∈K, où toutes les positions en-dehors de la première seraient distinguées, se décomposerait comme abpcpdp = uvxyz avec vy contenant au moins une lettre de {b, c, d}, vxy contenant au plus p lettres de {b, c, d} et uvixyiz ∈ K pour tout i∈ N. On aurait donc que vy contient au plus deux lettres différentes de {b, c, d}, ce qui impliquerait que le mot uv2xy2z, commençant par un amais ne contenant pas le même nombre de b, de cet de dest dans K.

Exercice 8.Prouver le lemme d’Ogden.

Solution 8.Soit G = (V,Σ, R, S) une grammaire algébrique engendrant L. On note b = max{|v| | (X →v)∈R}.

Si b≤1, le résultat s’obtient trivialement.

Autrement, b≥2. On peut montrer que pour tout arbre de dérivationT de G, dont la racine est étiquetée par un symbole quelconque de V et dont on a distingué un sous-ensembleDde ses feuilles, on a que pour tout h ∈ N, si bh < |D|, alors il existe un sous-arbre de dérivation T0 de T avec D0 l’ensemble des feuilles distinguées obtenu en restreignant D à T0 vérifiant bh < |D0| ≤ bh+1. (On montre ceci par récurrence sur la profondeur de T, en observant qu’il existe nécessairement un des sous-arbres fils deT ayant au moins |D|b feuilles distinguées.)

Étant donné un mot s ∈ L avec |s| ≥ b|V|+1 et un sous-ensemble d’au moins b|V|+1 positions disinguées dans s, on a un arbre de dérivation T pour s dans G dont la racine est étiquetée par S et ayant un sous-ensemble D de feuilles distinguées de cardinal au moins b|V|+1. D’après le résultat précédent, on peut donc construire une suite de sous-arbres de dérivation T0, . . . , T|V| de T ayant pour ensemble de feuilles distinguées D0, . . . , D|V| respectivement tels que Ti soit sous-arbre strict de Ti+1 pour tout i ∈ [[0,|V| −1]] et bi < |Di| ≤ bi+1 pour tout i ∈ [[0,|V|]]. Il doit donc exister i, j ∈[[0,|V|]], i < j tels que Ti etTj aient la même racine. Si on note x∈Σ le mot dérivé parTi et vxy avec v, y ∈Σ le mot dérivé parTj (qui est tel, puisque x est nécessairement un facteur du mot dérivé parTj), on a quesse décompose commes=uvxyz avecu, z ∈Σ. Il est direct de vérifier que, par construction, cette décomposition vérifie les conditions du lemme d’Ogden.

Références

Documents relatifs

[r]

[r]

tout ´ etat autre que l’´ etat final est l’origine soit d’exactement une fl` eche ´ etiquet´ ee par une lettre, soit d’au plus deux fl` eches ´ etiquet´ ees par le mot

Dans un anneau principal, un élément p est irréductible si, et seulement si, p est

[r]

Démonstration du lemme

Elle présente des arguments établissant que l'explication de la valeur universelle de any ne peut pas être due à un opérateur générique (nous donnons des arguments du même

Pour chacun des langages suivants, donner un automate à pile (AP) le reconnaissant.. En déduire que la classe des langages algébriques n’est close ni par intersection, ni