Вы находитесь на странице: 1из 11

Automates et langages: quelques algorithmes

Eugene Asarin Saddek Bensalem

Avertissement

Dans l etat actuel ce document est archi-sec et peut servir seulement dun aide-m emoire. Pour comprendre les algorithmes ci-dessous il faut suivre les cours (et/ou lire un livre sur les automates). Il faut egalement pratiquer ces algorithmes (au moins faire toutes les exercices des feuilles de TD sur ma page web).

2
2.1

D eterminisation
Probl` eme

Etant donn e un automate A = (Q,,,q0 ,F ), non-d eterministe avec -transitions, construire un automate d eterministe A , complet et sans epsilon, acceptant le m eme langage.

2.2
2.2.1

Quelques notations utiles


a-successeurs
a

Pour un etat q Q et un symbole a on d enit S (q,a) = {p | (q p) } S (q,a) d enote lensemble des etats qui sont les successeurs imm ediats de q , en dautres termes tous les etats que lon pourrait atteindre par la transition etiquet ee par a. On peut etendre cette op eration aux ensembles. Soient M sous-ensemble de Q, o` u Q est un ensemble d etats et a un el ement de Sigma. Les successeurs imm ediats de M par la transition etiqut ee par a est d enie par l equation suivante : S (M,a) =
q M

S (q,a)

En dautres termes, S (M,a) d enote lensemble de tous les etats que lon pourrait atteindre a ` partir des etats dans M en eectuant une transition etiquet ee par a. 2.2.2 -fermeture

La d enition de l -fermeture dun etat q , que lon note par E (q ), et de son extension sont utiles pour l elimination des -transitions. Etant donn e etat q Q, on d enit l -fermeture de q par : E (q ) = {q | q q } En dautres termes E (q ) est lensemble de tous les etats dans Q que lon pourrait atteindre a ` partir de q en eectuant 0, 1 ou plusieurs -transitions. Lop eration E , comme pour S , pourrait etre etendue aux ensembles : E (M ) =
q M

E (q )

q1 b

a q0 c q2 a c

Fig. 1 Automate A1

Exemples : Le calcul des successeurs imm ediats des etats de lautomate A1 ci-dessus : S (q 0,a) = {q 1,q 2}, S (q 0,b) = , S (q 0,c) = S (q 1,a) = , S (q 1,b) = {q 0,q 1}, S (q 1,c) = S (q 2,a) = , S (q 2,b) = , S (q 2,c) = {q 0,q 2} l -fermeture de chaque etat de lautomate A2 :
1 2

qo

$\epsilon$ q1

$\epsilon$ q2

