2.3 Minimizarea unui automa finit Definiţia 2.3.1
ea este:
O relaţie binară R pe mulţimea S se se numeşte relaţie de echivalenţă dacă
(xRx, ∀x ∈ S) 1) Reflexivă (xRy ⇒ yRx) 2) Simetrică (xRy, yRz ⇒ xRz) 3) Tranzitivă O relaţie de eci!alenţă peste S "mparte "mparte mulţimea S "n "n clase de eci!alenţă, submulţimi
x, y ∈ Si ⇔ xRy dis#uncte S ast$el "nc%t & S = i Si i
Se p'ate c'nstrui un cel mai mic mic aut'mat care acceptă un limba# limba# T(M), prin eliminarea stăril'r inaccesibile şi c'masarea c'masarea cel'r redundante& Stările redundante sunt determinate prin partiţi'narea stăril'r aut'matului "n clase de eci!alenţă ast$el "nc%t $iecare clasă c'nţine stări care nu se p't distine "ntre ele şi este at%t de mare c%t este p'sibil& Definiţia 2.3.4 ie . (-, , +, * , ) un aut'mat $init determinist şi q1 ,q ,q2 d'uă stări distincte& Spunem că x ∈ distinge q1 de q2 dacă: (* , x) 0 (* , ) (* , x) 0 (* , ) şi una şi numai una dintre stările *3 şi * este stare $inală adică: *3 ∈ ⇒ * ∉ şi * ∈ ⇒ *3 ∉& Definiţia 2.3.5 Spunem că q1 şi q2 sunt knedistincti!ile ( * ≡ * ) dacă şi numai dacă nu există x, cu x≤ ≤ k , ast$el "nc%t x distine q1 de q2& Definiţia 2.3.6 Spunem că *1 si *2 sunt nedistincti!ile (*1≡*2) dacă sunt k 5nedistinctibile 5nedistinctibile pentru ∀ k k ≥ ≥ "& Definiţia 2.3.7 O stare q este inaccesi!ilă dacă nu există x ast$el "nc%t (* , x) 0 (*, 2) & Definiţia 2.3.8 M este este un a#t$mat red#s dacă nici ' stare nu este inaccesibilă şi nu există d'uă stări nedistinctibile& Observaţia 2.3.3
=
/
∗
1
3
2
4
1
2
/
Teorema Teorema 2.3.3 %ie . (-, , +, * / , ) #n a#t$mat finit determinist c# n stări& Stările q1 'i q2 s#nt nedistincti!ile dacă 'i n#mai dacă s#nt (n2)nedistincti!ile& =
6 7em'nstraţie: 8mpl 8mplic icaţ aţia ia dire direct ctăă (9⇒9 ) este este e!ide e!ident ntă ă să dem'n dem'nst stră răm m impl implic icaţ aţia ia in!e in!ers rsăă (9 9) : a) 7acă % are are " sau n stări dem'nstraţia este imediată& !) ;resupunem că " < card(%) card(%) < n& n& <'m <'m dem'nstra dem'nst ra că ≡⊆ ≡ ⊆ ≡ ⊆ &&& ≡ ⊆ ≡ & Obser!ăm că pentru q1 ,q ,q2∈ a!em: ⇐
n−2
n −3
1
/
(1) (2)
/
*1 ≡ *
⇔ ( +(*1 , ), +(* 2 , ) ∈ sau - = ⇒ *1 , * 2 ∈ sau, respecti!, ∉ ) 4 4 51 4 51 *1 ≡ * ⇔ *1 ≡ * 2 ∧ ∀a ∈ Σ, +(*1 , a) ≡ +(* 2 , a)
/
Relaţia ≡ partiţi'nează "n d'uă clase de eci!alenţă: % şi *% & 7acă ( 4 ≡1) ≠ (≡4 ) atunci ( ≡1) este ' ra$inare a lui (≡) şi c'nţine cel puţin ' clasă de eci!alenţă "n plus& ;entru că sunt cel mult n51 stări "n sau -= , ⇒ ∃ cel mult n52 ra$inări a lui ≡/ & >şadar, ( ) ( 4 1 ) ( 4 ) ≡ este prima relaţie ≡ pentru care ≡ = ≡ &? Observaţia 2.3.4 7'uă stări sunt distinctibile dacă ele se p't distine pe un şir de intrare de lunime mai mică dec%t numărul stăril'r& +
k +
k
k
+
Algoritmi pentru minimizarea automatului finit (A) Algoritm de minimizare 1
ie .@(-,∑,δ,*/,)& Se c'nstruieşte .A redus parcur%nd următ'rii trei paşi: Se elimină "nt%i n'durile inaccesibile (c'n$'rm al'ritmului (B)) Se c'nstruiesc relaţiile de eci!alenţă ≡, ≡,&&& p%nă c%nd relaţia se stabilizează A.2 adică (≡4 ) = ( 4 ≡1) & ( ) >leem & Se c'nstruieşte .A@(-A, ∑, δA, * /, A) unde -A e mulţimea clasel'r de eci!alenţă A.3 ale lui -, ast$el: δA(C*D,a)@CpD dacă δ(*,a)@p */A@C*/D A@{ C*D *∈ } A.1
/
1
+
4
≡ = ≡
;entru eliminarea stăril'r inaccesibile se p'ate $'l'si 'rice al'ritm din te'ria ra$uril'r de eliminare a n'duril'r inaccesibiel din n'dul reprezent%nd starea iniţială, unde a!em: Intrare 5 Era$ul (,Γ ) cu Γ (q,+)a ⇔ δ (q,a)+ 5 q"∈ .ulţimea de n'duri - ⊆ ast$el "nc%t există un drum de la q" la ∀ +∈- & Ieşire >l'ritmul marcează succesi! n'durile accesibile din q" printr5un drum& >st$el, ăseşte n'durile accesibile şi le elimină pe celelalte& ;rezentăm "n c'ntinuare d'uă !ariante ale acestui al'ritm: (B) Algoritm de eliminare a stărilor inaccesibile.
Varianta I BI.1 8niţializează -.q" / şi marcează q/ cu "&
BI.2 ;entru ∀ q∈- caută +∈- ast$el "nc%t există un arc (q,+)∈Γ 0 marca l#i q (dacă + nu e marcat) şi adauă pe q la - reia pasul 2& 7acă ∀ q∈- şi ∀ + ast$el "nc%t (q,+)∈Γ , + este marcat atunci stop&
marcează + cu 1F
Sau: Varianta a II-a BII.1 8niţializează 3{ q"} , marcează q"& BII.2 7acă 3 e !id stop & 7acă nu, alee primul element q din 3 şi "l sc'ate din 3& BII.3 ;entru ∀ +∈ ast$el "nc%t (q,+)∈Γ , dacă + nu e marcat, capul listei 3& Salt la pasul 2&
marcează + şi adauă + "n
<'m arăta "n c'ntinuare că aut'matul 'bţinut prin al'ritmul de minimizare este aut'matul cu număr minim de stări& Teorema 2.3.4. 4#t$mat#l M- definit de alg$ritm#l de minimizare (4) este a#t$mat#l c# cel mai mic n#măr de stări acce+t5nd 3(M)&
6 7em'nstraţie: ;resupunem că există un aut'mat M--, care are mai puţine stări dec%t M- şi că 3(M6)3(M)&
;entru că $iecare clasă de eci!alenţă indusă de relaţia de eci!alenţă nedistinctibilitatea, ≡, este ne!idă, rezultă că $iecare stare din M- este accesibilă& ;entru că M6 are mai puţine stări dec%t M- rezultă că ∃ 7,x d'uă cu!inte ast$el "nc%t: (* ′/′ , G) 0 .H (*, 2) (* ′/′ , x) 0 .H (*, 2) unde *′/′ este starea iniţială a lui M6& 7ar 7 şi x c'nduc M- "n stări di$erite, deci 7 şi x c'nduc M "n stări di$erite, şi atunci: (* , G) 0 . (p, 2) (* , x) 0 . (r, 2) stări care s#nt distincti!ile, adică ∃y∈∑ ast$el "nc%t δ(p,y)∈ şi δ(r,y) ∉ ⇒ δ(*/,Gy)∈ şi δ(*/,xy)∉ ⇒ Gy∈I(.) iar xy∉I(.), pe c%nd δH(*/,Gy)@δH(*/,xy) deci 78 şi x8 sunt de'dată "n T(M6)T(M) ⇒ c'ntradicţie& ? / /
Exemplul 2.3.1
Să se c'nstruiască aut'matul $init redus pentru aut'matul $init . din a
Start
a *3
b b
*/
a b a
*1
a
/
≡
L* / , * M K,L* 1 , * 2 , * 3 , * K
>nalizăm 15nedistinctibilitatea:
+(*/,a) = *M /
b *2
b
iura 2&&1 & 6 >plicăm al'ritmul (>)& I'ate n'durile sunt accesibile& Pasul A.1 J'nstruim relaţiile de eci!alenţă& Pasul A.2 8niţializare ( "5nedistinctibilitate ): 4 = /
*M
≡ (ciar eale) +(*M ,a) = *M 1 (răm%n "n aceeaşi clasă) ⇒ * / ≡ *M +(*/, b) = *1 / ≡ +(*M ,b) = * +(*1,a) = * / ≡ +(* 2 ,a) = * 2 1 ⇒ *1 ≠*2 (se !'r separa "n clase di$erite) +(*1,b) = *3 / ≠ +(* 2 , b) = *M
*
a
b %ig#ra 2&9&1
+(*1,a) = * /
≡ +(*3 ,a) = *3 1 ⇒ *1 ≠ *3 (se !'r separa "n clase di$erite) +(*1,b) = *3 / ≠ +(*3 ,b) = * / Ntiind de#a că q1 se separă de q2 şi de q: , trebuie !ăzut dacă q2 şi q: răm%n t'tuşi "mpreună:
+(* 2 ,a) = *2 /
≡ +(*3 ,a) = *3 1 ⇒ *2 ≡*3 (răm%n "n aceeaşi clasă de eci!alenţă) +(* 2 , b) = *M / ≡ +(*3 ,b) = */ ltima stare neanalizată este q90 din cele !ăzute de#a, aceasta ar putea aparţine $ie clasei care c'nţine pe q1, sau celei care c'nţine pe q2 şi q:, sau unei clase n'i& Pn următ'rul calcul se !ede că prima este !arianta !alabilă:
+(*1,a) = * /
≡ +(* , a) = *1 1 ⇒ *1 ≡ * +(*1,b) = *3 / ≡ +(* , b) = *2 >şadar, s5a 'bţinut: 4 = 1
1
≡
L* / , * M K,L* 1 , * K,L* 2 , * 3 K
Să analizăm 25nedistinctibilitatea:
+(* / ,a) = *M 1
≡ +(*M ,a) = *M 2 ⇒ */ ≡ *M +(* / , b) = *1 1 ≡ +(*M ,b) = * +(*1,a) = * 1
≡ +(* , a) = *1 2 ⇒ *1 ≡ * +(*1,b) = *3 1 ≡ +(* , b) = *2 +(* 2 ,a) = *2 1
≡ +(*3 ,a) = *3 2 ⇒ *2 ≡ *3 +(* 2 , b) = *M 1 ≡ +(*3 ,b) = */ Se 'bser!ă că nici una dintre clasele 15nedistinctibile nu s5a "mpărţit "n subclase& 7eci relaţia s5a stabilizat şi s5a 'bţinut: 2
4 = 2
7e'arece
1
≡
L* / , * M K,L* 1 , * K,L* 2 , * 3 K
2
, relaţia de eci!alenţă este determinată& Pasul A. >ut'matul redus are 3 stări (c'respunz%nd cel'r trei clase de eci!alenţă) reprezentate de L* , * , * K şi este descris "n iura 2&&2 & ≡ =≡
/
1
2
*
b
a
1
Start
* /
b b *
a
2
%ig#ra 2&9&2
a
? Obser!ăm că m'dul "n care se c'nstruiesc relaţiile de 45eci!alenţă este destul de c'mplicat& ;rezentăm acum ' altă !ariantă CQD de al'ritm de de minimizare& (C) Algoritm de minimizare 2
ie .@(-,∑,δ,*/,)& >l'ritmul !a marca perecile de strări (p,*&)& O perece (p,*) !a $i marcată "n m'mentul "n care se desc'peră că p şi * nu sunt eci!alente& Se c'nstruieşte .A redus parcur%nd următ'rii cinci paşi: Se elimină "nt%i n'durile inaccesibile (c'n$'rm al'ritmului (B)) Se scrie tabelul tutur'r perecil'r (+,q), iniţial nemarcate& Se marceză (+,q) dacă + ∈ % şi * ∉ sau in!ers& Se repetă următ'arele p%nă c%nd nu se mai scimbă nimic "n table: 7acă există ' perece nemarcată (+,q) ast$el "nc%t ( δ (+,a), δ (q,a)) este marcată pentru un a ∈ ∑ , atunci marcează perecea (+,q)& ;erecile nemarcate (p,*) sunt perecile eci!alente& C.5 C.1 C.2 C.3 C.4
Exemplul 2.3.2
Să minimizăm automatul definit de următorul tabel al funcţiei de tranzitie, unde stările finale sunt 1, 2, şi 5:
a
b
/ 1 2 1 3 2 3 3 M M M M M M M !1. I'ate n'durile sunt accesibile deci trecem la : J2& Iabelul iniţial este cu t'ate perecile nemarcate& / 1 2 3
M
J3& .arceză perecile: (stare $inală, stare ne$inală)& / 1 2 3 M J& (i) >leem acum ' perece nemarcată, (",:)& ;entru intrarea a, " şi : trimit aut'matul "n 1 şi ;, n'tat (",:) < (1,;)& 7e'arece perecea (1,;) nu este marcată, nu !'m marca nici (",:)& Ju intrarea !, a!em (",:) < (2,;), care t't nemarcată estedeci nu !'m marca perecea (",:) nici acum& J'ntinuam să !eri$icăm perecile şi 'bser!ăm că pentru perecea (1,;) simb'lul a realizează (1,;) < (:,;), unde perecea (:,;) este marcată&, deci marcăm perecea (1,;)&
(ii) >cum mai $acem ' trecere prin tabel $iindcă s5a m'di$icat linia stării M& <'m
/ 1 2 3 Iabel care nu se mai m'di$ică&
M
C5. Stările echivalente sunt date de perechile nemarcate: 1,2! şi ",#!, deci automatul redus va fi:
/ 1 3 M
a
b
1 3 M M
1 3 M M