• Aucun résultat trouvé

Ann´ee2017-2018 FlorenceLev´e Th´eoriedesLangagesFormelsChapitre3:Th´eor`emedeKleene

N/A
N/A
Protected

Academic year: 2022

Partager "Ann´ee2017-2018 FlorenceLev´e Th´eoriedesLangagesFormelsChapitre3:Th´eor`emedeKleene"

Copied!
81
0
0

Texte intégral

(1)

Th´ eorie des Langages Formels Chapitre 3 : Th´ eor` eme de Kleene

Florence Lev´ e

Florence.Leve@u-picardie.fr

Ann´ ee 2017-2018

(2)

Th´ eor` eme de Kleene

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

(3)

Rationnel ⇒ Reconnaissable

Pour montrer que tout langage rationnel est reconnaissable,

nous donnons un algorithme (r´ ecursif) permettant d’associer ` a

tout langage rationnel (au moins) un automate asynchrone

normalis´ e.

(4)

Automates asynchrones

Une g´ en´ eralisation des automates

I

Un ”automate asynchrone” peut ne pas ˆ etre un ”automate”.

I

Un ”automate” est un ”automate asynchrone”.

LA diff´ erence = dans un automate asynchrone, possibilit´ e d’ajouter des transitions par le mot vide.

Exemple :

ε

1 a 2 3 4

b ε

ε = mot vide ; pas une lettre de l’alphabet !

Utilit´ e : plus faciles ` a manipuler.

(5)

D´ efinition automate asynchrone

5-uplet < A, Q, D, F , δ > o` u A : alphabet d’entr´ ee ;

Q : ensemble d’´ etats de l’automate ; D ⊆ Q : ensemble des ´ etats de d´ epart ; F ⊆ Q ensemble des ´ etats terminaux ;

δ ⊆ Q × A ∪{ε} × Q ensemble de transitions.

(ε-transition = transition ´ etiquet´ ee par ε) Exemple :

ε

1 a 2 3 4

b ε

A = {a, b}, Q = {1, 2, 3, 4}, D = {1}, F = {4},

(6)

Chemins et mots reconnus

Mˆ emes d´ efinitions dans un automate asynchrone que dans un automate (sans ε-transition)

Chemin (non vide) d’un ´ etat p ` a un ´ etat q

= suite de transitions (q

0

, a

1

, q

1

)(q

1

, a

2

, q

2

) . . . (q

n−1

, a

n

, q

n

) avec q

0

= p, q

n

= q (et (n ≥ 1)) (et a

i

lettre ou ε)

Mot ´ etiquette = a

1

. . . a

n

(enlever les ε) Chemin vide.

Exemple :

ε

1 a 2 3 4

b ε

(1, a, 2), (2, ε, 3)(3, b, 4), (4, ε, 3) chemin d’´ etiquette

aεbε = ab

(7)

Automate normalis´ e

Un automate Aut (asynchrone ou sans ε-transition) est normalis´ e s’il v´ erifie :

I

il a un et un seul ´ etat initial.

I

il n’a pas de transitions aboutissant dans l’´ etat initial.

I

il a un et un seul ´ etat terminal,

diff´erent de l’´etat initial.

I

il ne poss` ede pas de transitions issues de l’´ etat terminal.

Exemples

I <A,{1,

2},

{1},{2},∅>

reconnaissant

∅.

1 2

I <A,{1,

2},

{1},{2},{(1, ε,

2)}

>

reconnaissant

{ε}.

1 ɛ 2

I

Si

a

lettre,

<A,{1,

2},

{1},{2},{(1,a,

2)}

>

reconnaˆıt

{a}.

1 a 2

(8)

Normalisation d’un automate asynchrone

Lemme Pour tout automate asynchrone, il existe un automate asynchrone normalis´ e ´ equivalent.

Plus pr´ ecis´ ement, ´ etant donn´ es :

un automate asynchrone Aut =< A, Q, D, F , δ >

deux ´ etats d et f n’appartenant pas ` a Q Consid´ erons l’automate Aut

0

=

< A, Q∪{d , f }, {d }, {f }, δ∪{(d , ε, q) | q ∈ D}∪{(q, ε, f ) | q ∈ F } >

Aut

0

