Polytech Paris Sud - ET4 Année 2018-2019
Informatique Théorique : Automates
TD n ◦ 2
Semaine du 24 septembre
Les exercices avec un trèe (♣) doivent être faits dans la séance de TD. Les exercices avec un pique (♠) sont plus diciles et ne seront pas traités en priorité dans la séance.
Construction d'automates déterministes
Exercice 1. (♣) On considère dans cet exercice l'alphabetA={0,1}. Pour chacune des questions de1 à4, donner un automate déterministe accessible complet qui reconnaît le langage décrivant :
1. l'ensemble des mots de A∗ dans lesquels tout0 est toujours immédiatement suivi d'un1;
2. l'ensemble des mots de A∗ avec au moins une occurrence du mot0101; 3. l'ensemble des mots de A∗ qui se terminent par0101;
4. l'ensemble des mots de A∗ dans lesquels toute occurrence de0 est immédiatement suivie d'un 1et qui n'ont aucune occurrence de 0101.
Démonstration. 1.
1
start 2 P
1
0
1
0
0,1
2.
1
start 2 3 4 5
1
0 1 0 1
0,1 0
1
0
3.
1
start 2 3 4 5
1
0 1 0 1
0 1
0
1
0
4. On veut faire l'intersection du langage de la question 1 et le complément de la question 2 (qui s'obtient en inversant état terminaux et non terminaux car on a un automate complet). La construction est la suivante :
start 1 2 3 4 5
1
0 1 0 1
0,1 0
1
0
start 1,1 2,1 3,1 4,1 5,1
1,2 2,2 3,2 4,2 5,2
1,P 2,P 3,P 4,P 5,P
1
0
0
1 0
1
0
1
1
0 1
0
0,1 0
1
0 1 0 1
1
0 start 1
2
P 1
0 1
0
0,1
Exercice 2 (Division par3). (♠)
1. Construisez un automate déterministe ni qui reconnaît l'ensemble des représen- tations binaires des entiers positifs divisibles par 3, en lisant de la gauche vers la droite.
2. Construisez un automate déterministe ni qui reconnaît l'ensemble des représenta- tions décimales (lues de la gauche vers la droite ou droite vers gauche) des entiers positifs divisibles par3.
Démonstration. 1. Pour gauche vers la droite, pensez que décaler correspond à mul- tiplier par2. Donc décaler et trouver 0 multiplie par2, décaler et lire1 consiste à faire×2 + 1.
≡0[3]
start ≡1[3] ≡2[3]
1 0
1 0
0 1
droite vers gauche ? ?
2. On utilise là encore les congruences modulo 3, le sens de lecture n'a pas d'impor- tance comme10≡1[3]donc seul le chire est important et non la puissance (règle de primaire).
≡0[3]
start ≡1[3] ≡2[3]
1,4,7 1,4,7
1,4,7
2,5,8 2,5,8
2,5,8
0,3,6,9 0,3,6,9 0,3,6,9
Déterminisation d'automates asynchrones
Exercice 3. (♣) Déterminiser et compléter l'automate asynchrone hA, Q, q0, F, δi sui- vant :
A={a, b}
Q={0,1,2,3,4,5}
q0 = 0 F ={4}
δ={(0, ε,1); (0, ε,5); (1, a,2); (1, b,1); (2, b,3); (3, a,4); (5, b,3)}
Démonstration. Etat initial :
start 0 1 2 3 4
5 ε
ε
a b a
b
b
Après déterminisation etcomplétion :
0,1,5
start 1,3
2 3 4
b
a
b
a b 1
b
a
2,4 a
b P
a
a
b a, b
Exercice 4. Déterminiser l'automate asynchronehA, Q, q0, F, δi suivant : A={a, b}
Q={0,1,2,3,4,5,6,7,8,9,10}
q0 = 0 F ={10}
δ={(0, ε,1); (1, ε,2); (2, a,3); (3, ε,6); (1, ε,4); (4, b,5); (5, ε,6); (0, ε,6); (6, ε,1);
(6, ε,7); (7, a,8); (8, b,9); (9, b,10)}
Démonstration. Etat initial :
start 0 1 2 3 6
4 5
7 8 9 10
ε ε a ε
ε
b
ε ε
ε
ε a b b
Déterminisation (conseil : regarder uniquement les transitions qu'on essaie de faire, par exemple b. Voir qu'à partir d'une transitionbon a5si on avait4,9si on avait8,10si on avait9et ensuite prendre lesε-clôtures. On mets en gras ceux qui génèrent parε-clôture les états.)
0,1,2,4,6,7
start 1,2,3,4,6,7,8
1,2,4,5,6,7
1,2,4,5,6,7,9 1,2,4,5,6,7,10 a
b a
a
b a
b
b a
Expression rationnelle associée à un automate
Exercice 5. (♣) Pour chacun des automates déterministes sur l'alphabet{a, b}suivants, déterminer le système d'équations linéaires droites associé, le résoudre par élimination et utilisation du lemme d'Arden et en déduire une expression rationnelle du langage qu'il reconnaît :
1.
1
start 2
a b
a, b
2.
1
start 2
a
b
b
a
Démonstration. On rappelle que
X=eX +f a pour solution (unique siε /∈e) X =e∗f On ajoute +εaux états terminaux
le langage obtenu se fait à partir de l'état initial
Les états non co-accessibles ne sont pas pris en compte 1. On a le système
X1 = aX1+bX2
X2 = (a+b)X2+ε d'oùX2 = (a+b)∗. AinsiX1=aX1+b(a+b)∗ =a∗b(a+b)∗
2. On a le système
X1 = aX1+bX2+ε
X2 = aX2+bX1 On peut d'abord calculer en passant parX1 ou en passant par X2 :
a. X1 =aX1+ (bX2+ε) =a∗(bX2+ε).
D'où en réinsérant : X2 =aX2+bX1 = (a+ba∗b)X2+ba∗ = (a+ba∗b)∗ba∗. FinalementX1 =a∗((a+ba∗b)∗ba∗+ε).
b. De même X2 =aX2+bX1=a∗bX1 d'oùX1 = (a+ba∗b)X1+ε= (a+ba∗b)∗.
Exercice 6. Pour chacun des automates sur l'alphabet{a, b} ci-dessous construits dans l'exercice6du TD1, dériver, par la même méthode, une expression rationnelle du langage qu'il reconnaît.
1.
1
start 2 3
a b a
b a, b
2.
1
start 2 3
a b a
b a, b
3.
1
start 2 3
4
5 a
b a
b
b a b
a, b
a
4.
start 1 2
a, b
a, b
Démonstration. On applique la même méthode, on fait attention aux états co-accessibles ! 1. Correspond à {w∈A∗|w ne contient aucune occurrence de la chaînebb}
Calcul :(a+ba)∗(ε+b)
2. Correspond à {w∈A∗|w contient au moins une occurrence de la chaîne bb}
Intuition : (a+ba)∗bb(a+b)∗.
Calcul :(a+ba)∗bb(a+b)∗ ou encore :a∗b(aa∗b)∗b(a+b)∗.
3. Correspond à {w∈A∗|w contient exactement une occurrence de la chaîne bb}
Intuition :a∗b(aa∗b)∗b(a∗b)∗a∗ ou(a∗+a∗ba)∗bb(aba∗+a)∗ou(ba+a)∗bb(ab+a)∗. Calcul :a∗b(aa∗b)∗b(aa∗b)∗(ε+aa∗)
4. Correspond à {w∈A∗| les nombres deaet de bont même parité dans w}
Calcul :((a+b)2)∗
Constructions abstraites d'automates
Exercice 7 (Shue). (♠) Pour toute paire de mots(u, v), on appelle mélange de uetv le langageuv déni comme suit :
uv ={u1v1u2v2. . . unvn | n∈N, u=u1. . . un etv=v1. . . vn} où lesui et les vi sont des mots éventuellement vides. Par exemple,
abcd={abcd, acbd, cabd, acdb, cadb, cdab}.
Pour deux langagesL etK leur mélange est le langageLK suivant : LK :={w|w=uv, u∈L, v ∈K}.
1. Donner une expression rationnelle du langage(ab)∗{c}.
2. Montrer que si L, K sont reconnus par deux automates, alors on peut aussi construire un automate qui reconnaît le langage LK.
Indice:
fairedes pairesd'états,
etun automatenon
déterministe
Démonstration. 1. (ab)∗{c}= (ab)∗c(ab)∗∪(ab)∗acb(ab)∗.
2. SoitA1= (Q1, A, I1, F1, E1)un automate reconnaissantLetA2= (Q2, A, I2, F2, E2) un automate reconnaissant K. On dénit l'automate suivant :
A:= (Q1×Q2, A, I1×I2, F1×F2, T), oùT est déni par :
T := {(q1, q2)−→a (q10, q2) | (q1, q2)∈Q1×Q2, a∈A, q1−→a q01∈E1}
∪ {(q1, q2)−→a (q1, q20) | (q1, q2)∈Q1×Q2, a∈A, q2 a
−→q02∈E2}.
Cet automate convient.
Exercice 8 (Racine). (♠) PourL un langage on dénit :
√
L:={w|w·w∈L}.
Montrer que si L est reconnu par un automate déterministe complet, alors on peut construire un automate qui reconnaît le langage √
L.
Indice:
ilfaut essayer desuiv re simultanémen tl'action
dec haquegénérateur surc
haqueé tat
Démonstration. Soit A = (Q, A,{q0}, F, E) un automate reconnaissant L. Et on note q0, . . . , qn sesn+ 1états. On dénit alors l'automate :
A0 := (Qn+1, A,{(q0, q1, . . . , qn)}, F0, E0),
où E0 est déni par
E0 ={(p0, . . . , pn)−→a (p00, . . . , p0n) | (p0, . . . , pn)∈Qn+1, a∈A,(p0
−a
→p00, . . . , pn
−a
→p0n)∈En+1}.
Ses états naux sont de la forme (p0, . . . , pn) où, siiest l'indice deqi tel que p0=qi, on api∈F.
Le langage est bien le bon, en eet un mot u nous amène dans un état nal si q0·u=p0=qi et alorsqi·u=pi∈F donc q0·(uu)∈F.
Autre proposition (par Evangelos) : les états sont Q3. On devine au début qui va être la racine et on suit l'évolution à partir deq0 et de cet état. Ainsi un triplet décrit le chemin depuisq0, le guess initial, le chemin depuis le guess. Le guess ne change pas dans les transitions. Celui-ci est non-déterministe.