1
Les langages.
Dans tous les exercices,Ad´esigne un alphabet quelconque.
La concat´enation.
Exercice 1.
a) Lalongueur|u|deu∈ A∗peut se d´efinir par r´ecurrence de la fac¸on suivante :
|ε|= 0 |ux|=|u|+ 1pour toutu∈ A∗et toutx∈ A. V´erifier que|u . v|=|u|+|v|.
b) Lenombre d’occurrences dea∈ Adansu∈ A∗, not´e|u|a, peut se d´efinir par r´ecurrence de la fac¸on suivante :
|ε|a= 0 |ux|a=
|u|a+ 1 six=a
|u|a sinon pour toutu∈ A∗et toutx∈ A. V´erifier que|u . v|a=|u|a+|v|a.
Exercice 2. Lemme de L´evy.
Montrer que si les motsu,v,αetβ ∈ A∗v´erifient :uv =αβet|u| ≥ |α|, alors il existeδ ∈ A∗tel que u=αδetβ=δv.
Exercice 3. Langages commutatifs.
On dit queL⊆ A∗estcommutatif ssi pour toutu∈Let toutv∈Lon auv=vu. a) V´erifier que, pour toutw∈ A∗, toutL⊆w∗est commutatif.
b) R´eciproquement, montrer que pour toutL⊆ A∗commutatif, il existew∈ A∗tel queL⊆w∗. Indications.Consid´erer le langageL⊆ A∗d´efini par :v∈Lssiuv=vupour toutu∈L.
Montrer alors que toutw∈L−εde la plus petite longueur possible r´epond `a la question.
Exercice 4. Relation de conjugaison.
On consid`ere la relation binaireCsurA∗d´efinie par : C(u, v)ssi il existeγ∈ A∗tel queuγ=γv. On dira queuetvsontconjugu´es lorsqu’ils v´erifientC(u, v).
a) Montrer que :C(u, v)ssi il existeγ∈ A∗tel queuγ=γvet|u| ≥ |γ|. b) Montrer que :C(u, v)ssi il existeγ∈ A∗etδ∈ A∗tels queu=γδetv=δγ.
c) On consid`ere l’applicationConj : A∗ → P(A∗)d´efinie par :v ∈ Conj(u)ssiC(u, v), qui `a tout u ∈ A∗associe l’ensemble de ses conjugu´es et son extension aux langagesConj : P(A∗) → P(A∗), d´efinie pour chaqueL⊆ A∗, par :v∈Conj(L)ssi il existeu∈Ltel quev∈Conj(u).
Calculer
1) Conj(abab),
2) Conj(xA∗y)etConj(xA∗yA∗z)pour des ´el´ementsx,yetzquelconques deA.
Op´erations simples sur les mots et les langages.
Exercice 5. Facteurs gauches.
L’ensemblef g(u)desfacteurs gauches d’un motu∈ A∗, se d´efinit par la r´ecurrence suivante : f g(ε) =ε f g(ux) =f g(u) +uxpour toutu∈ A∗et toutx∈ A. a) V´erifier que cette d´efinition est bien la bonne, c’est–`a–dire que
v∈f g(u)ssi il existew∈ A∗tel queu=vw. b) V´erifier quef g(uv) =f g(u) +uf g(v)pour toutu∈ A∗et toutv∈ A∗.
c) L’applicationf g:A∗→ P(A∗), qui `a tout mot associe l’ensemble de ses facteurs gauches, s’´etend aux langages en une application pr´eservant les sommesf g:P(A∗)→ P(A∗), d´efinie pour chaqueL⊆ A∗, par
v∈f g(L)ssi il existeu∈Ltel quev∈f g(u). V´erifier que pour toutL⊆ A∗et toutM ⊆ A∗on a
siM =∅:f g(LM) =f g(L) +Lf g(M) et f g(L∗) =ε+L∗f g(L). Exercice 6. Facteurs droits.
En mettant la d´efinition de l’ensemblef g(u)des facteurs gauches du motu∈ A∗devant un miroir on peut obtenir facilement une d´efinition de l’ensemblef d(u)de sesfacteurs droits, par une r´ecurrence bas´ee sur l’ajout des lettres `a gauche :
f d(ε) =ε f d(xu) =xu+f d(u)pour toutx∈ Aet toutu∈ A∗.
Si l’on s’obstine `a vouloir ajouter les lettres `a droite, on est conduit `a poser la d´efinition par r´ecurrence suivante :
f d(ε) =ε f d(ux) =ε+f d(u)xpour toutx∈ Aet toutu∈ A∗. a) V´erifier que cette d´efinition est bien la bonne, c’est–`a–dire que
v∈f d(u)ssi il existew∈ A∗tel queu=wv. b) V´erifier quef d(uv) =f d(v) +f d(u)vpour toutu∈ A∗et toutv∈ A∗. c) Exprimerf d(LM)etf d(L∗)pourL,M ⊆ A∗quelconques.
Exercice 7. Facteurs.
L’ensemblef act(u)desfacteurs du motu∈ A∗peut se d´efinir par r´ecurrence de la fac¸on suivante, si l’on ajoute des lettres “`a droite et `a gauche” :
f act(ε) =ε f act(x) =ε+xpout toutx∈ A,
f act(xuy) =xuy+f act(xu) +f act(uy)pour toutxety∈ Aet toutu∈ A∗.
Si l’on s’obstine `a vouloir ajouter les lettres `a droite, on est conduit `a poser la d´efinition par r´ecurrence suivante :
f act(ε) =ε f act(ux) =f act(u) +f d(u)xpout toutx∈ Aet toutu∈ A∗. a) V´erifier que cette d´efinition est bien la bonne, c’est–`a–dire que
v∈f act(u)ssi il existew∈ A∗etw∈ A∗tels queu=wvw.
b) V´erifier quef act(uv) =f act(u) +f d(u)f g(v) +f act(v)pour toutu∈ A∗et toutv∈ A∗. c) Exprimerf act(LM)etf act(L∗)pourL,M ⊆ A∗quelconques.
Exercice 8. Facteurs stricts.
D´esignons parfl’une des applicationsf g,f detf actpr´ec´edentes.
a) Montrer que dans chaque cas on au∈f(u)pour toutu∈ A∗.
b) On d´efinit la version strictef sde chaquefpar :v∈f s(u)ssiv∈f(u)etv=u. Donner une d´efinition par r´ecurrence de chacune des applicationsf s.
c) Pour chaquef, exprimerf s(LM)etf s(L∗)pourL,M ⊆ A∗quelconques.
M.M Institut Galil´ee 2000 Les langages.
Exercice 9.
Calculerf g(Li),. . .,f acts(Li)dans chacun des cas suivants : L1=a∗b∗={ambn|0≤met0≤n}
L2={ambm|0≤m}
L3={ambn |0≤m≤n}
L4={ambn |0≤m < n} L5={ambn |0≤n≤m} L6={ambn |0≤n < m}
o `uaetbsont des symboles distincts l’un de l’autre.
Exercice 10. Propri´et´es de l’it´eration.
a) Terminer la d´emonstration des propri´et´es 8) de l’it´eration, c’est–`a–dire, montrer que, quels que soient L⊆ A∗etM ⊆ A∗:
1) (L+M)∗⊆(L∗+M∗)∗ 2) (L∗+M∗)∗⊆(L∗M∗)∗ 3) (L∗M∗)∗⊆L∗(M L∗)∗ 4) L∗(M L∗)∗⊆(L+M)∗
b) Montrer que, quels que soientL⊆ A∗etM ⊆ A∗: 1) (L∗M)∗=ε+ (L+M)∗M
2) (LM∗)∗=ε+L(L+M)∗ Exercice 11. M´elange de mots.
Cette op´eration consiste `a ins´erer de nouvelles occurrences de caract`eres `a un mot
a) M´elange de deux mots. Soitmel(u, v)l’ensemble des m´elanges deu ∈ A∗etv ∈ A∗d´efini par la (double) r´ecurrence suivante :
mel(u, ε) =u mel(ε, v) =v
mel(ux, vy) =mel(u, vy)x+mel(ux, v)y
1) Intuitivement,w∈mel(u, v)est un mot de longueur|u|+|v|obtenu en faisant “glisser” les caract`eres devdansu, en respectant leur ordre relatif. Pour s’en persuader, calculermel(abc, def).
2) V´erifier quemel(u, v) =mel(v, u).
b) M´elange de deux langages. L’applicationmel:A∗× A∗ → P(A∗)se prolonge aux langages par : mel(L, M) =
(v,w)∈L×M
mel(v, w)
c’est–`a–dire :u∈mel(L, M)ssi il existev ∈Letw∈Mtels queu∈mel(v, w). Calculermel(a∗, b∗)etmel(ab, a∗b∗).
Exercice 12. Division `a gauche d’un langage par un autre.
Nous allons d´efinir une op´eration qui se pr´esente comme l’inverse de la concat´enation, mais qui ne tient ses promesses que dans des cas tr`es particuliers. La concat´enation n’´etant pas commutative, on doit envisager une division `a gauche et une division `a droite : nous n’envisagerons que la premi`ere (la seconde s’obtient en regardant la premi`ere dans un bon miroir).
Pour toutL⊆ A∗et toutM ⊆ A∗on d´efinitM−1L⊆ A∗par
w∈M−1Lssi il existev∈M tel quevw∈L.
Quelle conditionMdoit–il satisfaire pour que l’on aitM(M−1L) =Lquel que soitL?
Consid´erons l’op´eration:A∗× A∗ → P(A∗)d´efinie par la double r´ecurrence suivante : pour toutxet y∈ A, toutuetv∈ A∗
uε=u et u(vy) = (uv)y, εy=∅ et (xu)y=u six=y,
∅ sinon.
a) Montrer queuv=wssiu=vwpour toutu,vetw∈ A∗. En d´eduire queLM =M−1Lpour toutLetM ⊆ A∗. b) Montrer que pour toutL1,L2etL⊆ A∗et touty∈ A:
(L1L2)y=
(L1y)L2+L2y siε∈L1
(L1y)L2 sinon et L∗y= (Ly)L∗.
Ces ´egalit´es sont ´evidemment difficiles `a ´etendre au cas des mots et donc des langages!
Comme d’habitude, l’inversion d’une op´eration, mˆeme simple, est assez compliqu´ee (dans la section 6.2.2 du chapitre 2, on verra comment calculerM−1Ldans un cas particulier tr`es int´eressant).
Les substitutions.
Exercice 13.
Soienta,betctrois symboles distincts et soitL={ambmcm|0≤m}.
D´efinir pour chacun des langagesLici–dessous, une substitutionfv´erifiantf(L) =Li: L1={ambmam|0≤m}
L2={ambmc2m|0≤m}
L3={am|0≤m}
L4={b2ma3m|0≤m}
Exercice 14. Sous–mots.
L’effac¸age d’occurrences de caract`eres `a un mot est l’application de la substitutionsm : A → P(A∗) d´efinie parsm(x) =ε+xpour toutx∈ A. Pouru∈ A∗, toutv∈sm(u)est appel´e unsous–mot deu. 1) Calculersm(ababaa).
2) Montrer que :v∈sm(u)ssi il existew∈ A∗tel queu∈mel(v, w).
3) R´eciproquement, montrer queu∈sm(mel(u, v))pour toutu∈ A∗et toutv∈ A∗. Exercice 15.
Soitf :A → P(B∗)une substitution.
a) Montrer quef(f g(u))⊆f g(f(u))pour toutu∈ A∗(la premi`ere apparition de l’application “facteur gauche”f gest relative aux mots surAalors que la seconde s’applique aux mots surB).
En utilisant une substitution telle quef(a) = f(b) = abo `uaetbsont des symboles distincts l’un de l’autre, montrer que l’inclusion inverse de la pr´ec´edente n’est pas n´ecessairement vraie.
b) Montrer que sifest alphab´etique, alors on af(f g(u)) =f g(f(u))pour toutu∈ A∗. c) Reprendre les questions pr´ec´edentes avec les op´erationsf d,. . .
Exercice 16. Application inverse d’une applicationf :A∗→ P(B∗).
L’application inverse defestf−1:B∗→ P(A∗)d´efinie pour toutu∈ A∗etv∈ B∗par u∈f−1(v)ssiv∈f(u).
Remarque. Cette d´efinition est int´eressante maisf−1 n’a pas de propri´et´e simple! En particulier, elle s’applique `a une substitution (en consid´erant son extension aux mots) : mais, en g´en´eral, l’application inverse d’une substitution n’est pas une substitution, mˆeme dans des cas tr`es sp´eciaux (voir l’exercice suivant).
a) Montrer que, si l’on consid`ere l’extension def−1aux langages, on a : u∈f−1(M)ssif(u)∩M =∅ pour toutu∈ A∗et toutM ⊆ B∗.
M.M Institut Galil´ee 2000 Les langages.
b) Comment cette propri´et´e s’exprime–t–elle pour un homomorphismef :A → B∗?
c) Application au calcul du m´elange de deux langages (cf. exercice 11). SoitAl’alphabet obtenu en donnant le nouveau nomx`a chaquex∈ A(c’est–`a–dire :x∈Assix∈ A), et soitB=A+A.
On consid`ere les trois substitutionsf, g, h:B →ε+Ad´efinies par :
f(x) =f(x) =x g(x) =x,g(x) =ε h(x) =ε,h(x) =x quel que soitx∈ A.
Montrer que pour toutL⊆ A∗et toutM ⊆ A∗on a :
mel(L, M) =f(g−1(L)∩h−1(M)) Exercice 17. Application inverse d’une substitution alphab´etique.
Soitf :A →ε+Bune substitution alphab´etique (cf. section 6.2) : on se propose d’´etudier son application inversef−1:B∗→ P(A∗). Pour cela, on consid`ere :
– Z ⊆ Ad´efini par :x∈Zssif(x) =ε,
– Xy⊆ Ad´efini, pour chaquey∈ B, par :x∈Xyssif(x) =y.
a) Montrer quef−1(ε) =Z∗et que, pour toutv∈ B∗et touty∈ Bon af−1(vy) =f−1(v)XyZ∗. b) En d´eduire que, pour toutL⊆ B∗et toutM ⊆ B∗on a :
f−1(LM) =f−1(L)f−1(M) et f−1(L∗) =Z∗+f−1(L)∗. On pourra illustrer cet exercice par l’exemple desm(exercice 14).
Exercice 18.
On d´esigne parBl’alphabetA × Adont les caract`eres sont les couples de caract`eres de l’alphabetA: il sera commode de repr´esenter le couple(x, y)∈ Bpar[xy].
a) Soittc:A∗→ P(A∗)(“transposition des couples”) l’application d´efinie par : – tc(ε) =ε,
– pour toutu∈ A∗de longueur paire, toutxet touty∈ A
tc(ux) =∅ tc(uxy) =tc(u)yx. Calculertc(u)pouru=abababetu=ababa.
Trouver deux substitutionsf, g:B → A∗telles quetc(u) =g(f−1(u))pour toutu∈ A∗. b) Soitusd:A∗→ P(A∗)(“un sur deux”) l’application d´efinie par :
– usd(ε) =ε,
– pour toutu∈ A∗de longueur paire, toutxet touty∈ A
usd(ux) =∅ usd(uxy) =usd(u)x. Calculerusd(u)pouru=abababetu=ababa.
Trouver deux substitutionsf, g:B → A∗telles queusd(u) =g(f−1(u))pour toutu∈ A∗. Matrices et syst`emes d’´equations lin´eaires en langages.
Exercice 19. Matrices de langages.
La notation matricielle habituelle n’est vraiment “parlante” que pour les petites dimensions : on prendra des exemples de dimensions2ou3pour illustrer les d´efinitions qui suivent.
Une matrice de langages surAest la donn´ee d’un quadruplet(Q, R,A, A)o `u – QetRsont deux alphabets,
– Aest un alphabet,
– A:QR→ P(A∗)est une application.
L’applicationA:QR→ P(A∗)servira par la suite `a d´esigner la matrice qu’elle d´efinit.
Le couple(Q, R)est appel´ele format de la matriceA.
L’alphabet Q sert `a indexer les “lignes”, R `a indexer les “colonnes” et, le langage qui se trouve `a l’intersection de la ligneq∈Qet de la colonner∈RestA(qr).
Cette convention fix´ee, on peut d´efinir la somme et le produit de matrices “comme d’habitude”.
• La somme de deux matrices d’un mˆeme formatA:QR→ P(A∗)etA:QR→ P(A∗)est la matrice A+A:QR→ P(A∗)d´efinie par :
(A+A)(qr) =A(qr) +A(qr)pour toutq∈Qet toutr∈R.
On peut d´efinir de fac¸on analogue la somme g´en´eralis´ee d’une famille de matrices d’un mˆeme format.
L’´el´ement neutre pour la somme de matrices de format(Q, R)est d´efini par l’application qui envoie tout qr∈QRsur∅.
• Le produit de deux matrices de formats compatiblesA :QR → P(A∗)etB : RS → P(A∗)est la matriceAB:QS→ P(A∗)d´efinie par :
(AB)(qs) =
r∈R
A(qr)B(rs)pour toutq∈Qet touts∈S. (On aura reconnu le produit “lignes par colonnes”.)
L’´el´ement neutre de format (Q, Q) (une matrice carr´ee) pour le produit de matrices est d´efini par l’applicationεQ:Q2→ P(A∗)telle que
εQ(qr) =
ε siq=r,
∅ sinon.
• La relation d’inclusion entre deux matrices d’un mˆeme format comme ci–dessus est d´efinie par : A⊆AssiA(qr)⊆A(qr)pour toutq∈Qetr∈R.
Question.Transposer les propri´et´es de la somme et de la concat´enation des langages au cas des matrices et v´erifier les propri´et´es ainsi obtenues.
Exercice 20. G´en´erateurs lin´eaires (cf. section 7.2.1).
La propri´et´e principale exprime que la donn´ee d’un GLA : Q+ → P(A∗) ´equivaut `a celle d’une applicationA:Q2→ P(A∗), c’est–`a–dire, d’une matrice carr´ee!
On supposera fix´e un GL d´efini parA:Q2→ P(A∗)pour toute la suite de l’exercice.
a) V´erifier queA(LqM) =A(Lq)A(qM), pour toutL⊆Q∗, toutM ⊆Q∗et toutq∈Q.
b) En d´eduire queA(qLq)∗ = A((qL)∗q) = A(q(Lq)∗)et en particulier queA(qq)∗ = A(q∗q) = A(qq∗).
c) Pour tout entier natureli, on d´efinitAi :Q2→ P(A∗)par la r´ecurrence : A0=εQetAi+1=AiA,
c’est–`a–dire, pour toutqr∈Q2:
A0(qr) =εQ(qr) =ε siq=r
∅ sinon et Ai+1(qr) =
s∈Q
Ai(qs)A(sr) Enfin, on d´efinitA∗:Q2→ P(A∗)en posantA∗=
0≤i
Ai, c’est–`a–direA∗(qr) =
0≤i
Ai(qr). 1) SoientL⊆ A∗etM ⊆ A∗.
CalculerG∗lorsqueQ=q+rest constitu´e de deux symboles distincts et A(qq) =L,A(qr) =M,A(rq) =∅etA(rr) =ε. Revenons maintenant au cas g´en´eral.
2) Montrer queAi+1(qr) =A(qQir)pour toutqr∈Q2et tout entier natureli, 3) en d´eduire que pour toutqr∈Q2:A∗(qr) =A(Chem(q, r)) =
ε+A(qQ∗q) sir=q, A(qQ∗r) sinon.
4) V´erifier la transposition aux g´en´erateurs lin´eaires des propri´et´es de l’it´eration.
M.M Institut Galil´ee 2000 Les langages.
Exercice 21. Syst`emes d’´equations lin´eaires en langages.
La d´efinition des matrices et des GL conduisent `a modifier la pr´esentation des syst`emes lin´eaires. On remplace la notation indicielle, qui est souvent utilis´ee, par une notation “fonctionnelle” : chacun de nous est du reste bien habitu´e `a ´ecrireu(i), ou plutˆotu[i], au lieu deui. Nous n´egligerons l’´eventuelle valeur num´erique de ces “indices”, d´ej`a maltrait´es, pour consid´erer ceux–ci comme de quelconques symboles, c’est–`a–dire comme les ´el´ements d’un alphabet, avec lesquels nous aurons plaisir `a faire des chemins, puis des ensembles de chemins!
Voici :
Un syst`eme d’´equations lin´eaires se pr´esente sous la forme
(E) X(q) =
r∈Q
A(qr)X(r) +A(q) pour toutq∈Q o `u chaqueA(qr)et chaqueA(q)est un langage sur un alphabetA.
Une solution du syst`eme(E)se pr´esente sous la forme d’une substitutionL:Q→ P(A∗)v´erifiant L(q) =
r∈Q
A(qr)L(r) +A(q) pour toutq∈Q.
a) Pour v´erifier l’affirmation du d´ebut de la section 4.2, on est conduit `a repr´esenterA sous la forme d’une matrice colonne : on introduit pour cela un nouveau symbole∈Qet on consid`ereAcomme une applicationA :Q→ P(A∗), o `uA(q)n’est qu’une nouvelle fac¸on d’´ecrireA(q).
En appliquant des r´esultats des deux exercices pr´ec´edents, montrer que la matrice colonneL = A∗A v´erifie l’´egalit´eL = AL+A et que toute matrice colonneM v´erifiantM = AM +Aest telle que L⊆M.
On se propose maintenant de d´emontrer les principes (r´esolution partielle et substitution) sur lesquels est bas´ee la r´esolution effective des syst`emes d’´equations dans la section 4.2. Pour ce faire, il est commode de regrouperAetAen un seul GL (cf. section 7.2.1) qui, pour simplifier, sera encore d´esign´e parA. Ceci se fait de la fac¸on suivante, qui poursuit l’id´ee dea) :
Soit∈Qun nouveau symbole, alors, on ´etend la d´efinition deAen celle d’un GL A: (Q+)2→ P(A∗)
en posant :
– A(q) =A(q)pour toutq∈Q, – A(q) =∅pour toutq∈Q+. On dira quece GL est associ´e au syst`eme(E).
On suppose qu’un syst`eme(E)comme ci–dessus est fix´e et queAest le GL qui lui est associ´e.
Remarque.Tous les chemins qui nous int´eressent m`enent `a!
Ceci a pour cons´equence pratique que, pour une fois, il est indispensable de construire les mots et les chemins “`a l’envers”, c’est–`a–dire par adjonction d’´el´ements `a gauche : les d´efinitions et les raisonnements par r´ecurrence doivent donc tous suivre ce principe.
b) Montrer queA((Q+)∗) =A(Q∗).
On d´efinit une substitutionGen:Q→ P(A∗)par :
Gen(q) =A(qQ∗) pour toutq∈Q.
c) Montrer queGenest la plus petite solution de(E).
d) Montrer que toute solutionM :Q→ P(A∗)du syst`eme(E)satisfait les ´egalit´es suivantes, pour tout entier naturelk:
M(q) =
r∈Q
A(qQkr)M(r) +
0≤i≤k
A(qQi) quel que soitq∈Q.
En d´eduire la propri´et´e d’unicit´e : si, pour toutqr ∈ Q2on aε ∈ A(qr), alors(E)admet une solution unique. (La m´ethode utilis´ee dans la section 4.1 sera un guide pr´ecieux.)
e) Op´eration de substitution.
Soients∈Qett∈Qtels ques=tet soit(F)le syst`eme obtenu `a partir de(E)en remplac¸ant, dans le second membre de l’´equation deX(t), l’occurrence deX(s)par le second membre de son ´equation.
Montrer que la plus petite solution de(F)est ´egale `a la plus petite solution de(E).
Indications.SoitB : (Q+)2 → P(A∗)le GL associ´e `a(F). On mettra en ´evidence une application f : (Q+)2→ P((Q+)∗)telle que :
B(qr) =A(f(qr))
pour toutqr ∈ (Q+)2, que l’on ´etendra en une transformation de chemins ne modifiant pas leurs extrˆemit´es (cf. section 7.2.2), puis on v´erifiera que
– A(f(Γ)) =B(Γ)pour tout ensemble de cheminsΓ⊆(Q+)+, – f(qQ∗) =qQ∗pour toutq∈Q.
f ) Op´eration de r´esolution partielle.
Soits ∈Qet soit(F)le syst`eme obtenu `a partir de(E)en remplac¸ant l’´equation enX(s)de ce dernier (´ecrivons–laX(s) =AX(s) +Ben abr´eg´e) par sa r´esolvante partielle (qui s’´ecrit alorsX(s) =A∗B).
Montrer que la plus petite solution de(F)est ´egale `a la plus petite solution de(E). Syst`emes d’´equations alg´ebriques en langages.
Exercice 22.
D´ecrire une construction par r´ecurrence de la plus petite solutionsdu syst`eme ci–dessous, en utilisant la d´ecomposition desdonn´ee `a la section 6.6
Le syst`eme, qui s’´ecrit avec les alphabets : – A= [ + ] +∧+∨+→+¬+
n≥0
pn (2 parenth`eses, 4 “symboles” et une infinit´e d´enombrable de lettresp0, . . . , pn, . . .),
– Vn’a qu’un seul ´el´ementX, comporte une seule ´equationX=l(X)o `u
l(X) = [X∧X] + [X∨X] + [X →X] +¬X+
n≥0
pn. Exercice 23.
SoientAun alphabet etl:A → P(A∗)une substitution.
Trouver la plus petite substitutions:A → P(A∗)qui v´erifie l’´egalit´es=id+s◦l.
Indication.On s’inspirera de la m´ethode de la section 6.6, en remarquant qu’ici,Am`ene un double jeu.
Exercice 24. Syst`emes d’´equations lin´eaires en langages.
Adapter la m´ethode de r´esolution d’un syst`eme d’´equations alg´ebriques en langages au cas particulier d’un syst`eme lin´eaire (cf. sections 4, 6 et exercice 21).
M.M Institut Galil´ee 2000 Les langages.
2
Les langages r´ eguliers et
les automates finis.
Ad´esigne un alphabet fini.
Exercice 1.
SoitA={a, b}un alphabet `a deux lettres.
a) Donner une expression r´eguli`ere de chacun des langages surAsuivants :
• ensemble des mots se terminant paraa;
• ensemble des mots comportant le facteuraaa;
• ensemble des mots commenc¸ant parabet se terminant parbb;
• ensemble des mots ayant un nombre pair d’occurrences dea;
• ensemble des mots ne comportant pas le facteuraa.
• ensemble des mots ne comportant pas le facteuraaa.
b) Montrer que(a+bb∗a2)∗b∗(ε+a)est une expression r´eguli`ere de l’ensemble des mots ne comportant pas le facteurbab(εest une abr´eviation pour∅∗).
Exercice 2. Conjugaison (cf. exercice 1.4.b).
Montrer queConj(L)est r´egulier pour tout langage r´egulierL.
Indication. SoitA = (Q,A,•, q0, F)un AFDC et soitL =L(A). Pour chaqueq ∈ Qon consid`ere les deux AFDC suivants :
B(q) = (Q,A,•, q0, q) (la seule sortie estq)
C(q) = (Q,A,•, q, F) (l’entr´ee estq)
et on pose M(q) =L(B(q)) et N(q) =L(C(q)). Montrer que l’on aL=
q∈Q
M(q)N(q) et Conj(L) =
q∈Q
N(q)M(q). Exercice 3.
SoitA=aun alphabet `a un seul symbole.
Pour chaquei∈ {0,1,2}on d´efinitLi⊆a∗par : u∈Lissi|u|mod3 =i pour toutu∈a∗.
Trouver un ensemble d’´etatsQ, un ´etat initialq0 ∈ Q, une application• : Q× A → Qet, pour chaque i∈ {0,1,2}un ensembleFi⊆Qde sorties, de telle fac¸on que l’AFDCAi= (Q,A,•, q0, Fi)reconnaisse le langageLi.
Exercice 4.
Soitaun symbole.
Montrer que pour tout langage r´egulierL⊆a∗, il existe deux langagesfinisAetBet un motγ∈a∗tels queL=A+Bγ∗(R´eciproquement, un langage de cette forme est r´egulier!).
Indication.Trouver la forme g´en´erale des AFDC sur un alphabet `a une seule lettre : le th´eor`eme de Kleene fera le reste.
Exercice 5. Lemme d’it´eration pour les langages r´eguliers.
a) D´emontrerle lemme d’it´eration suivant :
siL⊆ A∗est un langage r´egulier alors il existe un entierN >0tel que pour toutu∈Lv´erifiant|u| ≥N, on peut trouver trois motsu1,vetu2surAtels que l’on ait les propri´et´es
1) u=u1vu2, 2) |v|>0et|v| ≤N,
3) pour tout entierk,u1vku2∈L.
Indication. Consid´erer les “longs” chemins que l’on peut parcourir dans un AFDC reconnaissantL. b) En d´eduire que les langages suivants ne sont pas r´eguliers :
– L={ambm|m≥0}
– L={am2 |m≥0}
c) On consid`ere les langagesL= (a+b)∗ba(a+b)∗etM ={ambm|m≥0}.
Montrer que le langageL+M v´erifie la conclusion du lemme d’it´eration ci–dessus mais qu’il n’est pas r´egulier.
Exercice 6. (cf. exercices 1.5, 1.6 et 1.7) Soitfl’une des applicationsf g,f d,f act.
a) Montrer que f transforme un langage r´egulier en un langage r´egulier, sans utiliser aucun AF.
b) Construire un AF reconnaissantf(L) `a partir d’un AFDC recon- naissantL. Appliquer cette construction `a l’AFDC ci–contre.
0 1
2 3
a
b
b a, b a
a b
Exercice 7.
D´eterminer l’AF et l’ε–AF suivants :
2
1 0
3 a, b
a, b a
a, b a, b
a a, b
a a, b
a
0
1
2 3
4 5
ε
a, b
ε b ε
ε
ε
a
a
a, b a
b
M.M Institut Galil´ee 2000 Langages r´eguliers et AF.
Exercice 8.
Construire des AFDC qui reconnaissent respectivement chacun des langages d´ecrits dans l’exercice 1.a).
Indication.On pourra commencer par construire unε–AF reconnaissant “visiblement” ledit langage ou son compl´ementaire.
Exercice 9.
SoitA=a+bun alphabet `a deux symboles.
a) Reprendre l’exercice 3 ci–dessus, mais cette fois pour lesLi⊆ A∗d´efinis par :u∈Lissi|u|amod3 = ipour toutu∈ A∗.
b) Construire un AFDC surAqui reconnaˆıt l’ensemble des motsu∈ A∗ne comportant pas le facteur babet tels que|u|amod3 = 2.
Exercice 10.
a) SoitAun AFDC sur un alphabetAet posonsL=L(A).
Construire unε–AF qui reconnaˆıt l’ensemble des mots surAdont aucun facteur n’est un ´el´ement deL. b) Appliquer a) pour construire un AFDC reconnaissant l’ensemble des mots sur{a, b}ne comportant pas le facteurbab, puis utiliser cet AFDC pour red´emontrer le r´esultat de l’exercice 1.b) ci–dessus.
Exercice 11. Image par une substitution.
Soitf :A → P(B∗)une substitution telle quef(x)est r´egulier pour toutx∈ A. a) Montrer quef(L)est r´egulier pour toutL⊆ A∗r´egulier, sans utiliser aucun AF.
b) SoitAun AFDC reconnaissantLet soit, pour chaquex ∈ A,A(x)un AFDC reconnaisantf(x): construire unε–AF reconnaissantf(L).
Appliquer cette construction `a la substitutionsm(cf. exercice 1.14) Exercice 12. Image inverse par une substitution.
Soitf :A → P(B∗)une substitution et soitf−1:B∗→ P(A∗)son application inverse (cf. exercice 1.15), soit enfinB= (Q,B,•
B, q0, F)un AFDC : on consid`ere alors l’ε–AFA= (Q,A,•
A, q0, F)dont l’action est d´efinie parq•
Ax=q•
Bf(x)(cf. section 6.2.2).
a) Montrer que siM =L(B)alorsL(A) =f−1(M).
b) Etudier le cas o `uf(x)est un langage r´egulier pour toutx∈ A.
c) Montrer, sans utiliser aucun AF, que l’image inverse d’un langage r´egulier par une subtitution al- phab´etique est un langage r´egulier (cf. exercice 1.16).
Exercice 13.
Appliquer les deux exercices pr´ec´edents pour montrer que chacune des applications applicationstcetusd de l’exercice 1.18 transforme un langage r´egulier en un langage r´egulier.
Exercice 14.
Pour toutL⊆ A∗on d´efinitR(L)⊆ A∗par
u∈R(L)ssi il existev∈ A∗tel que|v|=|u|etuv∈L pour toutu∈ A∗.
Le but de cet exercice est de montrer queR(L)est r´egulier pour tout langage r´egulierL. a) Appliquer directement la d´efinition pr´ec´edente pour calculerR(ε+aba∗).
b) SoitA= (Q,A,•, q0, F)un AFDC, on consid`ere l’AFRqui est la partie accessible (on a aussi int´erˆet
`a ne conserver que les ´etats productifs) de l’AF(Q×Q,A,◦, I, G)d´efini de la fac¸on suivante :
– (s, t)∈(q, r)◦xssiq•x=sett∈r•A−1 (action)
– I={(q0, r)|r∈F} (ensemble des entr´ees)
– G={(q, q)|q∈Q} (ensemble des sorties)
Appliquer cette construction `a un AFDC reconnaissant le langageε+aba∗. Montrer que pour toutu∈ A∗, on a :
(s, t)∈(q, r)◦ussiq•u=set il existev∈ A∗tel que|v|=|u|ett•v=r quels que soientq,r,sett∈Q.
En d´eduire que siL=L(A)alorsL(R) =R(L).
Utiliser ce r´esultat pour v´erifier le calcul pr´ec´edent deR(ε+aba∗). Exercice 15. M´elange de langages (cf. exercice 1.11).
SoientA= (QA,A,•
A, q0A, FA)etB= (QB,A,•
B, q0B, FB)deux AFD.
On d´efinit l’AFC= (Q,A,◦, q0, F)`a une seule entr´ee de la fac¸on suivante : – Etats.Q=QA×QB,
– Action. (q, r)◦x= (q •
Ax, r) + (q, r•
Bx)pour toutq∈QAet toutr∈QB, – Entr´ee. q0= (q0A, qB0),
– Sorties. F =FA×FB.
a) Montrer que siL=L(A)etM =L(B)alorsL(C) =mel(L, M). b) Applications.
– V´erifier les calculs de la questionb)de l’exercice 1.11 en utilisant la constrution pr´ec´edente.
– Construire un AF qui reconnaˆıt l’ensemble des motsu∈(a+b)∗tels que(|u|a− |u|b)mod3 = 1 (cf. exercice 9.a).
Exercice 16. Langages locaux.
Un langageMsur un alphabetBest dit local ssi il existeX ⊆ B,Y ⊆ BetZ ⊆ B2tels que M−ε= (XB∗∩ B∗Y)− B∗ZB∗.
Pour d´ecider si un motu ∈ B∗appartient `a un langage local, il suffit de tester les facteurs deudont la longueur est au plus2, aussi les appelle–t–on souventlangages2–reconnaissables.
Un langage local est ´evidemment r´egulier.
L’objet de cet exercice est de donner une r´eciproque `a cette propri´et´e :
tout langage r´egulier est l’image d’un langage local par une substitution strictement alphab´etique.
SoitLun langage r´egulier ne contenant pasεet soitA= (Q,A,•, q0, F)un AFDC reconnaissantL. On consid`ere un alphabetBdont les symboles sont des ´el´ements deQ× A ×Q:
B={[q, x, r]|q•x=r}. On consid`ere alors les langagesX ⊆ B,Y ⊆ BetZ ⊆ B2d´efinis par :
[q, x, r]∈Xssiq=q0, [q, x, r]∈Y ssir∈F, [q, x, r][s, y, t]∈Zssir=s,
et la substitutionf :B → Ad´efinie parf([q, x, r]) =x. a) Montrer queL=f((XB∗∩ B∗Y)− B∗ZB∗).
b) Appliquer la construction pr´ec´edente `aL=b2(a+b)∗a. Exercice 17.
Minimiser les AFDC suivants :
M.M Institut Galil´ee 2000 Langages r´eguliers et AF.
0 1
2
3 4
a a
b b
a, b a b
b
a 0 1
2 3
4
5
6 a
b a
a
b b
b
a
b b
a b a
a
Exercice 18. AF sp´eciaux (AFS).
Un AFS surAest un couple(A,Eps)o `u :
– A= (Q,A,•, I, f)est un AF `a une seule sortie, v´erifiant les conditions suivantes : 1) f ∈I,
2) f•x=∅pour toutx∈ A,
3) pour toutq∈Q−f, il existe un uniquex∈ Atel queq•x=∅; – Eps⊆ε(on a doncEps=∅ouEps=ε).
Le langageL(A,Eps)⊆ A∗reconnu par un AFS(A,Eps)est d´efini par : L(A,Eps) =L(A) +Eps
Remarques.
• Le fait queAa une seule sortie n’est pas tr`es important et ne sert qu’`a simplifier la construction4) ci–dessous.
• La condition 1) implique ´evidemment queε∈ L(A):Epssert `a pallier cet ´eventuel d´efaut.
• La condition 2) signifie que l’on ne peut que sortir lorsqu’on est parvenu enf.
• La condition 3) implique que la table deAest tr`es lacunaire : la ligne defest vide et la ligne de chaque q=fcomporte une seule case non vide, ce qui est un avantage ´evident lorsqu’il s’agit de calculer un AFDC
´equivalent. On peut aussi profiter de cette condition pour simplifier les repr´esentations deA(comment?).
L’objet de l’exercice est de v´erifier que tout langage r´egulier est reconnaissable par un AFS.
a) Adapter l’algorithme de d´etermination des AF au cas des AFS (Epsdoit intervenir!) et appliquer l’algorithme ainsi trouv´e `a des exemples simples d’AFS.
b) Les constructions suivantes permettent de construire un AFS reconnaissant un langage r´egulierL ⊆ A∗: v´erifier qu’elles sont correctes.
1) L=∅est reconnu par l’AFS((f,A,•,∅, f),∅)`a un seul ´etat.
2) Pour toutx∈ A,L=xest reconnu par l’AFS((q0+f,A,•, q0, f),∅)`a deux ´etats, o `uq0•x=f. Pour la suite, on consid`ere deux AFS((Q1,A,•
1, I1, f1),Eps1)et((Q2,A,•
2, I2, f2),Eps2), tels queQ1∩ Q2=∅, et on appelleL1etL2les langages qu’ils reconnaissent respectivement.
3) L=L1+L2est reconnu par l’AFS construit de la fac¸on suivante : – Q= (Q1−f1) + (Q2−f2) +fo `uf ∈Q1+Q2est un nouvel ´etat,
– I=I1+I2,
– fest le nouvel ´etat introduit ci–dessus,
– pour chaquei∈ {1,2}, siq∈Qietx∈ Asont tels quefi∈q•
ix alorsq•x= (q•
ix−fi) +f sinonq•x=q•
ix, (f1etf2ont ´et´e identifi´ees enf), – Eps=Eps1+Eps2.
4) L=L1L2est reconnu par l’AFS construit de la fac¸on suivante∗: – Q= (Q1−f1) +Q2,
– I=I1+Eps1I2, – f =f2,
– soientq∈Qetx∈ A, alors : 1) pourq∈Q1:q•x=
(q•
1x−f1) +I2+fEps2 sif1∈q•
1x, q•
1x sinon,
2) pourq∈Q2:q•x=q•
2x,
(f1s’est multipli´ee pour s’indentifier respectivement `a chacun des ´el´ements deI2), – Eps=Eps1Eps2.
5) L=L∗1est reconnu par l’AFS construit de la fac¸on suivante : – Q=Q1,
– I=I1, – f =f1,
– soientq∈Q1etx∈ A, alorsq•x= q•
1x+I1 sif1∈q•
1x, q•
1x sinon,
(les ant´ec´edents de la sortie sont branch´es sur les entr´ees), – Eps=ε.
c) Appliquer la m´ethode pr´ec´edente pour calculer un AFS, puis un AFDC sur{a, b}, reconnaissant le langageb∗+ (a+b)∗a∗a.
Exercice 19. AF g´en´eralis´es (AFG).
Voici une m´ethode “g´eom´etrique”, pour construire unε–AF reconnaissant un langage r´egulier : elle est as- sez intuitive mais n´ecessite la consid´eration d’un type tr`es g´en´eral d’automates finis, dont nous d´ecrirons seulement les graphes de transition.
Le graphe de transition d’un AFGAsur l’alphabetAest la donn´ee des ´el´ements suivants :
• Un graphe de transition proprement dit, constitu´e de nœuds et d’arˆetes ´etiquet´es : – un nœud q pour chaque ´el´ementqd’un ensemble finiQ,
– un ensemble fini d’arˆetes q L r
o `uq∈Q,r∈QetL⊆ A∗ (il est inutile de faire figurer les arˆetes vides q ∅ r
),
• un ensemble d’entr´eesI⊆Q,
• un ensemble de sortiesF ⊆Q.
Le langage reconnu par un tel AFG se d´efinit en adaptant la notion habituelle de d´erivation : Une transition (q, vu) 1 (r, u)est d´efinie pour toutv ∈Ltel que q L r
soit une arˆete du graphe deA.Une d´erivation est un enchaˆınement de transitions.
∗ Dans cette construction, tous les ensembles sont trait´es comme des alphabets.
M.M Institut Galil´ee 2000 Langages r´eguliers et AF.
Le langageL(A)⊆ A∗reconnu par un AFGAest d´efini par :
u∈ L(A)ssi il existes∈Ietr∈Ftels que(s, u) ∗ (r, ε). Deux AFG sont ´equivalents s’ils reconnaissent le mˆeme langage.
a) V´erifier que l’application de chacune des op´erations suivantes (o `uqetrsont des ´etats qui peuvent ˆetre
´egaux) transforme un AFG en un AFG ´equivalent.
q L+M r
devient q L r
M (deux arˆetes parall`eles)
q LM r
devient q L s M r
(sest un nouvel ´etat)
q L∗ r
devient q ε s L ε r
(sest un nouvel ´etat) (Cette derni`ere transformation ne s’applique utilement que lorsqueL=∅!)
b) En d´eduire une construction d’unε–AF reconnaissant un langage r´egulier d´efini par une expression r´eguli`ere.
Exercice 20. Syst`eme d’´equations associ´e `a unε–AF. (cf. exercices 1.20 et 1.21)
On associe `a toutε–AFA = (Q,A, δ, I, F)le GLA : (Q+)2 → P(A∗)(o `u ∈ Qest un nouveau symbole) qui est d´efini par :
A(qr) ={x∈ε+A |r∈δ(q, x)}pour toutqr∈Q2, A(q) =
ε pour toutq∈F
∅ pour toutq∈Q−F, A(q) =∅pour toutq∈Q+.
a) V´erifier que le GL ainsi d´efini est bien celui qui est associ´e au syst`eme d’´equations correspondant `a l’ε–AFA(cf. section 5.5 et exercice 1.21).
b) Pour v´erifier les affirmations de la section 5.5 au sujet du calcul du langage reconnu par unε–AF : 1) montrer que quels que soientq∈Q,r∈Qetu∈ A∗on a
(q, u) ∗ (r, ε)ssiu∈A(Chem(q, r)), 2) en d´eduire queL(A) =A(IQ∗).
Remarque. Apr`es l’exercice 1.21, ceci signifie que le langage engendr´e par unε–AF se calcule, comme pour les AFDC, en utilisant la plus petite solution du syst`eme qui lui est associ´e : on doit, bien entendu, tenir compte du fait qu’unε–AF peut avoir plusieurs entr´ees.
M.M Institut Galil´ee 2000 Langages r´eguliers et AF.
3
Les grammaires et
les langages alg´ ebriques.
Lorsqu’aucune autre pr´ecision n’est donn´ee,Gd´esigne une grammaire(V,A, R). Exercice 1.
Montrer que les langages suivants sont alg´ebriques (aet bsont distincts,Aest un alphabet fini quel- conque) :
L1 ={ambm|m≥0}
L2 ={ambn|0≤m < n}
L3 ={ambnan|m≥0, n≥0}
L4 ={uc˜u|u∈ A∗}
L5 ={uv|u∈(a+b)∗, v∈(a+b)∗,|u|=|v|, v= ˜u}
Exercice 2.
Montrer que siL⊆ A∗est alg´ebrique alorsL={u∈ A∗|u˜∈L}l’est aussi.
Exercice 3. Deux fois plus deaque debdans le mˆeme mot.
SoitG= (S, a+b, R)la grammaire pour laquelleRest d´efini par la r`egle globale S−→ε+SaSaSbS+SaSbSaS+SbSaSaS.
Le but de cet exercice est de montrer queL(G, S)est l’ensembleLdesu∈ A∗v´erifiant|u|a= 2|u|b. a) Montrer queL(G, S)⊆Len effectuant une induction sur la longueur des d´erivations.
b) Montrer que siu∈L−εalorsua un facteurxyz ∈Lde longueur3. Indication.
Toutu∈L−ε, sans aucun facteurxyz∈Lde longueur3, devrait satisfaire les propri´et´es suivantes : – |u| = 3;
– une comporte aucun facteuraa, d’o `u plus g´en´eralement que|u|a ≤ |u|b+ 1; ce qui est difficilement conciliable avec le fait queu∈L−ε!
c) Pour toutu∈ A∗on d´efinitu∈(A+S)∗, de la fac¸on suivante : – ε=ε,
– x=xpour toutx∈ A,
– ux=uSxpour toutu∈ A∗−ε, et pour toutx∈ A.
uest donc obtenu en intercallantSentre les lettres deu, par exempleu=aSaSbpouru=aab. V´erifier queuv=uSvlorsqueu=εetv=ε.
d) Montrer les deux propri´et´es suivantes : – u=∗⇒upour toutu∈ A∗.
– S=∗⇒SuSpour toutu∈L−ε(utiliserb) pour faire une induction).
e) En d´eduire queL⊆ L(G, S).