4.3. Przeksztłceni utomtów skończonych Konstrukcj utomtu skończonego (niedeterministycznego) n podstwie wyrżeni regulrnego (lgorytm Thompson). Wejście: wyrżenie regulrne r nd lfetem T Wyjście : utomt skończony kceptujący język L(r) (język opisny wyrżeniem regulrnym r) Metod: wyodręnić z wyrżeni regulrnego r elementy podstwowe. Dl elementów podstwowych skonstruowć odpowidjące im utomty, nstępnie połączyć je według poniższych zsd:. Dl zudowć A() i 3f 2. Dl T zudowć A() i 3f 3. Gdy A(s) i A(t) są utomtmi dl wyrżeń regulrnych s i t, to () dl wyrżeni s t zuduj A(s t) A(s) i f A(t) () dl wyrżeni st zuduj A(st) i A(s) A(t) f (c) dl wyrżeni s* zuduj A(s*) i A(s) f
(d) dl wyrżeni (s) wykorzystj A(s) ez zmin Przykłd : konstrukcj utomtu skończonego dl wyrżeni regulrnego r = ( )* Rozkłd wyrżeni ( )* : r r 9 r r 7 r 8 r 5 r 6 r 4 * ( r 3 ) r r 2 r = : 2 3 r 2 = : 4 35 r 3 = = r r 2 : 2 3 36 4 5
r 4 = (r 3 ) r 5 = r 4 * : 2 3 6 37 4 5 r 6 = ; r 8 = ; r 9 = - konstrukcje identyczne jk dl r i r 2 r x = : 7' 8 9 3 r= r 5 r x = ( )* Więc osttecznie otrzymujemy: 2 3 6 7 8 9 3 4 5 ( )* Konstrukcj utomtu deterministycznego n podstwie utomtu niedeterministycznego Dl kżdego utomtu skończonego istnieje deterministyczny utomt skończony kceptujący ten sm język. Dl q Q definiuje się ziór -CLOSURE(q) zwierjący te stny r Q, do których możn dojść z q przechodząc tylko przez -przejści, przy czym również q -CLOSURE(q). Dl S Q definiuje się ziór -CLOSURE(S) zwierjący te stny r Q, do których możn dojść ze stnów S przechodząc tylko przez -przejści, przy czym również S -CLOSURE(S).
Dl S Q, dl T rozszerz się definicję funkcji przejści: δ(s,) = { r Q r δ(s,), s S } Istot lgorytmu: Wejście: A=< T, Q, F, q, δ > - utomt skończony niedeterministyczny Wyjście: A =< T, Q, F, r, δ > - utomt skończony deterministyczny (ez -przejść) Metod: Q S! r Q podziór zioru stnów utomtu niederminist. pojedynczy stn utomtu determnistycznego r := -CLOSURE({q }); r - nieoznczony; /* r stn początkowy A */ /* r równocześnie podziór zioru stnów Q utomtu A */ Q := {r }; while X Q nd X nieoznczony do /* X = {q,...,q n } Q*/ egin ozncz X; for kżde T do egin U := {q Q q δ(s,) s X } /* U = δ(x,) */ Y := -CLOSURE(U) ; if Y Q then egin Q := Q {Y}; /* dołączenie Y do Q Y nieoznczony jko nieoznczonego */ end; δ (X,) := Y; /* ustlenie funkcji przejści utomtu A */ end; end; F := { r Q r F } /* tutj r trktowne jko (r Q) podziór stnów utomtu A */ Przykłd: 2 3 6 7 4 5 8 ( )* 9 3 r =-CLOSURE({}) = {,,2,4,7 } = r ; Q ={ r } r oznczmy U = δ(r,) = {3,8} r = -CLOSURE({3,8}) = {,2,3,4,6,7,8 }= r ; δ (r,) = r
U = δ(r,) = {5} r 2 = -CLOSURE({5}) = {,2,4,5,6,7 }= r 2 ; δ (r,) = r 2 Q = { r, r, r 2 } /* stn podkreślony jest oznczony */ r oznczmy U = δ(r,) = {3,8} -CLOSURE({3,8}) = {,2,3,4,6,7,8 }= r ; δ (r,) = r U = δ(r,) = {5,9} -CLOSURE({5,9}) = {,2,4,5,6,7,9 }= r 3 ; δ (r,) = r 3 Q = { r, r, r 2, r 3 } r 2 oznczmy U = δ(r 2,) = {3,8} -CLOSURE({3,8}) = r ; δ (r 2,) = r U = δ(r 2,) = {5} -CLOSURE({5}) = r 2 ; δ (r 2,) = r 2 Q = { r, r, r 2, r 3 } r 3 oznczmy U = δ(r 3,) = {3,8} -CLOSURE({3,8}) = r ; δ (r 3,) = r U = δ(r 3,) = {5,} -CLOSURE({5,}) = {,2,4,5,6,7, } = r 4 ; δ (r 3,) = r 4 Q = { r, r, r 2, r 3, r 4 } r 4 oznczmy U = δ(r 4,) = {3,8} -CLOSURE({3,8}) = r ; δ (r 4,) = r U = δ(r 4,) = {5} -CLOSURE({5,}) = r 2 ; δ (r 3,) = r 2 Q = { r, r, r 2, r 3, r 4 } Osttecznie: δ : Stn r r r r r 2 r 3 r 2 r r 2 r 3 r r 4 r 2 r 4 r r 2 strt r r r 3 r 4 F ={r 4 } ( )* Uzupełnienie utomtu skończonego Wejście: A = < T, Q, F, q, δ > - utomt skończony
Wyjście: A = < T, Q, F, q, δ > - utomt skończony zupełny Q := Q { err } for q Q do for T do if δ(s,) = then δ (q,) : ={ err } else δ (q,) := δ(q,); for T do δ ( err, ) := { err } Przykłd: strt 2 3 err Stn pułpki err nie jest stnem końcowym Redukcj utomtu skończonego A = < T, Q, F, q, δ > - deterministyczny, zupełny utomt skończony x T* - słowo nd lfetem T q,q 2 Q (i) x T* rozróżni stny q i q 2 () (q,x) " * A (q 3, ) (2) (q 2,x) " * A (q 4, ) (3) (q 3 F q 4 F ) (q 3 F q 4 F ) (ii) q i q 2 są k nierozróżnilne, co oznczmy q k q 2 ( x T*) tkie że: () x rozróżni q i q 2 (2) x k (iii) q i q 2 są nierozróżnilne, co oznczmy q q 2 ( k ) (q k q 2 ) (iv) q Q {q } jest nieosiąglny ( x T*) ((q,x) " + A (q,y) y T*) Automt skończony ( deterministyczny, zupełny ) nzywmy zredukownym () ( q Q) (q jest nieosiąglny)
(2) ( q,q 2 Q) (q i q 2 nie są nierozróżnilne) Usuwnie stnów nieosiąglnych A = < T, Q, F, q, δ > - deterministyczny Niech R ędzie relcją (R Q Q) zdefiniowną nstępująco: q Rq 2 ( T) ( δ(q,) = q 2 ) Trze znleźć utomt A = < T, Q, F, q, δ > ez stnów nieosiąglnych, to znczy trze wyznczyć Q = { q Q q R * q } Zkłdmy, że elementy Q są nieoznczone. L := {q }; while L do egin := pierwszy element z L; ozncz w Q; L := L {}; L := L {c Q Rc c nieoznczone w Q }; end; stop; /* elementy nieoznczone w Q są nieosiąglne */ Przykłd: B C F strt A D E G L = { A }; A ; { A, B, C, D, E, F, G }; L = L = { B, D }; B ; { A, B, C, D, E, F, G }; L = { D }
L = { D, C }; C ; { A, B, C, D, E, F, G }; L = { C } L = { C, E}; D ; { A, B, C, D, E, F, G }; L = { E } L = { E }; E ; { A, B, C, D, E, F, G }; L = nieoznczone = nieosiąglne B C strt A D E Łączenie stnów nierozróżnilnych A = < T, Q, F, q, δ > - utomt skończony, ez stnów nieosiąglnych, deterministyczny, zupełny. Tw. Niech n = #Q ( ) ( n-2 ) ( n-3 )... ( ) ( ) przy czym: q q 2 (q F q 2 F) (q F q 2 F) q k q 2 q k- q 2 ( T ) (δ(q,) k- δ(q 2,)) Tw2. Relcj nierozróżnilności ( ) jest zwrotn, symetryczn, przechodni, jest więc relcją równowżności. Algorytm łączeni stnów nierozróżnilnych poleg n wyznczeniu relcji nierozróżnilności ( ) Q Q, nstępnie przypisniu kżdej klsie równowżności relcji ( ) stnu tworzonego utomtu zredukownego. Relcję ( ) wyznczmy zgodnie z tw. poczynjąc od ( ) i dokonując kolejnych podziłów Q n klsy równowżności.
Algorytm łączeni stnów nierozróżnilnych: Wejście : A = < T, Q, F, q, δ > - deterministyczny, zupełny, ez stnów nieosiąglnych Wyjście : A = < T, Q, F, q, δ > - utomt posidjący njmniejszą liczę stnów spośród wszystkich utomtów deterministycznych i zupełnych kceptujących język L(A) () Podzielić Q n klsy równowżności dl relcji ( ), ( ),.... Postępowć tk długo, ż podziły : dl ( k ) i dl ( k+ ) ędą identyczne. Jko podził względem relcji ( ) przyjąć ten dl ( k ) (2) Oznczmy [q] klsę równowżności relcji ( ) w Q, do której nleży q Q Q := { [p] : p Q } (3) δ ( [p], ) := [q] δ(p,) = q (4) q := [q ] (5) F := { [q] q F } Przykłd: 2 ( )* strt 3 4 Relcj Kls równowżności Przejści {4} {,,2,3 } δ(,)= δ(,)=2 δ(,)= δ(,)=3 2 3 δ(2,)= δ(2,)=2 δ(3,)= δ(3,)=4 {4} {,,2, } {3} δ(,)=2 δ(2,)=2 2 3 δ(,)=3 2 {4} {,2, } {} {3} δ(,)=2 δ(2,)=2 3 {4} {,2 } {} {3} końcowy początkowy
Wynik końcowy: strt,2 3 4