• Aucun résultat trouvé

Langages rationnels et non rationnels

N/A
N/A
Protected

Academic year: 2022

Partager "Langages rationnels et non rationnels"

Copied!
7
0
0

Texte intégral

(1)

Polytech Paris Sud - ET4 Année 2018-2019

Informatique Théorique :

Langages rationnels et non rationnels

TD n 4

Semaine du 8 octobre

Rationnel ou non ?

Exercice 1. On considère l'alphabet A = {a, b} . Parmi les langages suivants, lesquels ne sont pas rationnels ? Justier.

1. {a

n

b

n

| n ≥ 0}

2. {a

n

ba

n

| n ≥ 0}

3. {a

n

a

n

| n ≥ 0}

4. {a

m

b

p

| m < p}

5. {a

m

b

p

| m ≥ p}

6. {a

n

b

m

| n ≥ 10 et m ≤ 5}

7. {a

n

b

m

| n ≥ 10 et m ≥ 5}

8. {w | |w|

a

≥ 10 et |w|

b

≤ 10} , où |w|

a

est le nombre d'occurrences de a dans w 9. {w | |w|

a

= |w|

b

}

10. {a

n

b

m

| n + m ≤ 1024}

11. {a

n

b

m

a

n

b

m

| n, m ≥ 0}

12. {w | w est un palindrome }

Démonstration. On rappelle ici le lemme de l'étoile tel que formulé en cours : Pour tout langage rationnel L , il existe un entier N tel que pour tout f ,

f ∈ L

|f | ≥ N

= ⇒ ∃u, v, w ∈ A

, v 6= ε, f = uvw, |uv| ≤ N et uv

w ⊆ L

(2)

• Trouver une expression rationnelle

• Raisonner par union, concaténation, étoile de langages rationnels.

• Raisonner par complémentaire ou intersection

• On rappelle qu'un langage ni est toujours rationnel.

• On peut utiliser le théorème de Myhill-Nérode qui en plus est une CNS, mais la manipulation des résiduels n'est pas forcément aisée.

Attention l'inclusion ne fonctionne pas !

Pour prouver qu'un langage n'est pas rationnel on raisonne par l'absurde avec les points précédents. Ou on utilise le lemme de l'étoile par l'absurde. Ceci fonctionne en quatre étapes :

1. On suppose que le lemme de l'étoile est juste, et on écrit ce que cela signie. En particulier on xe le N de l'énoncé.

2. On donne le mot qui va poser problème pour le résultat.

3. On montre qu'il pose problème.

4. On conclut : comme on est arrivé à une absurdité le langage de départ n'était pas rationnel.

Dès lors on corrige :

1. Fait en cours. Utiliser le lemme de l'étoile avec le mot a

N

b

N

et utiliser que |uv| ≤ N pour en déduire qu'on n'ajoute que des a ce qui déséquilibre le mot uv

0

w = uw et mène à une absurdité.

2. Avec le lemme de l'étoile on considère a

N

ba

N

. Comme |uv| ≤ N on en déduit que v n'a que des a , et on perd l'équilibre pour uw .

3. Oui, il s'agit de (a

2

)

.

4. Non. Utiliser le lemme de l'étoile avec a

N

b

N+1

. Alors v ne comporte que des a , et dès qu'on en prend v

2

on a plus de a que de b (au sens large).

5. Non. On peut considérer le complémentaire intersecté avec a

b

, et on retrouve le langage précédent. Sinon on peut considérer le mot a

N

b

N

. La factorisation uvw fait que v ne comporte que des a . Alors le mot uv

0

w = uw a strictement moins de a que de b , absurde.

6. Oui, soit construire l'automate soit dire que c'est a

10

a

(ε+b+bb+bbb+bbbb+bbbbb) . 7. Oui, soit faire l'automate, soit a

10

a

b

5

b

.

8. Oui, on donne l'automate en remplaçant 10 par 2 et on comprend comment cela

fonctionne. Le premier chire est le nombre de a , le deuxième le nombre de b .

(3)

0,0

start 0,1 0,2 0, >2

