Th´eor`eme de Kleene
Un ensemble est rationnel si et seulement s’il est reconnaissable.
Nous voulons montrer que pour tout automate, on peut calculer une expression rationnelle d´ecrivant le langage reconnu. Plusieurs algorithmes existent pour cela :
Algorithme de Mc Naughton et Yamada (algorithme historique),
Algorithme d’´elimination d’´etats,
Lemme d’Arden.
L’algorithme par ´elimination d’´etats
Dans cette partie (et uniquement cette partie), nous utilisons des automates g´en´eralis´es pour lesquels les ´etiquettes des
transitions sont des langages (et non des lettres).
Si (p , q ) est un couple d’´etats d’un automate g´en´eralis´e, nous
noterons L pq le langage de l’´etiquette de la transition (directe)
entre p et q.
Soit Aut = < A, Q 0 = Q [ { d } [ { f } , { d } , { f } , > un automate asynchrone normalis´e.
Tant que Q est non vide, appliquer l’op´eration suivante d’´elimination d’´etat :
I
choisir un ´etat q dans Q (donc ni d ni f )
I
pour tous les couples (p, r ) d’´etats de Q
0\ { q } tels qu’il existe une transition directe (p, L
pq, q) entre p et q d’une part et
une transition directe (q, L
qr, r ) entre q et r d’autre part,
• Ajouter une transition (p, L
pqr, r ) entre p et r avec L
pqr= L
pr[ L
pq.L
⇤qq.L
qr. Puis L
pqrdevient L
pr.
I
Supprimer l’´etat q et toutes les transitions dont q ´etait une extr´emit´e.
Quand l’op´eration pr´ec´edente est achev´ee, Q est vide donc
l’automate ne contient plus que les deux ´etats d et f , qui sont
reli´es par une transition dont l’´etiquette est le langage reconnu
par l’automate de d´epart Aut .
Exemple : calcul du langage de Aut
Aut :
1 a,b 2 a 3
b
Aut normalis´e :
1 a,b 2 a 3
b
ɛ f
d ɛ
Etape 2 : ´elimination successive des ´etats ´
On peut ´eliminer les ´etats dans l’ordre que l’on souhaite.
1 a,b 2 a 3
b
ɛ f
d ɛ
Suppression de l’´etat 2 : il faut calculer L 123 et L 323 .
On peut ´eliminer les ´etats dans l’ordre que l’on souhaite.
1 a,b 2 a 3
b
ɛ f
d ɛ
Suppression de l’´etat 2 : il faut calculer L 123 et L 323 . L 123 = L 13 [ L 12 .L ⇤ 22 .L 23
= ; [ (a + b)." ⇤ .a
= (a + b)a
Etape 2 : ´elimination successive des ´etats ´
On peut ´eliminer les ´etats dans l’ordre que l’on souhaite.
1 a,b 2 a 3
b
ɛ f
d ɛ
Suppression de l’´etat 2 : il faut calculer L 123 et L 323 . L 123 = L 13 [ L 12 .L ⇤ 22 .L 23
= ; [ (a + b)." ⇤ .a
= (a + b)a
L 323 = L 33 [ L 32 .L ⇤ 22 .L 23
= ; [ b ." ⇤ .a
= ba
On peut ´eliminer les ´etats dans l’ordre que l’on souhaite.
1 a,b 2 a 3
b
ɛ f
d ɛ
Suppression de l’´etat 2 : il faut calculer L 123 et L 323 . L 123 = L 13 [ L 12 .L ⇤ 22 .L 23
= ; [ (a + b)." ⇤ .a
= (a + b)a
L 323 = L 33 [ L 32 .L ⇤ 22 .L 23
= ; [ b ." ⇤ .a
= ba
1 a,b 2 a 3
b
ɛ f
d ɛ
(a+b)a
Etape 2 : ´elimination successive des ´etats ´
On peut ´eliminer les ´etats dans l’ordre que l’on souhaite.
1 a,b 2 a 3
b
ɛ f
d ɛ
Suppression de l’´etat 2 : il faut calculer L 123 et L 323 . L 123 = L 13 [ L 12 .L ⇤ 22 .L 23
= ; [ (a + b)." ⇤ .a
= (a + b)a
L 323 = L 33 [ L 32 .L ⇤ 22 .L 23
= ; [ b ." ⇤ .a
= ba
b ba
On peut ´eliminer les ´etats dans l’ordre que l’on souhaite.
1 a,b 2 a 3
b
ɛ f
d ɛ
Suppression de l’´etat 2 : il faut calculer L 123 et L 323 . L 123 = L 13 [ L 12 .L ⇤ 22 .L 23
= ; [ (a + b)." ⇤ .a
= (a + b)a
L 323 = L 33 [ L 32 .L ⇤ 22 .L 23
= ; [ b ." ⇤ .a
= ba
1 3 f
d ɛ
ɛ
(a+b)a
ba
Etape 2 : ´elimination successive des ´etats ´
1 3 f
d ɛ
ɛ (a+b)a
ba
Suppression de l’´etat 1 : il faut calculer L d 13 .
1 3 f d ɛ
ɛ (a+b)a
ba
Suppression de l’´etat 1 : il faut calculer L d 13 . L d 13 = L d 3 [ L d 1 .L ⇤ 11 .L 13
= ; [ "." ⇤ .(a + b)a
= (a + b)a
Etape 2 : ´elimination successive des ´etats ´
1 3 f
d ɛ
ɛ (a+b)a
ba
Suppression de l’´etat 1 : il faut calculer L d 13 . L d 13 = L d 3 [ L d 1 .L ⇤ 11 .L 13
= ; [ "." ⇤ .(a + b)a
= (a + b)a
ba
1 3 f d ɛ
ɛ (a+b)a
ba
Suppression de l’´etat 1 : il faut calculer L d 13 . L d 13 = L d 3 [ L d 1 .L ⇤ 11 .L 13
= ; [ "." ⇤ .(a + b)a
= (a + b)a
3 f
d ɛ
ba
(a+b)a
Etape 2 : ´elimination successive des ´etats ´
3 f
d ɛ
ba
(a+b)a
Suppression de l’´etat 3 : il faut calculer L d 3f .
3 f d ɛ
ba
(a+b)a
Suppression de l’´etat 3 : il faut calculer L d 3f . L d 3f = L df [ L d3 .L ⇤ 33 .L 3f
= ; [ (a + b )a.(ba) ⇤ ."
= (a + b)a(ba) ⇤
Etape 2 : ´elimination successive des ´etats ´
3 f
d ɛ
ba
(a+b)a
Suppression de l’´etat 3 : il faut calculer L d 3f . L d 3f = L df [ L d3 .L ⇤ 33 .L 3f
= ; [ (a + b )a.(ba) ⇤ ."
= (a + b)a(ba) ⇤
ba
3 f d ɛ
ba
(a+b)a
Suppression de l’´etat 3 : il faut calculer L d 3f . L d 3f = L df [ L d3 .L ⇤ 33 .L 3f
= ; [ (a + b )a.(ba) ⇤ ."
= (a + b)a(ba) ⇤
d f
(a+b)a(ba)*
Le langage reconnu par l’automate Aut est (a + b)a(ba) ⇤ .
Lemme d’Arden
Lemme d’Arden Soient K , L, X trois langages tels que " 62 K . Si X = KX + L alors X = K ⇤ L.
(i.e. K ⇤ L est l’unique solution de l’´equation X = KX + L.)
Utilisation pour le calcul d’une expression rationnelle du langage reconnu par un automate.
1. Etant donn´e un automate ´ L, on note L i l’ensemble des mots reconnus par l’automate obtenu en ne prenant que l’´etat i comme ´etat initial.
2. Ecriture d’un syst`eme d’´equations (sur les langages) : ´
I
L = S
i2D
L
iI
L
i= S
(i,a,j)2