Przeksztłceni utomtów skończonych Teori utomtów i języków formlnych Dr inŝ. Jnusz Mjewski Ktedr Informtyki Konstrukcj utomtu skończonego n podstwie wyrŝeni regulrnego (lgorytm Thompson) Wejście: wyrŝenie regulrne r nd lfetem Σ 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( ) Dl zudowć A() i f
Konstrukcj utomtu skończonego n podstwie wyrŝeni regulrnego (lgorytm Thompson) Dl Σ zudowć A() i f Gdy A(s) i A(t) są utomtmi dl wyrŝeń regulrnych s i t, to dl wyrŝeni s t zudowć A(s t) A(s) i f A(t) Konstrukcj utomtu skończonego n podstwie wyrŝeni regulrnego (lgorytm Thompson) Gdy A(s) i A(t) są utomtmi dl wyrŝeń regulrnych s i t, to dl wyrŝeni st zudowć A(st) i A(s) A(t) f Gdy A(s) jest utomtmi dl wyrŝeni regulrnego s, to dl wyrŝeni s* zudowć A(s*) i A(s) f
Przykłd: konstrukcj utomtu skończonego dl wyrŝeni regulrnego r = ( )* Rozkłd wyrŝeni ( )* : r 9 r 7 r 8 r 5 r 6 r 4 * ( r ) Przykłd: konstrukcj utomtu skończonego dl wyrŝeni regulrnego r = ( )* = = 4 5 r = = 6 4 5
Przykłd: konstrukcj utomtu skończonego dl wyrŝeni regulrnego r = ( )* r 4 = (r ) r 5 = r 4 * 6 7 4 5 Przykłd: konstrukcj utomtu skończonego dl wyrŝeni regulrnego r = ( )* r 6 = ; r 8 = ; = - konstrukcje identyczne jk dl i r x = 7' 8 9 r = r 5 r x = ( )* Osttecznie otrzymujemy:
Przykłd: konstrukcj utomtu skończonego dl wyrŝeni regulrnego r = ( )* 6 7 4 5 8 ( )* 9 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 Σ rozszerz się definicję funkcji przejści: δ(s,) = { r Q r δ(s,), s S }
Konstrukcj utomtu deterministycznego n podstwie utomtu niedeterministycznego Wejście: A=< Σ, Q, F, q, δ > - utomt skończony niedeterministyczny Wyjście: A =< Σ, Q, F, r, δ > - utomt skończony deterministyczny (ez -przejść) Metod: Q S r Q /* podziór zioru stnów pojedynczy stn */ r := -CLOSURE({q }); r - nieoznczony; /* r stn początkowy A i równocześnie podziór zioru stnów Q utomtu A */ Q := {r }; while X Q nd X nieoznczony do /* X = {q,...,q k } Q*/ egin ozncz X; for kŝde Σ do egin U := {q Q q δ(s,) s X } /* U = δ(x,) */ Y := -CLOSURE(U) ; if Y Q then egin Q := Q {Y}; Y nieoznczony; /* dołączenie Y do Q 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 () 6 7 4 5 8 ( )* 9 r = -CLOSURE({}) = {,,,4,7 } = r ; Q ={ r } r oznczmy U = δ(r,) = {,8} = -CLOSURE({,8}) = {,,,4,6,7,8 }= ; δ (r,) = U = δ(r,) = {5} = -CLOSURE({5}) = {,,4,5,6,7 }= ; δ (r,) = Q = { r,, } /* stn podkreślony jest oznczony */
Przykłd () 6 7 8 9 oznczmy U = δ(,) = {,8} 4 5 ( )* -CLOSURE({,8}) = {,,,4,6,7,8 }= ; δ (,) = U = δ(,) = {5,9} -CLOSURE({5,9}) = {,,4,5,6,7,9 }= r ; δ (,) = r Q = { r,,, r } oznczmy U = δ(,) = {,8} -CLOSURE({,8}) = ; δ (r,) = r U = δ(,) = {5} -CLOSURE({5}) = ; δ (,) = Q = { r,,, r } Przykłd () 6 7 8 9 r oznczmy U = δ(r,) = {,8} 4 5 ( )* -CLOSURE({,8}) = ; δ (r,) = U = δ(r,) = {5,} -CLOSURE({5,}) = {,,4,5,6,7, } = r 4 ; δ (r,) = r 4 Q = { r,,, r, r 4 } r 4 oznczmy U = δ(r 4,) = {,8} -CLOSURE({,8}) = ; δ (r 4,) = U = δ(r 4,) = {5} -CLOSURE({5,}) = ; δ (r,) = Q = { r,,, r, r 4 }
Przykłd (4) 6 7 4 5 8 ( )* 9 Osttecznie: Stn r r r r 4 r 4 F ={r 4 } strt r r r 4 ( )* Uzupełnienie utomtu skończonego Wejście: A = < Σ, Q, F, q, δ > - utomt skończony Wyjście: A = < Σ, Q, F, q, δ > - utomt skończony zupełny Q := Q { err } for q Q do for Σ do for Σ do if δ(q,) = then δ (q,) := { err } else δ (q,) := δ(q,); δ (err,) := { err }
Przykłd strt Stn pułpki err nie jest stnem końcowym kceptującym err Redukcj utomtu skończonego A = < Σ, Q, F, q, δ > - deterministyczny, zupełny utomt skończony x Σ* - słowo nd lfetem Σ q, q, q, q 4 Q stny utomtu A x Σ* rozróŝni stny q i q () (q,x) A* (q, ) () (q,x) A* (q 4, ) () (q F q 4 F ) (q F q 4 F ) q i q są k nierozróŝnilne, co oznczmy q k q ( x Σ*) tkie Ŝe: x rozróŝni q i q orz x k q i q są nierozróŝnilne, co oznczmy q q ( k ) (q k q ) q Q {q } jest nieosiąglny ( x Σ*) ((q,x) A+ (q,y) y Σ*) Automt skończony (deterministyczny, zupełny) nzywmy zredukownym () ( q Q) (q jest nieosiąglny) () ( q,q Q) (q i q nie są nierozróŝnilne)
Usuwnie stnów nieosiąglnych A = < Σ, Q, F, q, δ > - deterministyczny utomt skończony Niech R ędzie relcją (R Q Q) zdefiniowną nstępująco: q R q ( Σ ) ( δ(q,) = q ) Trze znleźć utomt A = < Σ, 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 end; := pierwszy element z L; ozncz w Q; L := L {}; L := L { c Q R c c nieoznczone w Q }; stop; /* elementy nieoznczone w Q są nieosiąglne */ Przykłd usuwni stnów nieosiąglnych () B C F strt A D E G
Przykłd usuwni stnów nieosiąglnych () L = { A }; A ; Q = { A, B, C, D, E, F, G }; L = L = { B, D }; B ; Q = { A, B, C, D, E, F, G }; L = { D } L = { D, C }; D ; Q = { A, B, C, D, E, F, G }; L = { C } L = { C, E}; C ; Q = { A, B, C, D, E, F, G }; L = { E } L = { E }; E ; Q = { A, B, C, D, E, F, G }; L = nieoznczone = nieosiąglne PRZED: B C F PO: B C strt A strt A D E G D E Łączenie stnów nierozróŝnilnych A = < Σ, Q, F, q, δ > - utomt skończony, ez stnów nieosiąglnych, deterministyczny, zupełny. Twierdzenie. Niech n = #Q ( ) ( n- ) ( n- )... ( ) ( ) przy czym: ( ) Q Q; ( k ) Q Q q q (q F q F) (q F q F) q k q q k- q ( Σ ) (δ(q,) k- δ(q,)) Twierdzenie. Relcj nierozróŝnilności ( ) Q Q jest zwrotn, symetryczn i 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 = < Σ, Q, F, q, δ > - deterministyczny, zupełny, ez stnów nieosiąglnych Wyjście: A = < Σ, 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 ) ) Oznczmy [q] klsę równowŝności relcji ( ) w Q, do której nleŝy q Q ) Q := { [p] p Q } 4) δ ( [p], ) := [q] δ(p,) = q 5) q := [q ] 6) F := { [q] q F } Przykłd Relcj Klsy równowŝności Przejści Przed: ( )* {4} {,,, } {4} {,, } {} {4} {, } {} {} {4} {,} {} {} kceptujący początkowy δ(,)= δ(,)= δ(,)= δ(,)= δ(,)= δ(,)= δ(,)= δ(,)=4 δ(,)= δ(,)= δ(,)= δ(,)= δ(,)= strt Po: strt, 4 4