1,0 1,1 1,2 1, >2

≥2,0 ≥2,1 ≥2,2 ≥2, >2 a

a

a

a

a

a

a

a

a a a

a, b b

b

b b b

b b b

b b b

9. Non rationnel : si on intersecte avec a

b

on obtient le langage de la question 1 qui n'est pas rationnel.

10. Oui car ce langage est ni (de taille P

1025 k=1

k )

11. Non rationnel : avec le lemme de l'étoile, par exemple pour a

N

b

N

a

N

b

N

le v ne contient que des a ce qui déséquilibre les deux blocs de a .

12. Non rationnel. Soit le prouver directement avec le mot a

N

ba

N

soit utiliser la ques- tion 2 en intersectant avec a

ba

.

Exercice 2 (bonus). Varier de méthodes et utiliser tantôt Myhill Nérode tantôt le lemme de l'étoile pour l'exo précédent (en fonction de ce que vous avez fait précédemment).

Arden, résiduels et égalités d'expressions rationnelles

Exercice 3. On considère l'alphabet A = {a, b} et l'automate A suivant sur A :

1

start 2 3

a

b

a, b

b a

Déterminer le système d'équations associé à A . Le résoudre par élimination et à l'aide

du lemme d'Arden et en déduire une expression rationnelle du langage reconnu par A .

Montrer que cette expression est équivalente à A

aA .

(4)

Démonstration. On a le système :

X

1

= bX

1

+ aX

2

X

2

= aX

2

+ bX

1

+ (a + b)X

3

X

3

= ε

D'où X

2

= aX

2

+ bX

1

+ a + b = a

(bX

1

+ a + b) et X

1

= bX

1

+ aa

bX

1

+ aa

a + aa

b . D'où X

1

= (b + aa

b)

aa

(a + b) . Or aa

= a

a . Montrons donc que (b + aa

b)

a

= A

. L'inclusion ⊆ est claire. Montrons ⊇ .

On étudie chaque bout séparément, et on montre que (b + aa

b) = a

b . Si u ∈ L(b + aa

b) alors u = b = a

0

b ∈ L(a

b) ou u = aa

k

b = a

k+1

b ∈ L(a

b) . Dans l'autre sens, si u ∈ L(a

b) alors u = b ∈ L(b + aa

b) ou u = a

k

b avec k ≥ 1 donc u = aa

k−1

b ∈ L(aa

b) ⊆ L(b + aa

b) .

On montre donc que A

⊆ (a

b)

a

. On procède par induction sur la longueur de u ∈ A

. Si u = ε on a bien L((a

b)

a

).

Si u = wa avec w ∈ L((a

b)

a

) alors u ∈ L((a

b)

a

a) ⊆ L((a

b)

a

) .

Si u = wb avec w ∈ L((a

b)

a

) alors u ∈ L((a

b)

a

b) ⊆ L((a

b)

) ⊆ L((a

b)

a

) . Ainsi le langage de cet automate est bien L = A

aA . On calcule désormais les rési- duels :

ε−1L=L

a−1L=L+A b−1L=L

(aa)−1L=L+A+ε (ab)−1L=L+ε

(aaa)−1L=L+A+ε (aab)−1L=L+ε (aba)−1L=L+A (abb)−1L=L

a b

a b

a b a b

D'où l'automate minimal :

start L L+A

L+ε

L+A+ε a

b

a

a b

a

b b

Il a plus d'états ce qui n'est pas gênant car l'autre n'était pas déterministe.

(5)

Commentaire en C

Exercice 4. L'automate asynchrone suivant dénit les commentaires en langage C. L'al- phabet est celui de tous les caractères du clavier. Pour éviter la multiplication des transi- tions sur le schéma, l'étiquette ¬{x

1

, . . . , x

n

} d'une transition représente n'importe quelle lettre de l'alphabet distincte des lettres x

1

, . . . , x

n

mentionnées entre accolades (la tran- sition ayant cette étiquette représente donc en fait un ensemble de transitions, une par lettre du clavier autre que x

1

, . . . , x

n

).