est un automate asynchrone normalis´ e ´ equivalent ` a Aut.

(9)

Exemple

1 a 2

3 b

1 a 2

3 0 b

ɛ ɛ

4 ɛ

ɛ

(10)

Union de deux automates

L’union de deux langages reconnaissables est encore un langage reconnaissable :

Proposition Soit A un alphabet. La famille Rec (A

) est ferm´ ee (close) par union.

Lemme Soient :

Aut

1

=< A

1

, Q

1

, {d

1

}, {f

1

}, δ

1

> un automate asynchrone normalis´ e reconnaissant le langage L

1

,

Aut

2

=< A

2

, Q

2

, {d

2

}, {f

2

}, δ

2

> un automate asynchrone normalis´ e reconnaissant le langage L

2

,

d et f des ´ etats n’appartenant ni ` a Q

1

, ni ` a Q

2

. Supposons Q

1

∩ Q

2

= ∅ et consid´ erons l’automate Aut =

< A

1

∪ A

2

, Q

1

∪ Q

2

∪ {d , f }, {d }, {f },

δ

1

∪ δ

2

∪ {(d , ε, d

1

), (d , ε, d

2

), (f

1

, ε, f ), (f

2

, ε, f )} >

Cet automate Aut est un automate asynchrone normalis´ e

reconnaissant le langage L ∪ L .

(11)

Exemple : automates ` a unir

Aut1 :

1 c 2

a,b

Aut2 :

1 b 2

a

b 3 a

ɛ

3

(12)

Etape 1 : normalisation ´

Aut1 :

1 c 2

a,b

d ɛ f

ɛ

Aut2 :

1 b 2

a

b 3 a

ɛ

4

d ɛ ɛ f

ɛ

(13)

Etape 2 : renum´ ´ erotation des ´ etats

Aut1 :

2 c 3

a,b

1 ɛ 4

ɛ

Aut2 :

6 b 7

a

b 8 a

ɛ

9

5 ɛ ɛ 10

ɛ

(14)

Etape 3 : union ´

Aut :

6 b 7

a

b 8 a

ɛ

9

2 c 3

a,b

1 ɛ 4

ɛ

5 ɛ ɛ 10

ɛ

d f

ɛ

ɛ ɛ

ɛ

(15)

Produit de deux automates

Le produit de deux langages reconnaissables est encore un langage reconnaissable :

Proposition Soit A un alphabet. La famille Rec (A

) est ferm´ ee par produit.

Lemme Soient :

Aut

1

=< A

1

, Q

1

, {d

1

}, {f

1

}, δ

1

> un automate asynchrone normalis´ e reconnaissant le langage L

1

,

Aut

2

=< A

2

, Q

2

, {d

2

}, {f

2

}, δ

2

> un automate asynchrone normalis´ e reconnaissant le langage L

2

,

Supposons Q

1

∩ Q

2

= ∅ et consid´ erons l’automate

Aut =< A

1

∪ A

2

, Q

1

∪ Q

2

, {d

1

}, {f

2

}, δ

1

∪ δ

2

∪ {(f

1

, ε, d

2

)} >

Cet automate Aut est un automate asynchrone normalis´ e

(16)

Exemple : automates ` a concat´ ener (normalis´ es et renum´ erot´ es)

Aut1 :

2 c 3

a,b

1 ɛ 4

ɛ

Aut2 :

6 b 7

a

b 8 a

ɛ

9

5 ɛ ɛ 10

ɛ

(17)

Etape 3 : produit ´

Aut :

6 b 7

a

b 8 a

ɛ

9

2 c 3

a,b

1 ɛ ɛ 4

5 ɛ ɛ 10

ɛ ɛ

(18)

Etoile d’un automate ´

L’´ etoile d’un langage reconnaissable est encore un langage reconnaissable :

Proposition Soit A un alphabet. La famille Rec (A

) est ferm´ ee par

´ etoile.

Lemme Soient :

Aut =< A, Q , {d }, {f }, δ > un automate asynchrone normalis´ e reconnaissant L,

d

0

et f

0

deux ´ etats distincts n’appartenant pas ` a Q.

Consid´ erons l’automate AutEt =

< A, Q ∪ {d

0

, f

0

}, {d

0

}, {f

0

},

δ ∪ {(d

0

, ε, d ), (f , ε, f

0

), (f , ε, d ), (d

0

, ε, f

0

)} >

Cet automate AutEt est un automate asynchrone normalis´ e

reconnaissant L

.

