Sunteți pe pagina 1din 8

2.

3 Minimizarea unui automa finit

Definiia 2.3.1 O relaie binar R pe mulimea S se numete relaie de echivalen dac


ea este:
1) Reflexiv (xRx, x S)
2) Simetric (xRy yRx)
3) Tranzitiv (xRy, yRz xRz)
O relaie de echivalen peste S mparte mulimea S n clase de echivalen, submulimi

x, y Si xRy
disjuncte S astfel nct .
i
S Si
i
Observaia 2.3.3 Se poate construi un cel mai mic automat care accept un limbaj T(M),
prin eliminarea strilor inaccesibile i comasarea celor redundante. Strile redundante sunt
determinate prin partiionarea strilor automatului n clase de echivalen astfel nct
fiecare clas conine stri care nu se pot distinge ntre ele i este att de mare ct este
posibil.
Definiia 2.3.4 Fie M (Q, , , q 0 , F) un automat finit determinist i q1,q2 dou stri
distincte. Spunem c x distinge q1 de q2 dac:
(q1 , x) * (q 3 , )
(q 2 , x) * (q 4 , )
i una i numai una dintre strile q3 i q4 este stare final adic:
q3 F q4 F
i q4 F q3 F.
k
Definiia 2.3.5 Spunem c q1 i q2 sunt k-nedistinctibile ( q 1 q 2 ) dac i numai dac nu
exist x, cu x
k, astfel nct x distinge q1 de q2.
Definiia 2.3.6 Spunem c q1 si q2 sunt nedistinctibile (q1q2) dac sunt k-nedistinctibile
pentru k0.
Definiia 2.3.7 O stare q este inaccesibil dac nu exist x astfel nct (q 0 , x) (q, ) .
Definiia 2.3.8 M este un automat redus dac nici o stare nu este inaccesibil i nu exist
dou stri nedistinctibile.

Teorema 2.3.3 Fie M (Q, , , q 0 , F) un automat finit determinist cu n stri. Strile q1 i


q2 sunt nedistinctibile dac i numai dac sunt (n-2)-nedistinctibile.
Demonstraie:
Implicaia direct ("" ) este evident; s demonstrm implicaia invers
("" ) :
a) Dac F are 0 sau n stri demonstraia este imediat.
b) Presupunem c 0 card(F) n.
n 2 n 3 1 0
Vom demonstra c ... .
Observm c pentru q1,q2Q avem:
0

(1) q1 q (q1 , ), (q 2 , ) F sau Q \ F q1 , q 2 F sau, respectiv, F


k
k -1 k -1

(2) q1 q q1 q 2 a , (q1 , a) (q 2 , a)

0
Relaia partiioneaz Q n dou clase de echivalen: F i K\F.
k 1 k k 1 k
Dac atunci este o rafinare a lui i conine cel puin o clas de
echivalen n plus.
0
Pentru c sunt cel mult n-1 stri n F sau Q\F , cel mult n-2 rafinri a lui . Aadar,
k k 1 k
este prima relaie pentru care .
Observaia 2.3.4 Dou stri sunt distinctibile dac ele se pot distinge pe un ir de intrare
de lungime mai mic dect numrul strilor.

Algoritmi pentru minimizarea automatului finit

(A) Algoritm de minimizare 1


Fie M=(Q,,,q0,F). Se construiete M redus parcurgnd urmtorii trei pai:

A.1 Se elimin nti nodurile inaccesibile (conform algoritmului (B))


0 1
A.2 Se construiesc relaiile de echivalen , ,... pn cnd relaia se stabilizeaz
k k 1
adic .
k
Alegem .
A.3 Se construiete M=(Q, , , q0, F) unde Q e mulimea claselor de echivalen
ale lui Q, astfel:
([q],a)=[p] dac (q,a)=p
q0=[q0]
F= [q] qF

(B) Algoritm de eliminare a strilor inaccesibile. Pentru eliminarea strilor inaccesibile


