th´eor`eme de kleene un ensemble est rationnel si …leve/enseign/lf1415/...th´eor`eme de kleene...

22
Th´ eor` eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Th´ eor` eme de Kleene Un ensemble est rationnel si et seulement s’il est reconnaissable. 36/46

Upload: others

Post on 24-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel

Theoreme de Kleene

Un ensemble est rationnel si et seulement s’il est reconnaissable.

36/46

Page 2: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 3: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 4: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 5: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel

Exemple : calcul du langage de Aut

Aut :

1 2a,b 3a

b

40/46

Page 6: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

Theoreme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel

´

Etape 1 : normalisation de Aut

Aut normalise :

1 2a,b 3a

b

fɛd ɛ

41/46

Page 7: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 8: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 9: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 10: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 11: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 12: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 13: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 14: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 15: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 16: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 17: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 18: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 19: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 20: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 21: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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

Page 22: Th´eor`eme de Kleene Un ensemble est rationnel si …leve/Enseign/LF1415/...Th´eor`eme de Kleene Rationnel ) Reconnaissable Emondage Reconnaissable ) rationnel Lemme d’Arden Lemme

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