(19)

Exemple : ´ etoile de Aut1 (normalis´ e)

Aut1 :

2 c 3

a,b

1 ɛ 4

ɛ

Etoile de Aut1 : ´

2 c 3

a,b

1 ɛ ɛ 4

d' ɛ

ɛ f '

ɛ ɛ

(20)

Algorithme de Thompson

Donn´ ee : une expression rationnelle E

R´ esultat : un automate Aut asynchrone normalis´ e reconnaissant L(E)

Si E est ∅, {ε} ou {a} pour une lettre a, alors le r´ esultat Aut est l’automate correspondant d´ ecrit dans les premiers exemples de ce chapitre.

Sinon E = F + G , E = FG ou E = F

:

construire un automate normalis´ e asynchrone reconnaissant L(F ) par l’algorithme de Thomson,

(si n´ ecessaire) construire un automate normalis´ e asynchrone reconnaissant L(G ) par l’algorithme de Thomson,

utiliser selon le cas un des trois lemmes pr´ ec´ edents pour

calculer Aut .

(21)

Rationnel ⇒ Reconnaissable

On a montr´ e que pour tout langage rationnel, on peut construire un automate asynchrone normalis´ e reconnaissant ce langage.

Il nous reste ` a montrer que pour tout automate asynchrone

normalis´ e, il existe un automate fini ´ equivalent (c’est-` a-dire

reconnaissant le mˆ eme langage).

(22)

Suppression des ε-transitions

Tout automate fini est un automate asynchrone.

La r´ eciproque est fausse.

Mais ´ etant donn´ e un automate asynchrone, peut-on construire un automate (sans ε-transition) ´ equivalent ?

I

Oui !

I

Id´ ee de base = ` a chaque fois qu’il y a trois ´ etats p, r, q et une lettre

α

tels que

• il existe un chemin d’´etiquette vide dep`ar

• il existe une transition (r, α,q),

Ajouter (p, α,

q)

Puis supprimer les

ε-transitions.

I

Exemple :

5

1 a 2 3 4

b ε

ε

a ε

ε ε

(23)

Suppression des ε-transitions

Besoin = savoir calculer l’ensemble des ´ etats accessibles par un chemin d’´ etiquette vide ` a partir de p = ε-clˆ oture de p = ε-C (p)

Un probl` eme de graphe orient´ e ! Exemple :

I ε-C(1) ={1}

I ε-C(3) =ε-C(4) =ε-C(5) ={3,4,5}

I ε-C(2) ={2,3,4,5}

(24)

Suppression des ε-transitions

Besoin = savoir calculer l’ensemble des ´ etats accessibles par un chemin d’´ etiquette vide ` a partir de p = ε-clˆ oture de p = ε-C (p)

Un probl` eme de graphe orient´ e ! Exemple :

5

1 a 2 3 4

b ε

ε

a ε

ε ε

5

1 2 3 4

I ε-C(1) ={1}

I ε-C(3) =ε-C(4) =ε-C(5) ={3,4,5}

I ε-C(2) ={2,3,4,5}

(25)

Suppression des ε-transitions

Besoin = savoir calculer l’ensemble des ´ etats accessibles par un chemin d’´ etiquette vide ` a partir de p = ε-clˆ oture de p = ε-C (p)

Un probl` eme de graphe orient´ e ! Exemple :

5

1 2 3 4

I ε-C(1) ={1}

I ε-C(3) =ε-C

(4) =

ε-C(5) ={3,

4, 5}

I ε-C(2) ={2,

3, 4, 5}

(26)

Suppression des ε-transitions

ε-C (1) = {1}

5

1 a 2 3 4

b ε

ε

a ε

ε ε

ε-C (3) = ε-C (4) = ε-C (5) = {3, 4, 5}

ε-C (2) = {2, 3, 4, 5}

b

1 a 2 3 4

a 5

b

a

a a

b

b

PROBLEME ! a n’est plus reconnu !

(27)

Suppression des ε-transitions

