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é.