se poate folosi orice algoritm din teoria grafurilor de eliminare a nodurilor inaccesibiel din
nodul reprezentnd starea iniial, unde avem:
Intrare - Graful (Q,) cu (q,p)=a (q,a)=p
- q0Q
Ieire Mulimea de noduri QQ astfel nct exist un drum de la q0 la pQ.
Algoritmul marcheaz succesiv nodurile accesibile din q0 printr-un drum. Astfel, gsete
nodurile accesibile i le elimin pe celelalte. Prezentm n continuare dou variante ale
acestui algoritm:
Varianta I
BI.1 Iniializeaz Q={q0} i marcheaz q0 cu 0.
BI.2 Pentru qQ caut pQ astfel nct exist un arc (q,p); marcheaz p cu 1+
marca lui q (dac p nu e marcat) i adaug pe q la Q; reia pasul BI2.
Dac qQ i p astfel nct (q,p), p este marcat atunci stop.
Sau:
Varianta a II-a
BII.1 Iniializeaz L=q0, marcheaz q0.
BII.2 Dac L e vid stop .
Dac nu, alege primul element q din L i l scoate din L.
BII.3 Pentru pQ astfel nct (q,p), dac p nu e marcat, marcheaz p i adaug p n
capul listei L. Salt la pasul BII2.
Vom arta n continuare c automatul obinut prin algoritmul de minimizare este
automatul cu numr minim de stri.

Teorema 2.3.4. Automatul M definit de algoritmul de minimizare (A) este automatul cu


cel mai mic numr de stri acceptnd L(M).
Demonstraie:
Presupunem c exist un automat M, care are mai puine stri dect M i c
L(M)=L(M).
Pentru c fiecare clas de echivalen indus de relaia de echivalen nedistinctibilitatea,
, este nevid, rezult c fiecare stare din M este accesibil.
Pentru c M are mai puine stri dect M rezult c w,x dou cuvinte astfel nct:
(q 0 , w) *M (q, )
(q 0 , x) *M (q, )
unde q 0 este starea iniial a lui M.
Dar w i x conduc M n stri diferite, deci w i x conduc M n stri diferite, i atunci:
(q 0 , w) *M (p, )
(q 0 , x) *M (r, )
stri care sunt distinctibile, adic y* astfel nct (p,y)F i (r,y) F
(q0,wy)F i (q0,xy)F
wyT(M) iar xyT(M), pe cnd (q0,wy)=(q0,xy)
deci wy i xy sunt deodat n T(M)=T(M) contradicie.

Exemplul 2.3.1 S se construiasc automatul finit redus pentru automatul finit M din

a
Start q0 q5
a
a b
b
q3 b b q2
a
a
b b
q1 q4 Figura 2.4.1
a
Figura 2.4.1 .

Aplicm algoritmul (A).


Pasul A.1 Toate nodurile sunt accesibile.
Pasul A.2 Construim relaiile de echivalen.
Iniializare ( 0-nedistinctibilitate ):
0
k0 {q 0 , q 5 },{q 1 , q 2 , q 3 , q 4 }
Analizm 1-nedistinctibilitatea:

(q0,a) q5 0
(chiar egale)
(q5 ,a) q5 1
q0 q5 (rmn n aceeai clas)
(q0,b) q1 0

(q5 ,b) q4
(q1,a) q4 0

(q2,a) q2 1
q1 q2 (se vor separa n clase diferite)
(q1,b) q3 0

(q2,b) q5
(q1,a) q4 0

(q3,a) q3 1
q1 q3 (se vor separa n clase diferite)
(q1,b) q3 0

(q3,b) q0
tiind deja c q1 se separ de q2 i de q3, trebuie vzut dac q2 i q3 rmn totui mpreun:

(q2,a) q2 0

(q3,a) q3 1
q2 q3 (rmn n aceeai clas de echivalen)
(q2,b) q5 0

(q3,b) q0
Ultima stare neanalizat este q4; din cele vzute deja, aceasta ar putea aparine fie clasei
care conine pe q1, sau celei care conine pe q2 i q3, sau unei clase noi. n urmtorul calcul
se vede c prima este varianta valabil:

(q1,a) q4 0