Il faut aussi ajouter en ´ etat terminal, les ´ etats pour lesquels il existe un chemin d’´ etiquette ε qui m` ene dans un ´ etat terminal !

ε−C (p) ∩ F 6= ∅

ε-C (1) = {1}

5

1 a 2 3 4

b ε

ε

a ε

ε ε

ε-C (3) = ε-C (4) = ε-C (5) = {3, 4, 5}

ε-C (2) = {2, 3, 4, 5}

F

res

= {2, 3, 4, 5}

(28)

Suppression des ε-transitions

5

1 a 2 3 4

b ε

ε

a ε

ε ε

b

1 a 2 3 4

a 5

b

a

a a

b

b

(29)

Suppression des ε-transitions : algorithme g´ en´ eral

Donn´ ees : A

async

= (A, Q, D , F , δ) asynchrone

R´ esultat : un automate A

res

= (A, Q , D, F

res

, δ

res

) ´ equivalent et sans ε-transition

Calculer pour chaque ´ etat p de A

async

son ε-clˆ oture :

ε-C (p) = {q ∈ Q | il existe un chemin de p vers q par ε}

Calculer F

res

= {p ∈ Q | ε-C (p) ∩ F 6= ∅}

Calculer δ

res

= {(p, α, q) | p ∈ Q, r ∈ ε-C (p), (r, α, q) ∈ δ} : Pour chaque p ∈ Q

Pour chaque r ∈ ε-C (p)

Pour chaque transition (r , α, q) ∈ δ

ajouter (p, α, q) dans δ

(30)

Suppression des ε-transitions : algorithme g´ en´ eral

Donn´ ees : A

async

= (A, Q, D , F , δ) asynchrone

R´ esultat : un automate A

res

= (A, Q , D, F

res

, δ

res

) ´ equivalent et sans ε-transition

Calculer pour chaque ´ etat p de A

async

son ε-clˆ oture : ε-C (p) = {q ∈ Q | il existe un chemin de p vers q par ε}

Calculer F

res

= {p ∈ Q | ε-C (p) ∩ F 6= ∅}

Calculer δ

res

= {(p, α, q) | p ∈ Q, r ∈ ε-C (p), (r, α, q) ∈ δ} : Pour chaque p ∈ Q

Pour chaque r ∈ ε-C (p)

Pour chaque transition (r , α, q) ∈ δ

ajouter (p, α, q) dans δ

(31)

Suppression des ε-transitions : algorithme g´ en´ eral

Donn´ ees : A

async

= (A, Q, D , F , δ) asynchrone

R´ esultat : un automate A

res

= (A, Q , D, F

res

, δ

res

) ´ equivalent et sans ε-transition

Calculer pour chaque ´ etat p de A

async

son ε-clˆ oture : ε-C (p) = {q ∈ Q | il existe un chemin de p vers q par ε}

Calculer F

res

= {p ∈ Q | ε-C (p) ∩ F 6= ∅}

Calculer δ

res

= {(p, α, q) | p ∈ Q, r ∈ ε-C (p), (r, α, q) ∈ δ} : Pour chaque p ∈ Q

Pour chaque r ∈ ε-C (p)

Pour chaque transition (r , α, q) ∈ δ

ajouter (p, α, q) dans δ

(32)

Suppression des ε-transitions : algorithme g´ en´ eral

Donn´ ees : A

async

= (A, Q, D , F , δ) asynchrone

R´ esultat : un automate A

res

= (A, Q , D, F

res

, δ

res

) ´ equivalent et sans ε-transition

Calculer pour chaque ´ etat p de A

async

son ε-clˆ oture : ε-C (p) = {q ∈ Q | il existe un chemin de p vers q par ε}

Calculer F

res

= {p ∈ Q | ε-C (p) ∩ F 6= ∅}

Calculer δ

res

= {(p, α, q) | p ∈ Q, r ∈ ε-C (p), (r, α, q) ∈ δ} : Pour chaque p ∈ Q

Pour chaque r ∈ ε-C (p)

Pour chaque transition (r , α, q) ∈ δ

ajouter (p, α, q) dans δ

(33)

Suppression des ε-transitions : algorithme g´ en´ eral

Donn´ ees : A

async

= (A, Q, D , F , δ) asynchrone

R´ esultat : un automate A

res

= (A, Q , D, F

res

, δ

res

) ´ equivalent et sans ε-transition

Calculer pour chaque ´ etat p de A

async

son ε-clˆ oture : ε-C (p) = {q ∈ Q | il existe un chemin de p vers q par ε}

Calculer F

res

= {p ∈ Q | ε-C (p) ∩ F 6= ∅}

Calculer δ

res

= {(p, α, q) | p ∈ Q, r ∈ ε-C (p), (r, α, q) ∈ δ} : Pour chaque p ∈ Q

Pour chaque r ∈ ε-C (p)

Pour chaque transition (r , α, q) ∈ δ

ajouter (p, α, q) dans δ

(34)

Algorithme de calcul des ε-clˆ otures

Donn´ ees : un graphe (S, Arcs), et un ensemble de sommets I R´ esultat : l’ensemble R des sommets accessibles ` a partir de I

