Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
Theoreme de Kleene
Un ensemble est rationnel si et seulement s’il est reconnaissable.
36/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
Reconnaissable ) rationnel
Nous voulons montrer que pour tout automate, on peut calculerune expression rationnelle decrivant le langage reconnu. Plusieursalgorithmes existent pour cela :
Algorithme de Mc Naughton et Yamada (algorithmehistorique),
Algorithme d’elimination d’etats,
Lemme d’Arden.
37/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
L’algorithme par elimination d’etats
Dans cette partie (et uniquement cette partie), nous utilisonsdes automates generalises pour lesquels les etiquettes destransitions sont des langages (et non des lettres).
Si (p, q) est un couple d’etats d’un automate generalise, nousnoterons Lpq le langage de l’etiquette de la transition (directe)entre p et q.
38/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
Algorithme par elimination d’etats
Soit Aut =<A,Q 0 = Q [ {d} [ {f }, {d}, {f }, �> un automateasynchrone normalise.
Tant que Q est non vide, appliquer l’operation suivanted’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, Lpq, q) entre p et q d’une part etune transition directe (q, Lqr , r) entre q et r d’autre part,
•Ajouter une transition (p, Lpqr , r) entre p et r avec
Lpqr = Lpr [ Lpq.L⇤qq.Lqr . Puis Lpqr devient Lpr .
I Supprimer l’etat q et toutes les transitions dont q etait uneextremite.
Quand l’operation precedente est achevee, Q est vide doncl’automate ne contient plus que les deux etats d et f , qui sontrelies par une transition dont l’etiquette est le langage reconnupar l’automate de depart Aut.
39/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
Exemple : calcul du langage de Aut
Aut :
1 2a,b 3a
b
40/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 1 : normalisation de Aut
Aut normalise :
1 2a,b 3a
b
fɛd ɛ
41/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
On peut eliminer les etats dans l’ordre que l’on souhaite.
1 2a,b 3a
b
fɛd ɛ
Suppression de l’etat 2 : il faut calculer L123
et L323
.
42/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
On peut eliminer les etats dans l’ordre que l’on souhaite.
1 2a,b 3a
b
fɛd ɛ
Suppression de l’etat 2 : il faut calculer L123
et L323
.
L123
= L13
[ L12
.L⇤22
.L23
= ; [ (a+ b)."⇤.a= (a+ b)a
42/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
On peut eliminer les etats dans l’ordre que l’on souhaite.
1 2a,b 3a
b
fɛd ɛ
Suppression de l’etat 2 : il faut calculer L123
et L323
.
L123
= L13
[ L12
.L⇤22
.L23
= ; [ (a+ b)."⇤.a= (a+ b)a
L323
= L33
[ L32
.L⇤22
.L23
= ; [ b."⇤.a= ba
42/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
On peut eliminer les etats dans l’ordre que l’on souhaite.
1 2a,b 3a
b
fɛd ɛ
Suppression de l’etat 2 : il faut calculer L123
et L323
.
L123
= L13
[ L12
.L⇤22
.L23
= ; [ (a+ b)."⇤.a= (a+ b)a
L323
= L33
[ L32
.L⇤22
.L23
= ; [ b."⇤.a= ba
1 2a,b 3a
b
fɛd ɛ
(a+b)a42/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
On peut eliminer les etats dans l’ordre que l’on souhaite.
1 2a,b 3a
b
fɛd ɛ
Suppression de l’etat 2 : il faut calculer L123
et L323
.
L123
= L13
[ L12
.L⇤22
.L23
= ; [ (a+ b)."⇤.a= (a+ b)a
L323
= L33
[ L32
.L⇤22
.L23
= ; [ b."⇤.a= ba
1 2a,b 3a
b
fɛd ɛ
(a+b)a
ba
42/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
On peut eliminer les etats dans l’ordre que l’on souhaite.
1 2a,b 3a
b
fɛd ɛ
Suppression de l’etat 2 : il faut calculer L123
et L323
.
L123
= L13
[ L12
.L⇤22
.L23
= ; [ (a+ b)."⇤.a= (a+ b)a
L323
= L33
[ L32
.L⇤22
.L23
= ; [ b."⇤.a= ba
1 3 fɛd ɛ
(a+b)a
ba
42/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
1 3 fɛd ɛ (a+b)a
ba
Suppression de l’etat 1 : il faut calculer Ld13.
43/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
1 3 fɛd ɛ (a+b)a
ba
Suppression de l’etat 1 : il faut calculer Ld13.
Ld13 = Ld3 [ Ld1.L⇤11
.L13
= ; [ "."⇤.(a+ b)a= (a+ b)a
43/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
1 3 fɛd ɛ (a+b)a
ba
Suppression de l’etat 1 : il faut calculer Ld13.
Ld13 = Ld3 [ Ld1.L⇤11
.L13
= ; [ "."⇤.(a+ b)a= (a+ b)a
1 3 fɛd ɛ (a+b)a
ba
(a+b)a
43/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
1 3 fɛd ɛ (a+b)a
ba
Suppression de l’etat 1 : il faut calculer Ld13.
Ld13 = Ld3 [ Ld1.L⇤11
.L13
= ; [ "."⇤.(a+ b)a= (a+ b)a
3 fɛd
ba
(a+b)a
43/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
3 fɛd
ba
(a+b)a
Suppression de l’etat 3 : il faut calculer Ld3f .
44/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
3 fɛd
ba
(a+b)a
Suppression de l’etat 3 : il faut calculer Ld3f .
Ld3f = Ldf [ Ld3.L⇤33
.L3f
= ; [ (a+ b)a.(ba)⇤."= (a+ b)a(ba)⇤
44/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
3 fɛd
ba
(a+b)a
Suppression de l’etat 3 : il faut calculer Ld3f .
Ld3f = Ldf [ Ld3.L⇤33
.L3f
= ; [ (a+ b)a.(ba)⇤."= (a+ b)a(ba)⇤
3 fɛd
ba
(a+b)a
(a+b)a(ba)*
44/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
´
Etape 2 : elimination successive des etats
3 fɛd
ba
(a+b)a
Suppression de l’etat 3 : il faut calculer Ld3f .
Ld3f = Ldf [ Ld3.L⇤33
.L3f
= ; [ (a+ b)a.(ba)⇤."= (a+ b)a(ba)⇤
fd(a+b)a(ba)*
Le langage reconnu par l’automate Aut est (a+ b)a(ba)⇤.
44/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
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 langagereconnu par un automate.
1. Etant donne un automate L, on note Li l’ensemble des motsreconnus par l’automate obtenu en ne prenant que l’etat icomme etat initial.
2. Ecriture d’un systeme d’equations (sur les langages) :I L =
Si2D Li
I Li =S
(i,a,j)2� aLj si i n’est pas terminalI Li = {"} [
S(i,a,j)2� aLj si i est terminal.
3. Resolution de l’equation en calculant a l’aide du lemmed’Arden les expressions des langages Li .
45/46
Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel
Exemple
1 2a,b 3a
b
On doit resoudre le systeme d’equations suivant :
L = L1
L1
= aL2
+ bL2
= (a+ b)L2
L2
= aL3
L3
= bL2
+ "
Resolution du systeme d’equations :
On remplace L2
par aL3
dans la derniere equation : L3
= baL3
+ "On y applique le Lemme d’Arden : L
3
= (ba)⇤" = (ba)⇤.On peut calculer L
2
: L2
= aL3
= a(ba)⇤
Et enfin L = L1
= (a+ b)L2
= (a+ b)a(ba)⇤
46/46