SPÉ MP, MP∗ TD08 Année 2014/2015 Corrigé Automates 1. 2. (a

Transcription

SPÉ MP, MP∗ TD08 Année 2014/2015 Corrigé Automates 1. 2. (a
SPÉ MP, MP∗
Année 2014/2015
TD08
Corrigé Automates
1.
2. (a) Les mots commençant par ab. Expression rationnelle : ab(a+b)∗ .
(b) Les mots finissant par aba. Expression rationnelle : (a+b)∗ aba.
(c) Les mots dont l’antépénultième lettre est un a. Expression rationnelle : (a+b)∗ a(a+b)2 .
(d) Les mots dont le nombre de a et le nombre de b sont égaux modulo 3. Pas d’expression
rationnelle simple.
3.
4.
5. On inverse le sens des flèches, et on échange les états finaux et les états initiaux. Pour les multiples
de 3 en base 2, on retombe sur le même automate.
6. (a) L’automate A reconnaît le langage L = (a + ba)∗ .
(b) Notons Ln l’ensemble des mots reconnus par A, et de longueur n. Soit u un mot de Ln+1 . Alors,
u = u0 a où u0 ∈ Ln+1 , ou u = u0 ba où u00 ∈ Ln . De plus, ces deux cas s’excluent mutuellement,
car u0 ba = u00 a implique que u00 termine par la lettre b. Or, aucun mot reconnu ne finit par b.
Donc, |Ln+2 | = |Ln+1 | + |Ln |. De plus, L0 = {} et L1 = {a}. On a donc, f0 = 0, f1 = 1, et
pour tout entier n, fn+2 = fn+1 + fn . fn est donc le nième nombre de Fibonacci.
7. Un automate est un quintuplet A =< Q, A, E, I, T >. L’ensemble Q = {1, 2, 3} (par exemple)
est fixé. L’alphabet A = {a, b} également. L’ensemble I est une partie de Q. On a donc 23 = 8
possibilités pour I. Il en est de même pour T . Enfin, E est une partie de Q × A × Q, qui est de
cardinal 18. Il y a donc 218 possibilités pour E. On a donc au total 218 × 23 × 23 = 224 = 16777216
automates possibles.
8. Le langage des multiples de 8 en base 2 est simplement L = (0 + 1)∗ 000.
9. (a)
(b) Soit u = x0 . . . xn un mot de A∗ . Le mot u est reconnu par A et par A0 si et seulement si
u est la trace d’un calcul réussi dans A : q0 → q1 → . . . → qn et d’un calcul réussi dans
A0 : q00 → q10 → . . . → qn0 . Ceci équivaut à dire que u est la trace du calcul réussi dans
A × A0 : (q0 , q00 ) → . . . → (qn , qn0 ).
(c) Si les automates sont déterministes complets, on considère l’automate B identique à A×A0 , sauf
que l’on prend pour états finals de B les couples (q, q 0 ) tels que q ∈ T ou q 0 ∈ T 0 . L’automate B
reconnaît la réunion des langages reconnus par A et A0 (adapter la démonstration de la question
précédente, sachant que dorénavant il y a existence et unicité des calculs, ou alors introduire
des fonctions de transition). Si on prend pour états finals de B l’ensemble des couples (q, q 0 )
tels que q ∈ T et q 0 6∈ T 0 , alors B reconnaît la différence des langages reconnus par A et A0 .
10. (a) Un automate déterministe sur l’alphabet {a} est formé d’une suite “linéaire” d’une ou plusieurs
transitions, suivies d’un cycle final. Plus formellement A =< {0, . . . , r + p − 1}, A, δ, 0, T > où
la fonction de transition est définie par δ(0, a) = 1, δ(1, a) = 2, . . ., δ(r + p − 1, a) = r (faire un
dessin). L’état r correspond à l’entrée dans le cycle, et l’entier p est la longueur du cycle.
(b) Notons encore δ le prolongement de la fonction de transition à l’ensemble des mots. On a pour
0 ≤ n ≤ r, δ(0, an ) = n. Puis, pour tout n ≥ r, on a δ(0, an ) = r+((n−r) mod p). Considérons
maintenant un état final q de l’automate. Si q < r, on a δ(0, an ) = q si et seulement si n = q.
Si, au contraire, q ≥ r, on a δ(0, an ) = q si et seulement si r + ((n − r) mod p) = q. Ceci
peut encore s’écrire q − r = n − r mod p, ou encore q = n mod p c’est-à-dire n ≡ q mod p.
Ainsi, si l’on note F = {aq , q ∈ T, q < r} et {i1 , . . . , ik } les états finals de l’automate qui sont
supérieurs à r, le langage reconnu par l’automate est bien F ∪ G où G est défini comme dans
l’énoncé.