Initialiser R ` a I . R´ ep´ eter

ajouter ` a R les sommets y tels qu’il existe un sommet x dans R et un arc (x, y) dans le graphe TantQue le cardinal de R augmente

5

1 a 2 3 4

b ε

ε

a ε

ε ε

ε-C (1) = {1}

ε-C (3) = ε-C (4) = ε-C (5) = {3, 4, 5}

ε-C (2) = {2, 3, 4, 5}

(35)

Algorithme de calcul des ε-clˆ otures

Donn´ ees : un graphe (S, Arcs), et un ensemble de sommets I R´ esultat : l’ensemble R des sommets accessibles ` a partir de I

Initialiser R ` a I . R´ ep´ eter

ajouter ` a R les sommets y tels qu’il existe un sommet x dans R et un arc (x, y) dans le graphe TantQue le cardinal de R augmente

5

1 a 2 3 4

b ε

ε

a ε

ε ε

ε-C (1) = {1}

ε-C (3) = ε-C (4) = ε-C (5) = {3, 4, 5}

(36)

Calcul des ε-clˆ oture : nombre d’´ etapes

Proposition 2.4 :

Quand on part de I , ` a chaque ´ etape on ajoute au moins un sommet.

A chaque ´ etape, on ajoute des ´ etats. . .

accessibles ` a partir d’´ etats accessibles ` a partir de I ,

donc on ajoute des ´ etats accessibles ` a partir de I .

Le nombre d’´ etapes est born´ e par le nombre d’´ etats-1.

(37)

Calcul des ε-clˆ oture : nombre d’´ etapes

Proposition 2.4 :

Quand on part de I , ` a chaque ´ etape on ajoute au moins un sommet.

A chaque ´ etape, on ajoute des ´ etats. . .

accessibles ` a partir d’´ etats accessibles ` a partir de I ,

donc on ajoute des ´ etats accessibles ` a partir de I .

Le nombre d’´ etapes est born´ e par le nombre d’´ etats-1.

(38)

Calcul des ε-clˆ oture : nombre d’´ etapes

Proposition 2.4 :

Quand on part de I , ` a chaque ´ etape on ajoute au moins un sommet.

A chaque ´ etape, on ajoute des ´ etats. . .

accessibles ` a partir d’´ etats accessibles ` a partir de I ,

donc on ajoute des ´ etats accessibles ` a partir de I .

Le nombre d’´ etapes est born´ e par le nombre d’´ etats-1.

(39)

Calcul des ε-clˆ oture : nombre d’´ etapes

Proposition 2.4 :

Quand on part de I , ` a chaque ´ etape on ajoute au moins un sommet.

A chaque ´ etape, on ajoute des ´ etats. . .

accessibles ` a partir d’´ etats accessibles ` a partir de I ,

donc on ajoute des ´ etats accessibles ` a partir de I .

Le nombre d’´ etapes est born´ e par le nombre d’´ etats-1.

(40)

Calcul des ε-clˆ oture : nombre d’´ etapes

Proposition 2.4 :

Quand on part de I , ` a chaque ´ etape on ajoute au moins un sommet.

A chaque ´ etape, on ajoute des ´ etats. . .

accessibles ` a partir d’´ etats accessibles ` a partir de I ,

donc on ajoute des ´ etats accessibles ` a partir de I .

Le nombre d’´ etapes est born´ e par le nombre d’´ etats-1.

(41)

Exemple

ε

1 a 2 3 4

b ε

ε-C (1) = {1}

ε-C (2) = {2, 3}

ε-C (3) = {3}

ε-C (4) = {3, 4}

b

1 a 2 3 4

b b

Un ´ etat ne sert ` a rien ! On peut enlever l’´ etat 3 : cela s’appelle

(42)

Exemple

ε

1 a 2 3 4

b ε

ε-C (1) = {1}

ε-C (2) = {2, 3}

ε-C (3) = {3}

