• Aucun résultat trouvé

Ann´ee2014-2015 FlorenceLev´e Th´eoriedesLangagesFormelsChapitre3:Th´eor`emedeKleene

N/A
N/A
Protected

Academic year: 2022

Partager "Ann´ee2014-2015 FlorenceLev´e Th´eoriedesLangagesFormelsChapitre3:Th´eor`emedeKleene"

Copied!
59
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 2014-2015

(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 di↵´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},

= {(1, a, 2), (2, ", 3), (3, b, 4), (4, ", 3)}

(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 (q0, a1, q1)(q1, a2, q2) . . .(qn 1, an, qn) avec q0 = p, qn = q (et (n 1)) (et ai lettre ou ")

Mot ´etiquette = a1 . . .an (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, di↵´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 Aut0 =

< A, Q[{d, f }, {d}, {f }, [{(d, ", q) | q 2 D}[{(q, ", f ) | q 2 F} >

Aut0 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 :

Aut1 =< A1, Q1, {d1}, {f1}, 1 > un automate asynchrone normalis´e reconnaissant le langage L1,

Aut2 =< A2, Q2, {d2}, {f2}, 2 > un automate asynchrone normalis´e reconnaissant le langage L2,

d et f des ´etats n’appartenant ni `a Q1, ni `a Q2.

Supposons Q1 \ Q2 = ; et consid´erons l’automate Aut =

< A1 [ A2, Q1 [ Q2 [ {d, f }, {d}, {f },

1 [ 2 [ {(d, ", d1), (d, ", d2), (f1, ", f ), (f2, ", f )} >

Cet automate Aut est un automate asynchrone normalis´e

(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 :

Aut1 =< A1, Q1, {d1}, {f1}, 1 > un automate asynchrone normalis´e reconnaissant le langage L1,

Aut2 =< A2, Q2, {d2}, {f2}, 2 > un automate asynchrone normalis´e reconnaissant le langage L2,

Supposons Q1 \ Q2 = ; et consid´erons l’automate

Aut =< A1 [ A2, Q1 [ Q2, {d1}, {f2}, 1 [ 2 [ {(f1, ", d2)} >

Cet automate Aut est un automate asynchrone normalis´e reconnaissant le langage L1L2.

(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,

d0 et f 0 deux ´etats distincts n’appartenant pas `a Q. Consid´erons l’automate AutEt =

< A, Q [ {d0, f 0}, {d0}, {f 0},

[ {(d0, ", d), (f , ", f 0), (f , ", d), (d0, ", 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 de p `a r

il existe une transition (r,↵,q),

Ajouter (p,↵,q)

Puis supprimer les "-transitions.

I Exemple :

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}

Fres = {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 : Aasync = (A, Q, D, F, ) asynchrone

R´esultat : un automate Ares = (A, Q, D, Fres, res) ´equivalent et sans "-transition

Calculer pour chaque ´etat p de Aasync son "-clˆoture :

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

Calculer Fres = {p 2 Q | "-C(p) \ F 6= ;}

Calculer res = {(p, ↵, q) | p 2 Q, r 2 "-C(p), (r, ↵, q) 2 } : Pour chaque p 2 Q

Pour chaque r 2 "-C(p)

Pour chaque transition (r, ↵, q) 2 ajouter (p, ↵, q) dans

(30)

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

Donn´ees : Aasync = (A, Q, D, F, ) asynchrone

R´esultat : un automate Ares = (A, Q, D, Fres, res) ´equivalent et sans "-transition

Calculer pour chaque ´etat p de Aasync son "-clˆoture :

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

Calculer Fres = {p 2 Q | "-C(p) \ F 6= ;}

Calculer res = {(p, ↵, q) | p 2 Q, r 2 "-C(p), (r, ↵, q) 2 } : Pour chaque p 2 Q

Pour chaque r 2 "-C(p)

Pour chaque transition (r, ↵, q) 2 ajouter (p, ↵, q) dans

(31)

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

Donn´ees : Aasync = (A, Q, D, F, ) asynchrone

R´esultat : un automate Ares = (A, Q, D, Fres, res) ´equivalent et sans "-transition

Calculer pour chaque ´etat p de Aasync son "-clˆoture :

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

Calculer Fres = {p 2 Q | "-C(p) \ F 6= ;}

Calculer res = {(p, ↵, q) | p 2 Q, r 2 "-C(p), (r, ↵, q) 2 } : Pour chaque p 2 Q

Pour chaque r 2 "-C(p)

Pour chaque transition (r, ↵, q) 2 ajouter (p, ↵, q) dans

(32)

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

Donn´ees : Aasync = (A, Q, D, F, ) asynchrone

R´esultat : un automate Ares = (A, Q, D, Fres, res) ´equivalent et sans "-transition

Calculer pour chaque ´etat p de Aasync son "-clˆoture :

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

Calculer Fres = {p 2 Q | "-C(p) \ F 6= ;}

Calculer res = {(p, ↵, q) | p 2 Q, r 2 "-C(p), (r, ↵, q) 2 } : Pour chaque p 2 Q

Pour chaque r 2 "-C(p)

Pour chaque transition (r, ↵, q) 2 ajouter (p, ↵, q) dans

(33)

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

Donn´ees : Aasync = (A, Q, D, F, ) asynchrone

R´esultat : un automate Ares = (A, Q, D, Fres, res) ´equivalent et sans "-transition

Calculer pour chaque ´etat p de Aasync son "-clˆoture :

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

Calculer Fres = {p 2 Q | "-C(p) \ F 6= ;}

Calculer res = {(p, ↵, q) | p 2 Q, r 2 "-C(p), (r, ↵, q) 2 } : Pour chaque p 2 Q

Pour chaque r 2 "-C(p)

Pour chaque transition (r, ↵, q) 2 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}

(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}

"-C(2) = {2, 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 l’´emondage.

(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

(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) | 9a 2 A, (p, a, q) 2 }.

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) | 9a 2 A, (p, a, q) 2 }.

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) | 9a 2 A, (p, a, q) 2 }.

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) | 9a 2 A, (p, a, q) 2 }.

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) | 9a 2 A, (p, a, q) 2 }.

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) | 9a 2 A, (q, a, p) 2 }.

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) | 9a 2 A, (q, a, p) 2 }.

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) | 9a 2 A, (q, a, p) 2 }.

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) | 9a 2 A, (q, a, p) 2 }.

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) | 9a 2 A, (q, a, p) 2 }.

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)

Références

Documents relatifs

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

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..

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`

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