(q4,a) q1 1
q1 q 4
(q1,b) q3 0

(q4,b) q2
Aadar, s-a obinut:
1
k 1 {q 0 , q 5 },{q 1 , q 4 },{q 2 , q 3 }
S analizm 2-nedistinctibilitatea:
(q0,a) q5 1

(q5,a) q5 2
q0 q5
(q0,b) q1 1

(q5,b) q4
(q1,a) q4 1

(q4,a) q1 2
q1 q 4
(q1,b) q3 1

(q4,b) q2
(q2,a) q2 1

(q3,a) q3 2
q2 q3
(q2,b) q5 1

(q3,b) q0
Se observ c nici una dintre clasele 1-nedistinctibile nu s-a mprit n subclase. Deci
relaia s-a stabilizat i s-a obinut:
2
k2 {q 0 , q 5 },{q1 , q 4 },{q 2 , q 3 }
1 2
Deoarece , relaia de echivalen este determinat.
Pasul A.3 Automatul redus are 3 stri (corespunznd celor trei clase de echivalen)
reprezentate de {q 0 , q1 , q 2 } i este descris n Figura 2.4.2 .
q
b a
1

Start q b
0 b
a q
2
Figura 2.4.2
a

Observm c modul n care se construiesc relaiile de k-echivalen este destul de


complicat. Prezentm acum o alt variant [7] de algoritm de de minimizare.

(C) Algoritm de minimizare 2


Fie M=(Q,,,q0,F). Algoritmul va marca perechile de strri (p,q.). O pereche (p,q) va fi
marcat n momentul n care se descoper c p i q nu sunt echivalente. Se construiete
M redus parcurgnd urmtorii cinci pai:

C.1 Se elimin nti nodurile inaccesibile (conform algoritmului (B))


C.2 Se scrie tabelul tuturor perechilor (p,q), iniial nemarcate.
C.3 Se marchez (p,q) dac p F i q F sau invers.
C.4 Se repet urmtoarele pn cnd nu se mai schimb nimic n table:
Dac exist o pereche nemarcat (p,q) astfel nct ((p,a), (q,a)) este marcat
pentru un a , atunci marcheaz perechea (p,q).
C.5 Perechile nemarcate (p,q) sunt perechile echivalente.

Exemplul 2.3.2 S minimizm automatul definit de urmtorul tabel al


funciei de tranzitie, unde strile finale sunt 1, 2, i 5:

a b
0 1 2
1 3 4
2 4 3
3 5 5
4 5 5
5 5 5
C1. Toate nodurile sunt accesibile deci trecem la :
C2. Tabelul iniial este cu toate perechile nemarcate.
0
_
1
_ _
2
_ _ _
3
_ _ _ _
4
_ _ _ _ _
5

C3. Marchez perechile: (stare final, stare nefinal).


0
X 1
X _ 2
_
X X 3
_
X X _ 4
X _ _ X X 5

C4. (i) Alegem acum o pereche nemarcat, (0,3). Pentru intrarea a, 0 i 3 trimit
automatul n 1 i 5, notat (0,3) (1,5). Deoarece perechea (1,5) nu este marcat, nu
vom marca nici (0,3). Cu intrarea b, avem (0,3) (2,5), care tot nemarcat estedeci nu
vom marca perechea (0,3) nici acum. Continuam s verificm perechile i observm c
pentru perechea (1,5) simbolul a realizeaz
(1,5) (3,5), unde perechea (3,5) este marcat., deci marcm perechea (1,5).

Verificnd toate perechile nemarcate se obine tabelul urmtor:


0
X 1
X _ 2
_
X X 3
_
X X _ 4
X X X X X 5

(ii) Acum mai facem o trecere prin tabel fiindc s-a modificat linia strii 5. Vom
obine:
0
X 1
X _ 2
X X X 3
X X X _ 4
X X X X X 5
Tabel care nu se mai modific.
C5. Strile echivalente sunt date de perechile nemarcate: (1,2) i
(3,4), deci automatul redus va fi:
a b
0 1 1
1 3 3
3 5 5
5 5 5

S-ar putea să vă placă și