ε-C (4) = {3, 4}

b

1 a 2 3 4

b b

Un ´ etat ne sert ` a rien ! On peut enlever l’´ etat 3 : cela s’appelle

l’´ emondage.

(43)

Autre ´ emondage

b

1 a 2 3 4

a 5

b

a

a a

b

b

b

1 a 2 4

a a b

Reconnaˆıt a(a + b)

(44)

Autre ´ emondage

b

1 a 2 3 4

a 5

b

a

a a

b

b

b

1 a 2 4

a a b

Reconnaˆıt a(a + b)

(45)

Automate accessible

Soit Aut = < A, Q, D, F , δ > un automate.

accessible = dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (p, a, q) ∈ δ}.

Etat ´ accessible dans Aut = accessible ` a partir d’un ´ etat de d´ epart de Aut.

Automate accessible = automate pour lequel tous les ´ etats sont accessibles.

L’automate accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles et toutes les

transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(46)

Automate accessible

Soit Aut = < A, Q, D, F , δ > un automate.

accessible = dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (p, a, q) ∈ δ}.

Etat ´ accessible dans Aut = accessible ` a partir d’un ´ etat de d´ epart de Aut.

Automate accessible = automate pour lequel tous les ´ etats sont accessibles.

L’automate accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles et toutes les

transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(47)

Automate accessible

Soit Aut = < A, Q, D, F , δ > un automate.

accessible = dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (p, a, q) ∈ δ}.

Etat ´ accessible dans Aut = accessible ` a partir d’un ´ etat de d´ epart de Aut.

Automate accessible = automate pour lequel tous les ´ etats sont accessibles.

L’automate accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles et toutes les

transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(48)

Automate accessible

Soit Aut = < A, Q, D, F , δ > un automate.

accessible = dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (p, a, q) ∈ δ}.

Etat ´ accessible dans Aut = accessible ` a partir d’un ´ etat de d´ epart de Aut.

Automate accessible = automate pour lequel tous les ´ etats sont accessibles.

L’automate accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles et toutes les

transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(49)

Automate accessible

Soit Aut = < A, Q, D, F , δ > un automate.

accessible = dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (p, a, q) ∈ δ}.

Etat ´ accessible dans Aut = accessible ` a partir d’un ´ etat de d´ epart de Aut.

Automate accessible = automate pour lequel tous les ´ etats sont accessibles.

L’automate accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles et toutes les

transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(50)

Automate co-accessible

co-accessible ` a partir d’un sommet x dans Aut = accessible

`

a partir de x dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (q, a, p) ∈ δ}.

Etat ´ co-accessible dans Aut = co-accessible ` a partir d’un

´

etat d’arriv´ ee de Aut.

Automate co-accessible = automate pour lequel tous les

´

etats sont co-accessibles.

L’automate co-accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate co-accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(51)

Automate co-accessible

co-accessible ` a partir d’un sommet x dans Aut = accessible

`

a partir de x dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (q, a, p) ∈ δ}.

Etat ´ co-accessible dans Aut = co-accessible ` a partir d’un

´

etat d’arriv´ ee de Aut.

Automate co-accessible = automate pour lequel tous les

´

etats sont co-accessibles.

L’automate co-accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate co-accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(52)

Automate co-accessible

co-accessible ` a partir d’un sommet x dans Aut = accessible

`

a partir de x dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (q, a, p) ∈ δ}.

Etat ´ co-accessible dans Aut = co-accessible ` a partir d’un

´

etat d’arriv´ ee de Aut.

Automate co-accessible = automate pour lequel tous les

´

etats sont co-accessibles.

L’automate co-accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate co-accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(53)

Automate co-accessible

co-accessible ` a partir d’un sommet x dans Aut = accessible

`

a partir de x dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (q, a, p) ∈ δ}.

Etat ´ co-accessible dans Aut = co-accessible ` a partir d’un

´

etat d’arriv´ ee de Aut.

Automate co-accessible = automate pour lequel tous les

´

etats sont co-accessibles.

L’automate co-accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate co-accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(54)

Automate co-accessible

co-accessible ` a partir d’un sommet x dans Aut = accessible

`

a partir de x dans le graphe (Q , E ) o` u E = {(p, q) | ∃a ∈ A, (q, a, p) ∈ δ}.

Etat ´ co-accessible dans Aut = co-accessible ` a partir d’un

