4.2. Automt skończony Przykłd: Rozwżmy język nd lfetem inrnym T = {0, } skłdjący się z łńcuchów zero-jedynkowych o tej włsności, że licz zer w kżdym łńcuchu jest przyst i licz jedynek w kżdym łńcuchu też jest przyst. Wszystkie łńcuchy inrne możemy podzielić n cztery grupy: S łńcuchy z przystą liczą jedynek i przystą liczą zer, A łńcuchy z przystą liczą jedynek i nieprzystą liczą zer, B łńcuchy z nieprzystą liczą jedynek i przystą liczą zer, C łńcuchy z nieprzystą liczą jedynek i nieprzystą liczą zer. Anlizujemy łńcuch zero-jedynkowy symol po symolu od lewej strony. Przed rozpoczęciem nlizy jesteśmy w grupie S (łńcuch pusty zwier zero jedynek i tyleż zer, więc licz jedynek i licz zer w tym łńcuchu są przyste). Jeśli pierwszym symolem jest jedynk przechodzimy do grupy A (wtedy licz jedynek jest nieprzyst, licz zer jest dlej przyst), zś jeśli pierwszym symolem jest zero przechodzimy do grupy B (wtedy licz zer jest nieprzyst, licz jedynek jest dlej przyst). Zpisujemy to w postci produkcji: S A 0B Dlej nlizujemy podonie kolejne symole łńcuch. Np. jeśli jesteśmy w grupie A i przeczytmy zero przechodzimy do grupy C, w której zrówno licz jedynek, jk i zer są nieprzyste (odpowiedni zpis: A 0C). Proces nlizy łńcuch możn zilustrowć w postci poniższego grfu: S prz. 0 prz. A nieprz. 0 prz. 0 0 0 0 B prz. 0 nieprz. C nieprz. 0 nieprz. Wreszcie, gdy przeczytliśmy cły łńcuch, sprwdzmy, czy ztrzymliśmy się w grupie S. Jeśli tk dny łńcuch spełni nłożony nń wrunek przystej liczy jedynek i przystej liczy zer.
Wówczs nleży wyeliminowć z wyprowdzeni symol S (odpowiedni zpis: S ε). Osttecznie grmtyk nszego język m postć: S A 0B ε A S 0C B C 0S C B 0A Opisn procedur i zmieszczony powyżej rysunek ilustrują włściwie nie tyle proces konstruowni grmtyki dl pewnego język, co proces odpowidni n pytnie: czy dny łńcuch jest słowem nleżącym do dnego język. Jest to pewien (w nszym przypdku deterministyczny) lgorytm postępowni, polegjący n czytniu dnego łńcuch symol po symolu i przechodzeni od jednego stnu do drugiego. Stny reprezentowne są przez kółk (węzły grfu), zś przejści pomiędzy stnmi, to skierowne krwędzie, opisne (etykietowne) odpowiednimi symolmi lfetu, z którego pochodzą symole łńcuch. Jeden ze stnów jest wyróżniony jko stn początkowy (n rysunku jest to stn oznczony krótką strzłką dochodząc do niego z zewnątrz). Od tego stnu zwsze rozpoczynmy wędrówkę po grfie. Niektóre stny są trktowne jko stny końcowe kceptujące (są one zznczone kółkmi rysownymi podwójną linią). Jeśli w trkcie nszej wędrówki po grfie ztrzymmy się w tkim stnie, to kceptujemy dny łńcuch, jeśli ztrzymmy się w stnie nie ędącym stnem końcowym nie kceptujemy nlizownego łńcuch. Ztrzymnie się w nszym przypdku może yć tylko spowodowne przeczytniem dnego słow do końc i stwierdzeniem, że już nic nie pozostło do przeczytni. Opisny powyżej lgorytm nosi nzwę utomtu skończonego ( dokłdnie deterministycznego i zupełnego utomtu skończonego). Okzuje się, że językmi, które mogą yć kceptowne przez tego typu utomty są języki regulrne (ziory regulrne) i tylko one. Pewnym potwierdzeniem tej reguły jest fkt, że otrzymn w nszym przykłdzie grmtyk jest grmtyką prwostronnie liniową. Skąd pochodzi nzw utomt? Możemy soie wyorzić, że nsz lgorytm to pseudourządzenie dysponujące tśmą wejściową, n której zpisny jest dny łńcuch i nd którą może poruszć się głowic odczytując pojedyncze symole. Głowic m tylko możliwość ruchu w prwo, tzn. od początku łńcuch ku jego końcowi. Kżdorzowo głowic przesuw się tylko o jeden symol. W kżdym kroku głowic widzi tylko jeden symol n tśmie. W kżdym momencie utomt chrkteryzowny jest przez ktulny stn (licz możliwych stnów jest skończon). Automt posid swoje sterownie (jest ono zdefiniowne przez tzw. funkcję przejść utomtu), które n podstwie ktulnego stnu i symolu czytnego przez głowicę, określ nstępny stn w nstępnym kroku. Początkowo głowic ustwion jest n pierwszym symolu dnego łńcuch, zś utomt znjduje się w stnie początkowym. Kżdy krok prcy utomtu to: odczytnie przez głowicę symolu z tśmy wejściowej, określenie nowego stnu i przesunięcie głowicy o jedną pozycję w prwo n tśmie wejściowej. Kroki są powtrzne tk długo, jk długo możn. Automt ztrzym się, gdy np. przeczytł wejście do końc lu z innych powodów nie jest w stnie wykonć żdnego kroku. Ztrzymnie się utomtu w stnie nleżącym do grupy stnów końcowych ozncz kceptcję czytnego łńcuch i stwierdzenie, że łńcuch zpisny n tśmie wejściowej jest słowem nleżącym do język kceptownego przez utomt. Ztrzymnie się nszego utomtu (w jego wersji deterministycznej i zupełnej) w stnie nie ędącym stnem końcowym ozncz rk kceptcji dnego łńcuch.
Formln definicj utomtu skończonego Automtem skończonym nzywmy piątkę A = < T, Q, F, q o, δ >, gdzie: T ziór symoli terminlnych (lfet wejściowy) Q ziór stnów, #Q < F Q ziór stnów końcowych q o Q stn początkowy δ funkcj przejści δ: Q ( T {ε})! 2 Q konfigurcj (q i,) q i przed wykonniem kroku konfigurcj (q j,) q i po wykonniu kroku Konfigurcj utomtu to dwójk: (q, w), gdzie q jest ktulnym stnem, zś w jest nieprzeczytną przez utomt częścią słow zpisnego n tśmie wejściowej W T* q Q Konfigurcj początkow : q 0 Konfigurcj końcow ( kceptując ): q F stn końcowy
Wyprowdzenie ezpośrednie: ( q, x ) " A ( q, x ) gdzie: q,q Q, ( T {ε}), x T*, q δ(q,) Wyprowdzeni pośrednie " + * A i " A są odpowiednio przechodnim orz przechodnim i zwrotnym domknięciem relcji wyprowdzeni ezpośredniego " A : (q,w) " + A (q,w ) p o,...,p n (p i konfigurcje), tkie że: q o =(q,w), q n = (q, w ), p i " A p i+ dl i=0,,...,n- (q,w) " * A (q, w ) (q,w) " + A (q,w ) (q,w) = (q, w ) Konfigurcj lokując : (q,w) jest lokując! ( (q,w )) ((q,w) " A (q,w )) x T* jest słowem kceptownym przez utomt A (skończony) ( q F) ((q o,x) " A * (q,ε)) Język L jest kceptowny przez utomt A ( co oznczmy L(A) ) L = L(A) = { x T* x jest kceptowne przez A } Przykłd : Język regulrny opisny wyrżeniem regulrnym ( )* T={,} Q={q 0, q,q 2,q 3 ) F={q 3 } Q 0 stn początkowy δ - funkcj przejści: Stn q 0 { q 0, q } {q 0 } q {q 2 } q 2 {q 3 } strt q 0 q q 2 q 3 Anlizowne słowo : L( ( )* ) Możliwe wyprowdzeni:
( q 0, ) " ( q 0,) " ( q, ) " ( q 2, ) " ( q 3, ε) konfigurcj końcow kceptując) ( q 0, ) " ( q 0,) " ( q 0, ) " ( q 0, ) " ( q 0, ε) konfigurcj lokując o q 0 F ( q 0, ) " ( q,) konfigurcj lokując, słowo nie zostło przeczytne do końc Automt nie jest deterministyczny. Jednk istnieje wyprowdzenie (ciąg kroków), które doprowdz do konfigurcji kceptującej, więc zgodnie z definicją utomt kceptuje to słowo. Włsności utomtu skończonego Automt skończony A jest zupełny ( T) ( q Q) (#δ(q,) Automt skończony A jest deterministyczny (i) ( q Q) (#δ(q,ε) = 0) orz (ii) ( T) ( q Q) (#δ(q,) ) Automt skończony A jest deterministyczny i zupełny (i) ( q Q) (#δ(q,ε) = 0) orz (ii) ( T) ( q Q) (#δ(q,) = ) Automt skończony zupełny nzywmy utomtem Rin-Scott. Automt skończony, deterministyczny i zupełny nzywmy deterministycznym utomtem Rin-Scott Przykłd: Deterministyczny zupełny utomt kceptujący język opisny wyrżeniem regulrnym ( )* T = {, } Q = { 0,, 2, 3, } F = { 3 } q 0 = 0 δ - funkcj przejści: Stn 0 0 strt 0 2 2 3 3 0 Przypomnienie poprzedniego przykłdu : utomt niederministyczny i niezupełny 2 3 0 2 3