5. SoitA={a, b, c}, considérons l’expression rationnelle (a|bc)∗.
(a) Utiliser la méthode vue en cours5 pour construire un automate fini reconnaissant le même langage.
Solution:
1
start 2 3 4 5
6 7 8 9
a
b c
(b) Éliminer les -transitions6. Solution:
On donne+ : 1 → 2 , 3 , 6 2 → 3 , 6
4 → 5 , 1 , 2 , 3 , 6 5 → 1 , 2 , 3 , 6 7 → 8
9 → 5 , 1 , 2 , 3 , 6
Solution:
δ0 a b c 1 (i/f) 4 7
2 4 7
3 4
4 (f) 4 7 5 (f) 4 7
6 7
7 9
8 9
9 (f) 4 7 (i)→ État initial
(f)→ État final
On remarque que les états 2, 3, 5, 6 et 8 ne sont plus accessibles. Ils ne sont donc plus utiles et on peut les retirer.
Solution:
5. poly_LangagesRationnels p.18 6. poly_LangagesRationnels p.7
5
1
start 4
7 9
a
b a
b ac
b (c) Déterminiser l’automate résultant.
Solution: On a de la chance (mais ce n’est pas nécessairement le cas) : on peut vérifier facilement que l’automate est déjà déterministe.
(d) Compléter7 puis minimiser8 l’AFD.
Solution:
1,4,9
start 7 0
a
b c
a, b c
a, b, c
7. poly p.6 8. poly p.10
6