´

etat d’arriv´ ee de Aut.

Automate co-accessible = automate pour lequel tous les

´

etats sont co-accessibles.

L’automate co-accessible associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate co-accessible associ´ e ` a Aut est ´ equivalent ` a Aut.

(55)

Automate ´ emond´ e

´

emond´ e = accessible + co-accessible

Automate ´ emond´ e = automate pour lequel tous les ´ etats sont accessibles et co-accessibles.

L’automate ´ emond´ e associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles ou non

co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate ´ emond´ e ` a Aut est ´ equivalent ` a Aut.

Penser ` a ´ emonder les automates !

(56)

Automate ´ emond´ e

´

emond´ e = accessible + co-accessible

Automate ´ emond´ e = automate pour lequel tous les ´ etats sont accessibles et co-accessibles.

L’automate ´ emond´ e associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles ou non

co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate ´ emond´ e ` a Aut est ´ equivalent ` a Aut.

Penser ` a ´ emonder les automates !

(57)

Automate ´ emond´ e

´

emond´ e = accessible + co-accessible

Automate ´ emond´ e = automate pour lequel tous les ´ etats sont accessibles et co-accessibles.

L’automate ´ emond´ e associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles ou non

co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate ´ emond´ e ` a Aut est ´ equivalent ` a Aut.

Penser ` a ´ emonder les automates !

(58)

Automate ´ emond´ e

´

emond´ e = accessible + co-accessible

Automate ´ emond´ e = automate pour lequel tous les ´ etats sont accessibles et co-accessibles.

L’automate ´ emond´ e associ´ e ` a Aut = automate obtenu en supprimant tous les ´ etats non accessibles ou non

co-accessibles et toutes les transitions aboutissant en, ou, partant d’un de ces ´ etats.

L’automate ´ emond´ e ` a Aut est ´ equivalent ` a Aut.

Penser ` a ´ emonder les automates !

(59)

Temps de calcul ?

Donn´ ees : un graphe (S, A), et un ensemble de sommets I R´ esultat : l’ensemble R des sommets accessibles ` a partir de I

Initialiser R ` a I .

R´ ep´ eter (au plus Card(S) − 1 fois) ajouter ` a R les sommets y tels

qu’il existe un sommet x dans R et un arc (x, y) dans le graphe TantQue le cardinal de R augmente

Calcul en temps O (Card(S)

4

)

(60)

