1. 5. Déterminer si les langages suivants sont réguliers, algébriques ou aucun des deux.
Lemme d’itération pour les langages réguliers SoitL un langage rationnel.
Il existe un entier ktel que :
∀x∈L tel que |x|> k:
∃u, v, w tels quex=uvw, avec : (i) |v| ≥1 (ii) |uv| ≤k
(iii) ∀i∈N, uviw∈L
Lemme d’itération pour les langages algébriques SoitL un langage algébrique.
Il existe un entier ktel que :
∀w∈L tel que|w|> k :
∃u, x, z, y, v tels quew=uxzyv, avec : (i) |xy| ≥1 (ii) |xzy| ≤k
(iii) ∀i∈N, uxizyiv ∈L (a) anbn
Lemme d’itération pour les langages réguliers : soitK la constante d’itération du langage. Le motaKbK appartient au langage, et sa longueur est supérieure àK; pour toute factorisation uvw, la contrainte sur la longueur de uv signifie que uv ne contient que des a. Si on itère v (uvvw), on obtient plus deaque debet le mot n’appartient plus au langage ; ce langage n’est donc pas rationnel.
On peut montrer qu’il est algébrique en donnant la grammaire algébrique suivante :S→aSb|ε.
(b) anbncn
Lemme d’itération pour les langages algébriques : soitK la constante d’itération du langage.
Le mot aKbKcK appartient au langage et sa longueur est supérieure à K; pour toute fac- torisation uxzyv, si x ou y contient une séquence de lettres différentes, l’itération uxxzyyv n’appartiendra plus à a*b*c* (et donc a fortiori à anbncn) ; si x et y ne contiennent chacun qu’une seule lettre, l’itérationuxxzyyvne respectera plus la contrainte sur l’égalité du nombre d’occurrences de chaque lettre dans le mot puisqu’elle augmentera le nombre d’occurrences de deux seulement des trois lettres (au maximum). Donc, ce langage n’est pas algébrique.
(c) anbnan
Solution: Même solution que (b).
(d) ambnam
Solution: Même solution qu’en (a) avec le mot aKbnaK. Grammaire algébrique : S → aSb|B, B →bB|ε.
(e) ambnam avec m≥n
Solution: Lemme d’itération pour les langages algébriques : soit K la constante d’ité- ration du langage. Le mot aKbKaK appartient au langage et sa longueur est supérieure à K; pour toute factorisation uxzyv, par le même raisonnement qu’en (b), ni x ni y ne peuvent contenir de lettres différentes ; de plus, on a la contrainte|xzy| ≤K. Ceci signifie quex ne peut contenir desade gauche si y contient desade droite, puisqu’alors z serait de longueurK et on aurait |xy|= 0, ce qui est exclu. Donc l’itération ne peut augmenter parallèlement le nombre deade gauche et de droite, et on sort du langage.
(f) anbp avec n6=p
Solution: Le lemme d’itération pour les langages réguliers ne nous aide pas ici : pour tout mot du langage on trouvera une factorisation dans laquelle l’itération reste dans le langage. Pourtant ce langage n’est pas régulier, et on ne peut pas en donner une gram- maire régulière. On va donc raisonner par absurde à l’aide des propriétés de fermeture des langages réguliers.
Supposons que ce langage est régulier. Les langages réguliers sont fermés pour l’intersec- tion et la complémentation. Son intersection avec le langage régulier a*b* doit donc être régulière aussi. Le complément sur {a, b}* de cette intersection doit donc être régulier également. Or, le complément de l’intersection de ce langage avec a*b* n’est autre que anbn. On a montré en (a) queanbn n’est pas régulier. Donc, ce langage ne peut pas être régulier. Il est en fait algébrique, comme le montre la grammaire algébrique suivante :
S → aSb
| A
| B
A → aA
| a
B → bB
| b
(g) ai+aj =ai+j (langage sur l’alphabetX ={a,+,=})
Solution: Lemme d’itération pour les langages réguliers : soitK la constante d’itération du langage. Le mot aK +aj = aK+j est dans le langage ; la factorisation uvvw sort du langage, parce que uv ne peut contenir que desa de gauche, et doncuvvw contient trop de a à gauche. Ce langage n’est donc pas régulier, mais algébrique, comme le montre la grammaire algébrique suivante :
S →aSa | + T T→ aTa | =
(h) uuavec u∈ {a, b}*,u le mot miroir de u (e.g. bbaabb, ababbaba...)
Solution: Lemme d’itération pour les langages réguliers : soitK la constante d’itération du langage. Le motaKbbaK appartient au langage ; la factorisationuvvwsort du langage, puisque on rajoute des a en début de mot sans rajouter leur miroir en fin de mot. Le langage est donc non régulier, mais il est engendré par la grammaire algébrique S → aSb|bSa|ε.
(i) uuavec u∈ {a, b}* (e.g. bbabba, abababab...)
Solution: Même raisonnement qu’en (b) à l’aide du motaKbKaKbK. (j) a2n
Solution: Lemme d’itération des langages algébriques : soit K la constante d’itération du langage. Le mot a2K appartient au langage ; pour toute factorisation uxzyv, on a 2K = |uxzyv| < 2K +|xy| = |uxxzyyv| ≤ 2K +K < 2K+1. L’itération uxxzyyv sort donc du langage puisqu’elle est de longueur strictement supérieure à2K mais strictement inférieure à la puissance de 2 suivante. Le langage n’est donc pas algébrique.
Page 2