1 start

2

3 4

5

7 8 9

10 6

11 12 13 /

ε ε

ε

ε

ε

¬{∗}

¬{∗, /}

/

ε

ε

ε

1. Déterminiser puis compléter cet automate.

2. Minimiser par l'algorithme de Moore l'automate synchrone déterministe complet obtenu.

3. En déduire une expression rationnelle pour les commentaires en C.

Démonstration. 1. Voici l'automate :

1

start / 2 ∗ 3, 4, 5, 7, 11 ∗ 8,12 13

¬{∗}

∗ /

¬{∗, /}

∗ ∗

(6)

Voici son complété renuméroté :

1

start 2 3 4

6

7

5 8

/ ∗ ∗

¬{∗}

∗ /

¬{∗, /}

∗ ∗

¬{∗} ¬{∗}

¬{/}

¬{∗}

A A

2. On fait les itérations successives : Θ

0

∗ / ¬{∗, /} Θ

1

1 I I I I I.1

2 I I I I I.1

3 I I I I I.1

4 I I II I I.2

5 I I I I I.1

6 I I I I I.1

8 I II II I I.1

7 II II

Θ

1

∗ / ¬{∗, /} Θ

2

1 I I I I I.1

2 I I I I I.1

3 I II I I I.2

5 I II I I I.2

6 I II I I I.2

8 I I I I I.1

4 II II

7 III III

Θ

2

∗ / ¬{∗, /} Θ

3

1 I I I I I.1

2 I II I I I.2

8 I I I I I.1

3 II III II II II 5 II III II II II 6 II III II II II

4 III III

7 IV IV

Θ

3

∗ / ¬{∗, /} Θ

4

1 I I III I I.1

8 I I I I I.2

3 II IV II II II

5 II IV II II II

6 II IV II II II

2 III III

4 IV IV

7 V V

Puis on stabilise. On a donc l'automate suivant :

I

start II III IV V

VI

/ ∗

¬{∗} ∗

/

¬{∗, /}

¬{/}

¬{∗}

A A

(7)

3. On écrit le système sans le sommet V I :

 

 

 

 

X

1

= /X

2

X

2

= ∗X

3

X

3

= ¬{∗}X

3

+ ∗X

4

X

4

= ∗X

4

+ ¬{∗, /}X

3

+ /X

5

X

5

= ε

D'où X

4

= ∗X

4

+ ¬{∗, /}X

3

+ / = ∗

(¬{∗, /}X

3

+ /) par le lemme d'Arden.

D'où X

3

= ¬{∗}X

3

+ ∗ ∗

(¬{∗, /}X

3

+ /) = (¬{∗} + ∗ ∗

¬{∗, /})

∗ ∗

/ . On conclut rapidement X

1

= / ∗ (¬{∗} + ∗ ∗

¬{∗, /})

∗ ∗

/ .

En utilisant la notation aa

= a

+

cela se réécrit : X

1

= / ∗(¬{∗} +∗

+

¬{∗, /})

+

/ .

Références

Documents relatifs

- Connaître le vocabulaire, les définitions et les propriétés du cours. - Utiliser des écritures fractionnaires différentes d’un même nombre. - Comparer des nombres en

Il est vrai que les objets quantiques se comportent dans certains cas comme des particules et dans d’autre cas comme des ondes, mais il est encore plus vrai que dans la plupart

Décrire brièvement la signification de ces quatre états, de façon à vérifier qu’il accepte le même langage que décrit en (0). (3) Éliminer les états de l’automate d’origine

(3) Éliminer les états de l’automate d’origine de façon à obtenir une expression rationnelle dénotant le langage reconnu par le langage décrit en (0)... Corrigé.. Il ne faut

[r]

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

Soit s l'index de la congruence syntactique a L enduite par L, et supposons que L ait un nombre de facteurs itérants primitifs plus grand que 5; alors deux parmi eux, v et /z,

En- suite, pour chaque chiffre, on ´ ecrit la transition ad´ equate qui correspond la somme avec l’´ etat modulo