Université Paris Diderot – HE01LI – 15/16 corrigé C.C. n◦1
En appliquant l’algorithme de séparation des classes d’états, qui commence avec les
deux classes {1,2}et {3,4}, on aboutit à un point fixe avec trois classes : {1},{2}
et {3,4}. L’automate minimal est l’automate obtenu en fusionnant les états 3 et 4.
Le langage reconnu peut être décrit par l’expression rationnelle
c∗b|a(a|b)∗c(a|b|c)∗
3. Soit l’expression rationnelle (abc)∗c(c∗b|ε).
(a) Proposer un automate reconnaissant le même langage, en appliquant rigoureusement
l’algorithme vu en cours
L’algorithme vu en cours consiste à associer à chaque symbole un automate élé-
mentaire, et à associer à chaque opération rationnelle (produit, union, étoile)
la construction d’un automate en introduisant des ε-transitions. Voici ce que
donne l’application rigoureuse de l’algorithme vu en cours. En noir les auto-
mates élémentaires, en rouge les ε-transitions ajoutées par un produit, en orange
les ε-transitions ajoutées par une étoile de Kleene, et en bleu les ε-transitions
venant d’une union.
1
2
ε
3
a
4
ε
5
b
6
ε
7
c
ε11 12
ε
13
b
14
ε
15
c
8
ε
9
c
10
ε
16 17
ε
ε
ε
ε
(b) Éliminer les ε-transitions (on pourra commencer par éliminer les ε-transitions les plus
faciles à éliminer avant d’utiliser l’algorithme général).
On pouvait bien sûr appliquer l’algorithme vu
en cours à cet automate, ce qui est un peu
fastidieux, ou, comme suggéré dans l’énoncé,
éliminer « à la main » les ε-transitions les
plus faciles à éliminer, avant d’appliquer l’al-
gorithme, voire tenter d’enlever à la main
toutes les ε-transitions ; dans tous les cas il
est judicieux de vérifier que l’automate ré-
sultant vous semble bien reconnaître le lan-
gage initialement donné. Ici, l’automate sans
ε-transition peut finalement ressembler à ça :
b
a
c
c b
cb
c
2