• Aucun résultat trouvé

1. 5. Déterminer si les langages suivants sont réguliers, algébriques ou aucun des deux.

N/A
N/A
Protected

Academic year: 2022

Partager "1. 5. Déterminer si les langages suivants sont réguliers, algébriques ou aucun des deux."

Copied!
2
0
0

Texte intégral

(1)

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.

(2)

(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

Références

Documents relatifs

Avant d'entamer la preuve du théorème, nous proposons deux exemples qui montrent d'une certaine manière Foptimalité des résultats que nous avons obtenus; le premier est celui

= n p ^ 1 } est &#34;context-sensitive&#34; et vérifie (B ) sans être borné, de sorte que la proposition n'est plus vraie si l'on supprime le caractère algébrique du

(Ici, les « lettres » ou tokens ont été écrits comme des mots, par exemple foo est une « lettre » : les terminaux sont écrits en police à espacement fixe tandis que les

On peut aussi fabriquer une grammaire inambiguë, faiblement équivalente à celle de départ, qui force l’autre interprétation (le else se rapporte au if le plus lointain possible),

Tout cela, et parfois une de ces pyramides d’un noir plombé qui s’élèvent sur les puits de pétrole, composent le paysage désespéré qui m’entoure, et que ne connaissent que

● Théorème : pour tout automate, il existe une expression régulière reconnaissant le même langage. – Possibilité de transformer un automate en

Par conséquent, si x, u, et y sont les mots représentés par la figure précédente, tous les mots de la forme xu*y sont accepté par l’automate et font partie du langage Autrement

Ce programme itératif ressemble à celui que nous avons d'abord construit en ce que les caractères de l'inverse sont bien concaténés en tête de z, mais ils sont retirés au fur et