Th´ eor` eme de Kleene

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

(61)

Reconnaissable ⇒ rationnel

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.

(62)

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 .

(63)

Algorithme par ´ elimination d’´ etats

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

Q0\ {q}

tels qu’il existe une transition directe (p,

Lpq,q) entre p

et

q

d’une part et une transition directe (q,

Lqr,r) entre q

et

r

d’autre part,

• Ajouter une transition (p,Lpqr,r) entrepetr avec Lpqr =Lpr∪Lpq.Lqq.Lqr.PuisLpqr devientLpr.

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 .

(64)

Exemple : calcul du langage de Aut

Aut :

1 a,b 2 a 3

b

(65)

Etape 1 : normalisation de Aut ´

Aut normalis´ e :

1 a,b 2 a 3

b

ɛ f

d ɛ

(66)

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

.

(67)

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

(68)

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

(69)

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

1 a,b 2 a 3

b

ɛ f

d ɛ

(a+b)a

(70)

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

1 a,b 2 a 3

b

ɛ f

d ɛ

(a+b)a

ba

(71)

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

1 3 f

d ɛ ɛ

(a+b)a

ba

(72)

Etape 2 : ´ ´ elimination successive des ´ etats

1 3 f

d ɛ

ɛ (a+b)a

ba

Suppression de l’´ etat 1 : il faut calculer L

d13

.

(73)

Etape 2 : ´ ´ elimination successive des ´ etats

1 3 f

d ɛ

ɛ (a+b)a

ba

Suppression de l’´ etat 1 : il faut calculer L

d13

. L

d13

= L

d3

∪ L

d1

.L

11

.L

13

= ∅ ∪ ε.ε

.(a + b)a

= (a + b)a

(74)

Etape 2 : ´ ´ elimination successive des ´ etats

1 3 f

d ɛ

ɛ (a+b)a

ba

Suppression de l’´ etat 1 : il faut calculer L

d13

. L

d13

= L

d3

∪ L

d1

.L

11

.L

13

= ∅ ∪ ε.ε

.(a + b)a

= (a + b)a

1 3 f

d ɛ

ɛ (a+b)a

ba

(a+b)a

(75)

Etape 2 : ´ ´ elimination successive des ´ etats

1 3 f

d ɛ

ɛ (a+b)a

ba

Suppression de l’´ etat 1 : il faut calculer L

d13

. L

d13

= L

d3

∪ L

d1

.L

11

.L

13

= ∅ ∪ ε.ε

.(a + b)a

= (a + b)a

3 f

d ɛ

ba

(a+b)a

(76)

Etape 2 : ´ ´ elimination successive des ´ etats

3 f

d ɛ

ba

(a+b)a

Suppression de l’´ etat 3 : il faut calculer L

d3f

.

(77)

Etape 2 : ´ ´ elimination successive des ´ etats

3 f

d ɛ

ba

(a+b)a

Suppression de l’´ etat 3 : il faut calculer L

d3f

. L

d3f

= L

df

∪ L

d3

.L

33

.L

3f

= ∅ ∪ (a + b)a.(ba)

= (a + b)a(ba)

(78)

Etape 2 : ´ ´ elimination successive des ´ etats

3 f

d ɛ

ba

(a+b)a

Suppression de l’´ etat 3 : il faut calculer L

d3f

. L

d3f

= L

df

∪ L

d3

.L

33

.L

3f

= ∅ ∪ (a + b)a.(ba)

= (a + b)a(ba)

3 f

d ɛ

ba

(a+b)a (a+b)a(ba)*

(79)

Etape 2 : ´ ´ elimination successive des ´ etats

3 f

d ɛ

ba

(a+b)a

Suppression de l’´ etat 3 : il faut calculer L

d3f

. L

d3f

= 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)

.

(80)

Lemme d’Arden

Lemme d’Arden Soient K , L, X trois langages tels que ε 6∈ 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

i∈DLi I Li

=

S

(i,a,j)∈δaLj

si

i

n’est pas terminal

I Li

=

{ε} ∪S

(i,a,j)∈δaLj

si

i

est terminal.

3. R´ esolution de l’´ equation en calculant ` a l’aide du lemme

d’Arden les expressions des langages L

i

.

(81)

Exemple

1 a,b 2 a 3

b

On doit r´ esoudre le syst` eme d’´ equations suivant : L = L

1

L

1

= aL

2

+ bL

2

= (a + b)L

2

L

2

= aL

3

L

3

= bL

2

+ ε

R´ esolution du syst` eme d’´ equations :

On remplace L

2

par aL

3

dans la derni` ere ´ equation : L

3

= baL

3

+ ε On y applique le Lemme d’Arden : L

3

= (ba)

ε = (ba)

.

On peut calculer L

2

: L

2

= aL

3

= a(ba)

Et enfin L = L

1

= (a + b)L

2

= (a + b)a(ba)

Références

Documents relatifs

La deuxi` eme partie qui d´ emontre le th´ eor` eme de Cantor-Bernstein est facultative, moins dans l’esprit du programme ECS (mais bien dans l’esprit d’une ´ epreuve maths 2

Autrement dit, on consid` ere des tirages de p ´ el´ ements de E avec remise, mais sans tenir compte de l’ordre.. Le nombre de r´ esultats possible est

Enoncer un th´ ´ eor` eme permettant de calculer les sommes t´ elescopiques..

Il est possible d’associer ` a chaque score possible un ´ etat, puis il faut alors construire une table de transition en fonction du point marqu´ e (c’est-` a-dire de la lettre lue).

Pour chaque langage ci-dessous, donner une expression r´ eguli` ere le d´ ecrivant, puis un automate re- connaissant le langage.. l’ensemble des mots de

Une m´ ethode classique pour obtenir des r´ esultats sur une int´ egrale d´ ependant d’un param` etre est de sortir, par tous les moyens possibles, le param` etre de

On considère une machine de turing non déterministe qui va choisir une lettre dans Σ et simuler le comportement de A sur la lecture de cette lettre en mémorisant l'ensemble des

Notre but ici est de d´ emontrer les deux r´ esultats suivants, dont nous avons manqu´ e de temps pour voir les preuves au dernier cours.. Th´ eor`