Fig. 2 Automate A2 E (q 0) = {q 0,q 1,q 2}, E (q 1) = {q 1,q 2}, E (q 2) = {q 2}, E ({q 1,q 2} = E (q 1) E (q 2) = {q 1,q 2}

{q 2} = {q 1,q 2}

2.3

Construction le cas simple sans

Si lautomate A que lon veut rendre d eterministe ne contient pas d -transitions, alors lautomate d eterministe equivalent A , cest-` a-dire acceptant le m eme langage, peut etre construit de la mani` ere suivante: A = (Q , , ,q0 ,F ) O u Q = 2Q = (M,a) = S (M,a) q0 = {q0 } F = {M | M F = 0} lensemble de toutes les parties de Q le m eme alphabet que celui de lautomate A cest c a lastuce est le singleton qui contient l etat initial de lautomate A M est nal sil contient au moins un etat nal de A 2

Ci-dessus M d esigne un sous-ensemble quelconque de Q 2.3.1 Exemple

Soit lautomate non-d eterministe ci-dessous :


0 1 2

qo

0,1 q1 0,1,2

1,2

q2

Fig. 3 Automate A3 non-d eterministe sans -transition Pour construire lautomate d eterministe acceptant le m eme langage que lautomate A3 , nous appliquons la construction ci-dessus car il sagit dun automate non-d eterministe sans -transition. Donc, lautomate d eterministe que nous obtenons est le suivant : Lensemble des etats est lensemble des parties de Q = {q 0,q 1,q 2} Lalphabet est le m eme, cest-` a-dire = {0,1,2} l etat initial est {q 0} La relation de transition est d enie par : 0 {q 0,q 1,q 2} {q 0,q 1,q 2} 1 {q 1,q 2} {q 1,q 2} {q 1,q 2} 2 {q 2} {q 2} {q 2} {q 2}

{q 0} {q 0,q 1,q 2} {q 1,q 2} {q 0}

Comme F = {q 0,q 1,q 2} alors F = {{q 0},{q 1,q 2},{q 0,q 1,q 2}}

2.4

Construction le cas g en eral

Dans le cas g en eral, il faut prendre en consid eration les -transition: Q = 2Q comme dans le cas simple sans -transition = lalphabet nest pas modi e (M,a) = E (S (M,a)) on ferme par il y a plus d etats initiaux q0 = E (q0 ) F = {M | M F = } lensemble des etats nals est le m eme que dans le cas simple sans -transition 2.4.1 Exemple

Pour illustrer la m ethode de construction dautomate d eterministe dans le cas g en eral, dautomate non-d etrministe avec -transition, nous consid erons lautomate A4 gure ?? ci-dessous : Lensemble, Q , des etats de lautomate d eterministe est lensemble des parties de Q = {0,1,2,3,4}, o` u Q est lensembles des etats de A4, Le vocabulaire, est le m eme que celui de lautomate A4 , cest-` a-dire = = {a,b},

a b
0

a a

Fig. 4 Automate A4 non-d eterministe avec -transition

L etat initial de A4 est d enie par -fermeture de l etat 0, etat initial de A4 : E (0) = {0,3}, La relation de transition est d enie par : a b {0,3} {1,2,4} {1,2,4} {2} {0,1,3} {2} {1} {0,1,3} {1,2,4} {0,3} {1} {2} {0,3} Comme lensembles des etats nals de lautomate A4 est F = {1,2,3,4}, alors lensemble des etats nals de lautomate d eterministe est F = {{1},{2},{0,3},{0,1,3},{1,2,4}} La repr esentation graphique de lautomate d eterministe ci-dessus est :
b {1} a a {1,2,4} a b

{0,3}

{2}

{0,1,3}

Fig. 5 Automate d eterministe obtenu a ` partir de A4

Expressions r eguli` eres : lois alg ebriques


f +g = g+f 4

(f + g ) + h f +f f + (f g )h f f f (g + h) (g + h)f f

= f + (g + h) = f = f = f (gh) = f =f = f = = fg + fh = gf + hf = = = ff +

4
4.1

Expression r eguli` ere automate


Probl` eme

Etant donn ee une expression r eguli` ere f construire un automate A qui accepte le langage d enot e par cette expression.

4.2
4.2.1

Construction
Cas de base Automate Expression

a 4.2.2 Cas inductif

On suppose quon a d ej` a construit les 2 automates A et B acceptant les langages des expressions f et g respectivement Expression Automate

A f

B g

On construira ` a partir de A et B les automates pour f + g , f g , f

Expression

Automate

A f +g

A f g

A f

Cela termine la construction

5
5.1

Automate expression r eguli` ere


Probl` eme

Etant donn e un automate A = (Q,,,q0 ,F ), on veut construire une expression r eguli` ere f telle que L(f ) = L(A), cest ` a dire que le langage d enot e par f est le m eme que le langage reconnu par A.

5.2

Automate syst` eme d equations sur des langages

On introduit une inconnue Xq pour chaque etat q Q. Elle d esignera le langage accept e a ` partir de l etat q . Pour chaque q on ecrit une equation suivante: si q F aXp ; Xq =
(q p)
a

si q F Xq =
(q p)
a

aXp + ;

On obtient un syst` eme de N equations avec N inconnues (N est le nombre d etats de l automate). On cherche une expression r eguli` ere pour Xq0 .

5.3

R esolution dune equation


X = LX + M

Lemme 1 (Arden) Soient L et M deux langages, X - un langage inconnu. L equation

a une solution X0 = L M Remarque: sous certaines hypoth` eses cette solution est unique. Dans tous les cas elle est la seule solution pertinente pour notre probl` eme.

5.4

R esolution dun syst` eme

La m ethode de r esolution sugg er ee combine le lemme dArden pour r esoudre les equations individuelles et la m ethode d elimination de variables de Gauss. En 2 mots : pour un syst` eme de N equations avec N inconnues X1 ..XN on proc` ede comme suit: En utilisant le lemme pr ec edent pour la premi` ere equation on exprime X1 en fonction de variables X2 ..XN . On substitue toutes les occurrences de X1 dans les equations 2..N par cette expression. X1 est elimin ee De la m eme mani` ere on elimine X2 en utilisant la deuxi` eme equation, etc. jusqu` a XN Maintenant notre syst` eme a une forme triangulaire. En remontant le syst` eme on trouve les expressions r eguli` eres pour XN ,XN 1 , . . . ,X2 ,X1 Cest tout Pour le syst` eme obtenu ` a partir de lautomate (A), la solution obtenue pour Xq0 est lexpression r eguli` ere recherch ee pour L(A)

Op erations sur les langages r eguliers

On peut repr esenter les langages r eguliers soit par des expressions, soit par des automates. Certaines op erations et certains tests peuvent etre eectu es aussi bien sur les expressions que sur les automates, tandis que dautres op erations et tests peuvent se faire seulement sur les automates. Dans ce document, uniquement les algorithmes sur les automates seront pr esent es. On suppose que L = L(A) et M = L(B ). Op erations r eguli` eres Automates pour L M , L M , L : voir section ?? (le compl Compl ement Pour construire lautomate acceptant L ement de L) il faut 1. D eterminiser lautomate A (en noubliant dans aucun cas l etat derreur) 2. Compl ementer lensemble des etats nals. Intersection Th eoriquement comme L M = L M , la construction de lautomate pour lintersection peut se ramener aux op erations pr ec edentes. En pratique cette m ethode donne des automates de taille enorme. Une fa con beaucoup plus raisonnable de construire lautomate acceptant L M est la suivante: ` a partir de deux automates A = (P,,A ,p0 ,FA ) et B = (R,,B ,r0 ,FB ) on construit lautomate produit A B = (Q,,,q0 ,F ) avec Q=P R produit cart esien q0 = (p0 ,r0 ) F = FA FB 7

La relation de transition contient trois types de transitions: a a a 1. (p,r) (p ,r ) tels que (p p ) A et (r r ) B 2. (p,r) (p ,r ) tels que (p p ) A et r = r 3. (p,r) (p ,r ) tels que (r r ) B et p = p Lautomate A B accepte le langage L M . Lors de la construction de lautomate produit il nest pas n ecessaire de consid erer tous les etats (tout le produit cart esien). On peut se restreindre ` a lensemble des etats accessibles (voir lexemple ci-dessous). Autres op erations En TD on a vu comment eectuer les op erations miroir, homomorphisme, pr exe, suxe, inxe . . .

6.1

Exemple

En passant par les automates transformer lexpression r eguli` ere etendue (00+01) 0(10+01) en forme r eguli` ere (non etendue). Un automate A1 pour (00 + 01) :

0 A 0,1 Un automate A2 pour 0(10 + 01) : B

0 K 0 L 0 1 1

Lautomate produit de A1 et A2 accepte lintersection (00 + 01) 0(10 + 01) :

0 AK 0 BL 0 1 1

AN

AM

Comme il na pas d etats accepteurs, son langage est vide, do` u lexpression r eguli` ere :

Tests sur les langages r eguliers

Comme pr ec edemment on suppose que L = L(A) et M = L(B ). Appartenance : w L si et seulement si Succ(q0 ,w) F = . Il faut donc calculer lensemble successeur et tester sil contient un etat nal. Langage vide : L = si et seulement si dans (A) il existe un chemin de l etat initial vers un etat nal 1 . Langage ni : L est inni si et seulement si dans (A) il existe un cycle avec les propri et es suivantes: est accessible ` a partir de l etat initial un etat nal est accessible a ` partir de contient au moins une transition etiquet ee par autre chose qu Inclusion : Comme L M si et seulement si L M = , pour tester linclusion il sut de construire lautomate acceptant L M et faire le test de langage vide pour cet automate. Egalit e : Comme L = M si et seulement si (L M ) (M L), pour tester l egalit e il sut de faire deux tests dinclusion.

8
8.1

Minimisation
Probl` eme

Etant donn e un automate d eterministe A = (Q,,,q0 ,F ), on cherche ` a construire un automate d eterministe equivalent contenant un nombre minimum d etats.

8.2

Structure de lalgorithme

1. Supprimer tous les etats de A inaccessibles ` a partir de q0 . Dans la suite on suppose que cest d ej` a fait. 2. Construire la relation d equivalence sur lensemble Q (voir ??). Elle partitionne Q en plusieurs classes d equivalence. On va ecrire [q ] pour la classe contenant q .
1. les algorithmes pour rechercher un tel chemin sont etudi es en LP

3. Construire lautomate minimal A = (Q ,, ,q0 ,F ) en collant ensemble les etats dans chaque classe d equivalence. Formellement Q = Q/ = {[q ] | q Q} lensemble de tous les classes d equivalence ([q ],a) = [ (q,a)] le successeur dune classe d equivalence est la classe d equivalence du successeur q0 = [q0 ] la classe d equivalence de l etat initial de A F = {[q ] | q F } les classes d equivalence des etats nals de A

8.3

Comment construire la relation d equivalence

1. On construit un tableau de taille N N (N est le nombre d etats de notre automate). Chaque case dans ce tableau correspond ` a un couple d etats (p,q ). Pour ne pas avoir deux fois le m eme couple ((p,q ) et (q,p)) ni les couples inutiles (p,p), on garde seulement la partie triangulaire sup erieure du tableau. (Notre but nal est de marquer toute les cases (p,q ) pour des etats p et q non- equivalents) 2. Au d ebut on marque chaque case (p,q ) correspondant ` a un etat nal et ` a un etat non-nal (cest ` a dire p F et q F ou ` a lenvers, p F et q F . 3. On parcourt toutes les cases vides du tableau dune mani` ere quelconque en le modiant de fa con suivante : pour chaque case (p,q ) et lettre a, on calcule (p,a) = p et (q,a) = q . On marque (p,q ) si et seulement si la case (p ,q ) est d ej` a marqu ee. On r ep` ete le balayage jusquau moment quand le tableau ne se modie plus. 4. La relation d equivalence se cache dans le tableau nal : deux etats p et q sont equivalents si et seulement si la case (p,q) nest pas marqu ee.

8.4

Exemple

On veut minimiser lautomate F a a C b b D a a b I E b G b H

a,b

On applique lalgorithme.

a,b

10

H I X X Initialisation: X X - X - X D E F G H I C X X D X X Premi` ere it eration: E X X F - X X G - X X H - X D E F G H I C X X X D - X X X Deuxi` eme it eration: E - X X X X F - X X G - X X H - X D E F G H I C X X X X D - X X X X X Troisi` eme it eration: E - X X X X F - X X G - X X H - X D E F G H I C X X X X X D - X X X X X Quatri` eme it eration: E - X X X X F - X X X G - X X H - X Lit eration suivante ne modie pas le tableau. En observant les cases non-coch ees on trouve la relation d equivalence : C F , les autres etats ne sont pas equivalents. On construit lautomate minimal: C D E F G H a a CF b D a b I E b G b H

a,b

a,b

11

Вам также может понравиться