R O Z D Z I A Ł I I I Grmtyki regulrne Przypomnijmy, Ŝe grmtykmi regulrnymi nzywmy wszystkie te grmtyki genertywne, których wszystkie reguły produkcji mją postć A P lu A PB, gdzie A, B V N, P V T *.. Postć normln grmtyk regulrnych Twierdzenie 3. (twierdzenie o postci normlnej). KŜdy język regulrny moŝe yć generowny przez grmtykę o regułch produkcji nstępującego ksztłtu: (i) X Y, (ii) X λ, gdzie X,Y V N, zś V T. Ide twierdzeni. W dowodzie posłuŝymy się metodę sprowdzlności dowolnej grmtyki regulrnej do grmtyki w postci normlnej z powyŝszego twierdzeni. MoŜliwość jej wykorzystni zdeterminuje nm wyprowdzlność kŝdego ze słów generownego przez nią język regulrnego. Opercję tę wykonuje się w nstępujący sposó: njpierw (wychodząc oczywiście n smym początku z symolu początkowego S) stosujemy (tyle rzy, jk jest długość wyprowdznego słow) reguły rozszerzjące ksztłtu (i), nstępnie stosujemy do osttniego symolu (nieterminlnego) tzw. regułę zerow ksztłtu (ii) (jest to reguł zijjąc ów symol nieterminlny). Mmy więc: S A 2 A 2... 2... n - A n - 2... n - n A n 2... n. ZuwŜmy, Ŝe z kŝdym rzem stosowliśmy tu reguły produkcji do jedynego, stojącego zwsze n smym końcu symolu nieterminlnego, dzięki czemu sekwencyjnie od lewej do prwej generowliśmy dne słowo, n końcu decydowliśmy się n zkończenie derywcji wygenerownego juŝ słow. Uwg. MoŜn podć tkŝe nlogiczne twierdzenie, zstępując w nim jedynie reguły ksztłtu (ii) X λ regułmi ksztłtu (ii') X. KŜd z derywcji wyglądły wówczs w nstępujący sposó:
Grmtyki regulrne 45 S A 2 A 2... 2... n - A n - 2... n - n. Były więc on o jeden krok krótsz. RównieŜ tu z kŝdym rzem stosowliśmy reguły produkcji do jedynego, stojącego zwsze n smym końcu symolu nieterminlnego, dzięki czemu sekwencyjnie od lewej do prwej generowliśmy dne słowo, derywcję tą kończąc jednk juŝ nie regułą zerową, lecz tzw. regułą końcową. Pozwoliło to nm skrócić ją o jeden krok, gdyŝ w przypdku tym kŝd reguł doudowuje tu po jednej, kolejnej literze do generownego słow (nie m juŝ reguł pustych). Tk sformułowne stwierdzenie jest oczywiście prwdziwe, jk to pokzuje poniŝsze (ędące dowodem konstrukcyjnym) jego uzsdnienie: Po sprowdzeniu grmtyki regulrnej do postci normlnej z twierdzeni 3., usuwmy z niej kŝdą z reguł ksztłtu X λ, przy czym o ile tylko Z X (dl pewnego Z V N i V T ) jest juŝ regułą tej grmtyki, to do grmtyki tej dodjemy jeszcze regułę końcową Z. Tk otrzymn grmtyk jest równowŝn z grmtyką z twierdzeni 3.. (uzsdnieni) Dowód (tw. 3.). Niech G = <V N, V T, S, F> ędzie grmtyką regulrną. Ztem wszystkie jej reguły produkcji są postci: ) A P lu ) A PB, gdzie A, B V N, P V T *. Gdy P = 0 (tj. P = λ), to reguły te (tj. postci A λ i A B) zostwimy ez zmin (mimo, Ŝe tylko pierwsz z nich czyni zdość tezie twierdzeni). KŜdą regułę produkcji grmtyki G postci ), w której P = zstępujemy dwiem regułmi postci A PW, W λ, gdzie A i P są określone j.w., W jest nowym symolem nieterminlnym (tj. W V N ). Oie te reguły są w postci z dowodzonego twierdzeni. KŜdą regułę produkcji grmtyki G postci ), w której P = zostwimy ez zmin (spełni zdość wymgnemu ksztłtowi reguł z twierdzeni). W pozostłych regułch produkcji grmtyki G, P >. KŜdą z nich: (i) gdy jest ksztłtu A... n (gdzie A V N, zś,..., n V T ) wówczs zstępujemy ją ciągiem reguł A Y, Y 2 Y 2,..., Y n - n Y n, Y n λ, gdzie wszystkie Y i ( i n) są nowymi nieterminłmi (tj. Y i V N, Y i Y j dl wszystkich i j),
46 Grmtyki regulrne (ii) gdy jest ksztłtu A... n B (gdzie A, B V N, zś,..., n V T ), to wówczs zstępujemy ją ciągiem reguł A Z, Z 2 Z 2,..., Z n - n B, gdzie wszystkie Z i ( i n) są nowymi nieterminłmi (tj. Z i V N, Z i Z j dl wszystkich i j). W ten sposó otrzymujemy grmtykę G' = <V N ', V T, S, F'>, w której: V N ' = V N {W} {Z i } i I {Y j } j J, gdzie I i J są dwom ziormi indeksów nowych nieterminłów odpowiednio postci Z i i Y j, F' opisliśmy wyŝej. W G' występują jedynie reguły produkcji ksztłtu: ) X Y, 2) X Y, 3) X λ, gdzie X, Y V N ', zś V T. ZuwŜmy, Ŝe grmtyki G i G' są soie równowŝne, w G' w stosunku do poŝądnej grmtyki w postci z twierdzeni ndmirowe są jedynie reguły postci X Y, gdzie X,Y V N '. Korzystjąc z fktu, Ŝe kŝd z derywcji w G' jest łńcuchow w stosunku do derywcji w G, tworzymy (nlogicznie jk w dowodzie twierdzeni 2.2 o postci normlnej Chomsky ego) nstępującą konstrukcyjną procedurę pozywni się ndmirowych reguł produkcji postci 2). Njpierw dl kŝdego X V N ' oznczmy przez U(X) ziór tych wszystkich nieterminłów, z których moŝn wyprowdzić X jedynie z pomocą reguł tejŝe postci, powiększony o ziór jednoelementowy {X}. Ztem Y * G X witw, gdy Y U(X), gdzie X,Y V N '. Mjąc tk określony ziór U(X) (dl dowolnego X V N ') - z grmtyki G' moŝemy wyeliminowć wszystkie reguły z F' postci X Y (gdzie X,Y V N '), otrzymując tym smym grmtykę G'' = <V N ', V T, S, F''> o nstępujących regułch produkcji F'': ) Z λ F'' X V N' : (Z U (X) X λ F') (tj. Z U(X) Z λ F''); K L Z Y X λ - reguły F' - reguły F'' 2) Podonie, Z V F'' X V N' : (Z U(X) X V F'). Rys. 3..
Grmtyki regulrne 47 K L Z Y X V - reguły F' - reguły F'' Rys. 3.2. Oczywiście G' G'', ztem (poniewŝ równieŝ G G') mmy, Ŝe G G'', tj. L(G) = L(G''). 2. Wykresy grmtyk regulrnych W grmtykch regulrnych wszystkie reguły produkcji mją postć A P lu A PB, gdzie A, B V N, P V T. N mocy twierdzeni o postci normlnej (tw. 3.), moŝemy je zstąpić regułmi produkcji jedynie ksztłtu X Y i X λ, gdzie X,Y V N, zś V T. W wykresch grmtyk regulrnych wierzchołki ędą oznczć symole nieterminlne, krwędzie reprezentowć symole terminlne. Tk więc zpis A B Rys. 3.3. ozncz, Ŝe A B jest regułą produkcji rozwŝnej grmtyki. Regułę A λ umieszczmy n wykresie podkreśljąc juŝ istniejące n nim A: A B Rys. 3.4. Symol początkowy oznczć ędziemy kropą ( ) u góry: Rys. 3.5. S Przykłd 3.. Niech G = <V N, V T, S, F>, gdzie V N = {S, A,..., A 5 }, V T = {, }, F = {S, S A, S A 2, A A 2, A A 3, A 2 A 2, A 2 A 3, A 2 A 4, A 3 A 4, A 3 λ, A 4 S, A 5 A 2 }. Z ksztłtu reguł produkcji F widzimy, Ŝe jest to grmtyk regulrn. Dl celów wykresu zł jest tutj jedynie reguł S. Dl A 6 V N mmy, Ŝe jest on równowŝn prze reguł S A 6 i A 6 λ. Tk powstły ziór F' = (F \ {S }) {S A 6, A 6 λ} jest juŝ odpowiedni dl celów sporządzeni nstępującego wykresu powyŝszej grmtyki: A 6 S A A 3 A 5 A 2 A 4 Rys. 3.6.
48 Grmtyki regulrne Ciąg wierzchołków A,..., A k nzywmy d r o gą w wykresie grmtyki regulrnej G witw, gdy istnieją,..., k - V T tkie, Ŝe reguły A A 2, A 2 2 A 3,..., A k - k - A k F. Drog A,..., A k wyznczon jest przez wrtości, 2,..., k -. Nie jest to jednk jednoznczne. Przykłd 3. - c.d. WyrŜenie moŝemy wyznczyć m.in. n jednej z nstępujących trzech dróg: S, A 2, A 3, A 4 ; S, A, A 3, A 4 ; S, A, A 2, A 4. Drogę A,..., A k, w której A = S, A k jest symolem podkreślonym (tj. zstępującym regułę A k λ) nzywmy d r o gą k ońcową. Lemt. Dl dowolnej grmtyki regulrnej G, P L(G) witw, gdy istnieje co njmniej jedn drog końcow wyznczon przez P. Pojęci symoli psywnych, ktywnych, osiąglnych i nieosiąglnych w dnej grmtyce zostły określone dl grmtyk ezkontekstowych w prgrfie 4. poprzedniego rozdziłu. PoniewŜ jednk kŝd grmtyk regulrn jest teŝ ezkontekstow, ztem moŝemy przyjąć, Ŝe tym smym są one określone równieŝ dl grmtyk regulrnych. Przykłd 3. - c.d. A jest tu symolem nieosiąglnym i jednocześnie rk jest symoli psywnych. PoniewŜ do nieosiąglnego symolu nieterminlnego nie prowdzi Ŝdn drog od symolu początkowego S, ztem z wykresu moŝemy usunąć reprezentujący go wierzchołek. Podonie, moŝemy usunąć z wykresu grmtyki regulrnej wszystkie symole psywne, jko nie umoŝliwijące wyprowdzenie Ŝdnego słow w powyŝszej grmtyce (nie prowdzi z nich owiem Ŝdn drog do jkiegokolwiek z symoli końcowych). MoŜemy rozstrzygnąć (n mocy twierdzeń z 4. prgrfu poprzedniego rozdziłu, ądź teŝ ezpośrednio z wykresu grmtyki regulrnej), które symole nieterminlne są psywne i które symole są nieosiąglne. Przez konsekwentne usuwnie z dnej grmtyki regulrnej wszystkich symoli nieosiąglnych i psywnych otrzymujemy prostszą (równowŝną jej) grmtykę regulrną, której wykres jest spójny, kŝdy jego wierzchołek jest lo końcowy lo leŝy n przynjmniej jednej drodze końcowej (Ŝden z nich nie jest więc zędny).
Grmtyki regulrne 49 Podonie, jk to miło miejsce w przypdku grmtyk ezkontekstowych - o grmtyce tkiej (tj. tkiej, w której Ŝden symol nieterminlny nie jest ni psywny ni nieosiąglny) ędziemy mówić, Ŝe jest on w p o s t c i z r e d u k o w n e j. Oprócz opercji wyzywni się symoli nieterminlnych i psywnych, n grmtykch regulrnych ( więc i n ich wykresch) wprowdz się jeszcze jedną opercję, minowicie opercję zstąpieni tej grmtyki równowŝną jej grmtyką, w której jednk symol początkowy występuje jedynie po lewej stronie reguł produkcji. Poleg on n: ) wyznczeniu wszystkich produkcji ksztłtu A S, gdzie S jest symolem początkowym, A V N, zś V T, 2) zstąpieniu symolu S w tych produkcjch przez nowy symol nieterminlny K V N ( więc tym smym dołączeniu K do V N ), 3) dołączeniu do zioru reguł produkcji F produkcji K A w tych i tylko w tych przypdkch, w których w F występuje juŝ produkcj S A. Rozptrzmy to n poniŝszym przykłdzie. Przykłd 3.2. A 4 S A A 2 S A A 2 A 5 Rys. 3.7. Rys. 3.8. Dl grmtyki z rys. 3.7, otrzymujemy grmtykę z rys. 3.8 w nstępujący sposó: ) jedyną regułą produkcji ksztłtu A S (gdzie S jest symolem początkowym, A V N, zś V T ), jest tu reguł A 2 S; 2) regułę tę zstępujemy nową regułą produkcji A 2 A 5, gdzie A 5 jest nowym symolem nieterminlnym; 3) ze względu n występownie produkcji S A, S A 3 i S A 4, dopisujemy produkcje A 5 A, A 5 A 3 i A 5 A 4. Zdnie 3.: Wykonj ponownie zdnie.9 tk jednk, y grmtyk t ył regulrn. Nrysuj jej wykres. A 4 A 3 A 3
50 Grmtyki regulrne Zdnie 3.2: Nd lfetem polskim skonstruuj grmtykę regulrną generującą język, w którym cząstk nie występuje: ) w kŝdym wyrzie (n początku, w środku, czy n końcu), ) w kŝdym wyrzie n początku (j. np. w wyrzie nieco ), c) w kŝdym wyrzie n końcu (j. np. w wyrzie drnie ), d) w kŝdym wyrzie w środku (j. np. w wyrzie koniec ), e) jeŝeli juŝ, to n pewno nie n początku. 3. WyrŜeni regulrne N początku odnotujmy nstępujący fkt: KŜdy język skończony jest regulrny. Dowód. Niech L = {P, P 2,..., P n }, gdzie i n P i V T *. Tk określony język L jest skończony (o skłd się ze skończonej liczy słów, o crd(l) = n < ). Określmy grmtykę G = <V N, V T, S, F>, gdzie V N = {S}, F = {S P, S P 2,..., S P n }. Ze względu n ksztłt reguł produkcji, grmtyk G jest regulrn. Wniosek. KŜdy język skończony jest równieŝ ezkontekstowy, kontekstowy i struktur frzowych, jko Ŝe kŝdy język regulrny jest równieŝ językiem ezkontekstowym, kontekstowym i struktur frzowych. Oecnie moŝemy przejść juŝ do włściwego zgdnieni tego prgrfu. Niech V ędzie skończonym lfetem. Wówczs przez REG(V) oznczmy z i ó r w s z y s t k i c h w y r Ŝeń r e g u l r n y c h n d l f e t e m V, określony w nstępujący sposó: (i) V REG(V) (tj. V REG(V)), λ REG(V), REG(V) (tj., tzw. wyrŝenie stłe jest wyrŝeniem regulrnym); (ii) α,β REG(V) (α) *, (αβ), (α β) REG(V), gdzie przez (α) * rozumiemy i-tą krotność wyrŝeni α (i=0,,2,...). Przykłd 3.3. Gdy V = {0, }, to wyrŝenimi regulrnymi nd tym lfetem V ędą m.in.: ((0) (00)), ((0) (00)) *, ((0) * (0) () ).
Grmtyki regulrne 5 Widzimy więc, Ŝe wyrŝeni regulrne są pewnymi, syntktycznie poprwnymi, npismi, zudownymi z symoli:, λ, *,, ( i ) orz z liter lfetu V. Znjąc moce wiązń (njmocniej wiąŝe *, słiej konktencj, njsłiej sum) - w zpisie wyrŝeni regulrnego moŝemy opuszczć zyteczne nwisy. Dzięki temu, wyrŝeni z powyŝszego przykłdu, moŝemy prościej zpisć nstępująco: 0 00, (0 00) *, (0) * 0. JeŜeli REG(V), to przez L() oznczć ędziemy języ k d e n o t o w n y (oznczny) p r z e z to w y r Ŝenie r e g u l r n e, określony (indukcyjnie po długości ) w nstępujący sposó: ) gdy α =, to L(α) = L( ) = (tj. wyrŝenie stłe generuje język pusty), 2) gdy α = λ, to L(α) = L(λ) = {λ}, 3) gdy α = (tj. α = V), to L(α) = {α} = {}, 4) gdy α REG(V), to L(α ) = (L(α)) * (tj. jest domknięciem Kleene go język L(α)), 5) gdy ndto β REG(V), to L(αβ) = L(α)L(β), L(α β) = L(α) L(β). Przykłd 3.4. Zoczmy, jkie języki są denotowne przez przykłdowe wyrŝeni regulrne. WyrŜenie regulrne: Język przez nie denotowny: () * = * {} * = {λ,,,, } (() ()) * = ( ) * {, } * = {λ,,,,,,,, } (() * ()) = * {} * {} = {,,, } * {} {} {} * = {,,,, } T. 3.. ZuwŜmy, Ŝe w osttnim przypdku, słowo nie jest elementem tego język. Znk ozncz owiem sumę języków, nie konktencję słów. ZuwŜmy, Ŝe {,}{} * = {}{} * {}{} * (={,,,...,,,,...}), więc tym smym, Ŝe ( ) * = * * (= + * ). Prwo o tym schemcie jest prwdziwe dl wszystkich wyrŝeń. W ogóle, dl dowolnych wyrŝeń regulrnych P, Q, R, zchodzi:
52 Grmtyki regulrne ) P (Q R) = (P Q) R, 6) λp = Pλ = P, 2) P(QR) = (PQ)R, 7) P * = λ PP *, 3) P Q = Q P, 8) P * = (λ P) *, 4) P(Q R) = PQ PR, 9) P = P =, 5) (P Q)R = PR QR, 0) gdy P = R PQ, Q λ, to P = RQ. Wspomnijmy jeszcze, Ŝe reguły ) - 0) wrz z regułą podstwini i przechodniością dją nm zupełny system ksjomtów. Ozncz to, Ŝe w przypdku dowolnej formuły język wyrŝeń regulrnych (tj. dowolnej równości wyrŝeń regulrnych), o ile nie jest on zdniem (tj. posid zmienne wolne) - wówczs moŝemy zmienić ją n zdnie poprzez tzw. domknięcie, tj. poprzedzenie jej kwntyfiktormi ogólnymi wiąŝącymi wszystkie jej zmienne wolne. Wówczs z powyŝszych ksjomtów moŝn wywieść ądź powyŝsze zdnie, ądź jego negcje. ZleŜność między językmi regulrnymi, językmi denotownymi przez wyrŝeni regulrne określ nstępujące twierdzenie: Twierdzenie 3.2. KŜde wyrŝenie regulrne denotuje pewien język regulrny, kŝdy język regulrny jest denotowny przez pewne wyrŝenie regulrne. Ide twierdzeni: Twierdzenie to mówi, Ŝe kls języków denotownych przez wyrŝeni regulrne pokryw się z klsą języków regulrnych tj., Ŝe istnieje wzjemn odpowiedniość między wyrŝenimi regulrnymi, grmtykmi regulrnymi. Dowód. ) PokŜemy njpierw, Ŝe kŝde wyrŝenie regulrne denotuje pewien język regulrny, tj. Ŝe α REG(V) L(α) L 3. Otrzymujemy to z definicji język denotownego przez wyrŝenie regulrne. Proste wyrŝeni regulrne, λ,,..., k opisują oczywiście języki, {λ}, { },..., { k }, które, chociŝy ze względu n swą skończoność (ptrz: fkt n początku tego prgrfu), są regulrne. Ich regulrność moŝn tkŝe wykzć podjąc reguły produkcji ich grmtyk: - dl język pustego : S S, - dl język {λ}: S λ, - dl język { i } ( i k): S i. Z twierdzeni. otrzymujemy, Ŝe języki regulrne są zmknięte n opercje regulrne (sumę, iloczyn i domknięcie Kleene go), podonie, jk to m miejsce w przy-
Grmtyki regulrne 53 pdku wyrŝeń regulrnych. Ztem równieŝ kŝdemu złoŝonemu wyrŝeniu regulrnemu, odpowid pewien język regulrny, rozudowywny w identyczny sposó, jk to wyrŝenie regulrne. () 2) Pozostje nm jeszcze pokzć, Ŝe kŝdy język regulrny jest denotowny przez pewne wyrŝenie regulrne, tj. Ŝe dl kŝdego język regulrnego istnieje wyrŝenie regulrne, które go denotuje. Niech L = L(G) ędzie językiem regulrnym wyznczonym przez grmtykę regulrną G = <V N, V T, S, F>. Z twierdzeni 3., grmtykę tę moŝemy sprowdzić do postci normlnej o regułch produkcji jedynie ksztłtu X Y i X λ, gdzie X,Y V N, zś V T. Dlej sprowdzmy ją do postci zredukownej (tj. ez symoli psywnych i nieosiąglnych). Ndto, jk juŝ to wyŝej zuwŝyliśmy (w przedosttnim kpicie n str. 48), zchodzi nstępujący fkt: Wykres grmtyki regulrnej w postci zredukownej jest spójny, kŝdy jego wierzchołek jest lo końcowy, lo leŝy n przynjmniej jednej drodze końcowej. (fktu) Nsz dowód przeprowdzimy indukcyjnie, Ŝe względu n liczę łuków wykresu grmtyki G (tj. względem liczy reguł produkcji grmtyki G). ) JeŜeli wykres grmtyki G m n = 0 łuków, to (ze względu n powyŝszy fkt) skłd się on lo z jednego wierzchołk zrzem początkowego i końcowego (wtedy język L = {λ}) lo nie zwier Ŝdnych wierzchołków (wtedy język L = ). Wprost z definicji wynik, Ŝe kŝdy z tych języków jest denotowny przez pewne wyrŝenie regulrne (odpowiednio: i λ). ) ZłóŜmy oecnie, Ŝe dl wykresu kŝdej grmtyki G w postci normlnej zredukownej, mjącego s < n łuków, język L' = L(G') jest generowny przez pewne wyr- Ŝenie regulrne. Z wykresu grmtyki G usuwmy jeden łuk wychodzący z wierzchołk początkowego np. łuk odpowidjący produkcji S A, tk otrzymną grmtykę oznczmy przez G. Przez G 2 oznczmy grmtykę o tym smym wykresie co G, z tą róŝnicą, Ŝe nie wierzchołek S, le wierzchołek A jest początkowy. Przez G 3 oznczmy grmtykę o tym smym wykresie co G, z tą róŝnicą, Ŝe jedynym wierzchołkiem początkowym i końcowym jest wierzchołek S. Przez G 4 oznczmy grmtykę o tym smym wykresie co G, z tą róŝnicą, Ŝe wierzchołek A jest początkowy, zś S jest jedynym wierzchołkiem końcowym.
54 Grmtyki regulrne Wykresy tych grmtyk pokzne są schemtycznie n poniŝszym rysunku: G : S A G 2 : S A G 3 : S A G 4 : S A Rys. 3.9. KŜd z tych grmtyk m n - łuków, le mogą one nie spełnić złoŝeni nszego fktu, ztem - mogą równieŝ nie spełnić jego tezy. Sprowdzjąc je do postci zredukownej: nie zwiększmy liczy ich krwędzi (ędziemy więc mogli stosowć do nich zło- Ŝenie indukcyjne), otrzymujemy wykresy grmtyk spełnijące tezę fktu. N podstwie złoŝeni indukcyjnego, języki L(G ), L(G 2 ), L(G 3 ) i L(G 4 ) są generowne przez wyrŝeni regulrne. PokŜemy, Ŝe zchodzi równość: L(G) = L(G ) L(G 3 ) [{}L(G 4 )] * {}L(G 2 ). () Rzeczywiście: gdy drog końcow w G nie wykorzystuje krwędzi z S do A, to jest to równieŝ drog końcow w G ; podonie - kŝd drog końcow w G jest drog końcow w G, gdy drog końcow w G wykorzystuje co njmniej rz krwędź z S do A, to jest on postci: x y y 2... y m z, (2) I lok II lok III lok gdzie: x jest drogą końcową w G 3, y, y 2,..., y m - to drogi końcowe w G 4, z jest drogą końcową w G 2. Rzeczywiście:
Grmtyki regulrne 55 njpierw moŝe owiem wychodząc z S wcle nie wykorzystywć krwędzi z S do A i znleźć się w końcu w S (z to odpowiedzilny jest I lok; odpowid on językowi L(G 3 )), nstępnie moŝe m rzy (gdzie m N 0 ) po przejściu krwędzią z S do A powrócić z powrotem do S (z to odpowiedzilny jest II lok; odpowid on językowi [{}L(G 4 )]*), i n koniec, musi wykorzystć krwędź przechodząc z S do A, y dlej juŝ, nie wykorzystując tej krwędzi, przejść do jednego ze stnów końcowych grmtyki G (z to odpowiedzilny jest III lok; odpowid on językowi {}L(G 2 )). Z powyŝszego wywodu widć tkŝe, Ŝe kŝd drog postci () jest końcow w G. Jk juŝ to zuwŝyliśmy, języki występujące po prwej stronie równości są generowne przez wyrŝeni regulrne, ztem (z indukcyjnej definicji wyrŝeń regulrnych) - równieŝ język L(G) jest generowny przez pewne wyrŝenie regulrne. Kończy to dowód cłego twierdzeni. Mjąc udowodnione powyŝsze twierdzenie, moŝemy pokusić się o poszuknie metody: ) znjdywni grmtyki regulrnej odpowidjącej dnemu wyrŝeniu regulrnemu, 2) znjdywni wyrŝeni regulrnego odpowidjącego dnej grmtyce regulrnej. Ad. Njprościej jest tego dokonć posługując się wykresem grmtyk regulrnych, więc (tym smym) grmtykmi w postci normlnej (z twierdzeni 3.). Gdyyśmy mieli udowodnione twierdzenie., mogliyśmy roić to nstępująco: dl grmtyki regulrnej w postci normlnej (ędącej szczególną postcią grmtyki regulrnej), stosujemy procedurę przedstwioną w dowodzie twierdzeni., nstępnie tk otrzymne grmtyki regulrne sprowdzmy do postci normlnej. My jednk postąpimy inczej. Mjąc minowicie wykresy grmtyk regulrnych, ędziemy wykonywć n nich opercje regulrne w tki sposó, y od rzu otrzymć wykresy grmtyk regulrnych ( więc tym smym grmtyki regulrne w postci normlnej). Twierdzenie 3.3. JeŜeli języki L i L 2 są generowne przez grmtyki regulrne w postci normlnej (odpowiednio G i G 2 ), to języki otrzymne przez stosownie n nich opercji regulrnych:
56 Grmtyki regulrne ) L L 2, ) L L 2, c) L * są równieŝ generowne przez pewne grmtyki regulrne w postci normlnej. Dowód. Dowód przeprowdzimy konstrukcyjnie, Ŝe względu n stosowne opercje regulrne. Njpierw jednk, ez strty ogólności rozwŝń, moŝemy przyjąć Ŝe: oie grmtyki G i G 2 mją rozłączne ziory symoli nieterminlnych (w przeciwnym przypdku moŝemy je rozłączyć - pokrywjącym się symolom ndć w grmtyce G 2 nowe, nie występujące dotychczs nzwy), z pomocą osttniej opercji przedstwionej n koniec drugiego prgrfu tego rozdziłu, symole początkowe S i S 2 tych grmtyk zostły odseprowne (tj. grmtyki te zstąpiliśmy równowŝnymi im grmtykmi, w których jednk symol początkowy występuje jedynie po lewej stronie reguł produkcji). ) By otrzymć grmtykę język L L 2, kłdziemy po prostu S = S 2 = S, jk to pokzno n rysunku 3.0. G : G 2 : S S 2 c A B C D G G 2 : S = S 2 = S S c A B C D Rys. 3.0. ) Konstrukcj grmtyki generującej język L L 2. Niech grmtyk G m symole końcowe A, A 2,..., A k. Usuńmy z grmtyki G 2 symol S 2, nstępnie połączmy strzłkmi wychodzącymi z symoli końcowych A, A 2,..., A k te symole, do których dochodziły strzłki z S 2 (ptrz rys. 3.). Tk otrzymn grmtyk generuje język L L 2.
Grmtyki regulrne 57 S A B A A k A 2 S 2 c C D B B l B 2 Grmtyk G Grmtyk G 2 S A B A A k A 2 c c c C D B B l B 2 Grmtyk jezyk L L 2 Rys. 3.. ZuwŜmy jeszcze, Ŝe symole końcowe A, A 2,..., A k grmtyki G, w nowej grmtyce nie są juŝ symolmi końcowymi. Końcowe są w niej tylko symole końcowe grmtyki G 2 (tj. B, B 2,..., B l ). ZuwŜmy równieŝ, Ŝe postępownie to poleg tu w gruncie rzeczy n: - usunięciu symolu S 2 i zstąpieniu reguł S 2 C, S 2 cd regułmi: A C, A 2 C,..., A k C, A cd, A 2 cd,..., A k cd, - orz usunięciu reguł A λ, A 2 λ,..., A k λ grmtyki G. c) Konstrukcj grmtyki język L * poleg n sklejeniu w G wszystkich osiąglnych wierzchołków końcowych z wierzchołkiem początkowym, tj. n połoŝeniu: S = A, S = A 2,..., S = A k. Opercj t poleg w istocie n: zstąpieniu reguł postci A i B i B A i regułmi S i B i B S i dl kŝdego i =, 2,..., k, zstąpieniu reguł A i λ (i =, 2,..., k) regułą S λ. Do zkończeni dowodu pozostje nm jedynie formlne udowodnienie, ze konstrukcje ), ) i c) dją odpowiednio grmtyki generujące języki L L 2, L L 2 i L, co pozostwim juŝ jednk zinteresownemu czytelnikowi.
58 Grmtyki regulrne Przykłd 3.5. Rys. 3.2. S A A 3 A 2 A 4 A 3 S S R y s. 3. 3. A A 2 A Dl grmtyki z rys.3.2 (jest to grmtyk z przykłdu 3. ez wierzchołków A 5 i A 6 ), po zstosowniu powyŝszej konstrukcji, otrzymujemy grmtykę z rys. 3.3. Jk wyglądją wykresy grmtyk regulrnych prostych wyrŝeń regulrnych wiemy juŝ z pierwszej części dowodu twierdzeni 3.2. Z metodą konstrukcji wykresów grmtyk regulrnych dl złoŝonych wyrŝeń regulrnych zpoznliśmy się z kolei w dowodzie twierdzeni 3.3. Oecnie moŝemy więc juŝ zorzowć n konkretnym przykłdzie dziłnie nszej metody. Przykłd 3.6. Znjdź grmtykę regulrną generującą język dny wyrŝeniem regulrnym: [0 () * ]0. Język {} jest generowny przez grmtykę: A 0 A A 2 () Rys. 3.4. Sklejjąc symol A 2 z symolem A 0 otrzymujemy wykres grmtyki język {} * : A 0 A (2) Rys. 3.5. Z kolei grmtykę język {0} przedstwi wykres: 0 B 0 B B 2 (3) Rys. 3.6. Sklejjąc wykresy (2) i (3) (poprzez utoŝsmienie A 0 = B 0 = S) - powinniśmy otrzymć wykres grmtyki język {0} {} *, jednk (jk się okzuje po poniŝszym rys. 3.7) - otrzymujemy wykres grmtyki język ({} * λ){0}:
Grmtyki regulrne 59 S 0 0 A (4) B B 2 Rys. 3.7. Spowodowne jest to fktem, Ŝe symol S jest tu tk początkowy jk i końcowy. Ay usunąć ową niedogodność powodującą przekłmnie mocy genertywnej tworzonej grmtyki - odpowiednio przeksztłcmy grmtykę (2) do poniŝszej postci (2'): A 0 A A 2 (2') Rys. 3.8. nstępnie łączymy ją z grmtyką (3) otrzymując tym smym w miejsce grmtyki (4) włściwą juŝ grmtykę (4'): S 0 A A 2 0 (4') B B 2 Rys. 3.9. Pozostje nm jeszcze dołączyć grmtykę język {0}, le poniewŝ juŝ on wystąpił, ierzemy ją z nowymi symolmi nieterminlnymi C 0, C i C 2 : 0 C 0 C C 2 (3') Rys. 3.20. Usuwjąc z grmtyki (3') symol początkowy C 0 i łącząc strzłkmi z 0 wszystkie symole końcowe (S 0, A 2 i B 2 ) grmtyki (4') z wierzchołkiem C (o w (3') mieliśmy: C 0 0C ) - otrzymujemy szukny wykres grmtyki język ({0} {}*){0}: S 0 B 0 A 0 B 2 A 2 0 0 C C 2 (5) Rys. 3.2. Oczywiście, symole końcowe grmtyki (4') przestją yć symolmi końcowymi w grmtyce (5).
60 Grmtyki regulrne Opisne tu zgdnienie znjdywni grmtyki regulrnej odpowidjącej dnemu wyrŝeniu regulrnemu, nzywmy z g d n i e n i e m s y n t e z y g r m t y k i. Ad 2. Twierdzenie 3.2 pozwl równieŝ opisywć dowolny język regulrny poprzez wyr- Ŝenie regulrne, ezpośrednio przedstwijące ksztłt wszystkich generownych przez niego słów. Metod t zostł przedstwion w drugiej części dowodu tego twierdzeni. Prześledźmy ją n poniŝszym przykłdzie: Przykłd 3.7. Określić (poprzez podnie wyrŝeni regulrnego) język generowny przez grmtykę dną nstępującym wykresem: 0 S A B Rys. 3.22. Zgodnie z procedurą przedstwioną w dowodzie - tworzymy njpierw wykres jej postci zredukownej 0 S A Rys. 3.23. nstępnie (usuwjąc strzłkę z 0 idącą z S do A) wykresy grmtyk G, G 2, G 3 i G 4 orz ich postcie zredukowne i n ich podstwie określmy generowne przez nie języki: wykresy grmtyk ich postcie zredukowne L(G i ) G S A S : G 2 : S A A { * } G 3 : S A S { * }
Grmtyki regulrne 6 G 4 : S A S A {*} T. 3.2. Stąd L(G) = L(G ) L(G 3 ) [{}L(G 4 )] * {}L(G 2 ) = = { * } [{0}{ * }] * {0}{ * } = = { * } {0 * } * {0 * }. Grmtyk t generuje więc język regulrny opisny wyrŝeniem regulrnym * (0 * ) * 0 *, czyli wyrŝeniem regulrnym * (0 + ) * 0 *. Wdą tej metody jest to, Ŝe w przypdku grmtyki rdziej rozudownej (o większej liczie krwędzi), otrzymuje się ndl rdzo skomplikowne wyrŝeni regulrne wymgjące Ŝmudnego skrcni. Opisne tu zgdnienie znjdywni wyrŝeni regulrnego odpowidjącego dnej grmtyce regulrnej, nzywmy z g d n i e n i e m n l i z y g r m t y k i. Zdnie 3.3: Niech A, B i C ędą wyrŝenimi regulrnymi. Niech A B ędzie wyrŝeniem regulrnym opisującym język {A} {B}, A' niech ędzie wyrŝeniem regulrnym opisującym język V * \ {A}. Podonie, niech A T ędzie opercją trnspozycji tką, Ŝe {A T }= {A} T. Udowodnij, Ŝe: ) A(BC) = (AB)C, l) A B = B A, ) AB AC = A (B C), m) (A B) C = A (B C), c) BA CA = (B C) A, n) (A B)' = A' B', d) λa = Aλ = A, o) (A B)' = A' B', e) A = A, p) (AB) T = B T A T, f) A = = A, q) (A B) T = A T B T, g) (A * ) * = A *, r) (A T ) * = (A * ) T, h) ABB * AB * = AB *, s) A * = (λ A) *, i) λ * = λ, t) λ T = λ, j) * = λ, u) T =, k) (A B) * = (A * B * ) * = (A * B * ) *, v) A'' = A.
62 Grmtyki regulrne 4. Języki regulrne, języki liniowe i ezkontekstowe. Grmtyki smorozszerzjące Grmtykę ezkontekstową G nzywmy l i n i o wą, gdy wszystkie jej reguły produkcji są postci A P lu A Q BQ 2, gdzie A, B V N, zś P, Q, Q 2 V T *. Z kolei grmtykę liniową nzywmy p r w o s t r o n n i e l i n i o wą, gdy Q 2 = λ, l e w o s t r o n n i e l i n i o wą, gdy Q = λ. Oznczmy: przez Lin - klsę wszystkich języków liniowych, generownych przez grmtyki liniowe, przez PL - klsę wszystkich języków prwostronnie liniowych, generownych przez grmtyki prwostronnie liniowe, przez LL - klsę wszystkich języków lewostronnie liniowych, generownych przez grmtyki lewostronnie liniowe, L 3 przez Reg, L 2 przez CF (skrót od contex free ). Przyjmijmy równieŝ skrótowe zpisy g.lin, g.pl, g.ll, g.reg i g.cf, oznczjące odpowiednio dowolną grmtykę liniową, prwostronnie liniową, lewostronnie liniową, regulrną i ezkontekstową, przez j.lin, j.pl, j.ll, j.reg i j.cf - odpowiednio generowne przez nie języki (liniowy, prwostronnie liniowy, lewostronnie liniowy, regulrny i ezkontekstowy). ZuwŜmy, Ŝe wprost z powyŝej wprowdzonych definicji mmy: ) Lin CF, 2) Reg = PL, 3) PL Lin, 4) LL Lin. Twierdzenie 3.4. KŜd grmtyk lewostronnie liniow generuje język typu 3 (tj. LL L 3 ). Dowód. Niech G = <V N, V T, S, F> ędzie grmtyką lewostronnie liniową, w której V N = {S, A,..., A z }. Zkłdmy, Ŝe symol początkowy S nie występuje po prwej stronie reguł produkcji (jeśli y występowł, to zgodnie z procedurą przedstwioną n końcu drugiego prgrfu tego rozdziłu, pozywmy się go). Niech P V T *.
Grmtyki regulrne 63 Konstruujemy grmtykę regulrną G' = <V N, V T, S, F'> z nstępująco określonymi regułmi produkcji F': ) jeśli S P F, to S P F', 2) jeśli A k P F, to S PA k F', 3) jeśli A k A j P F, to A j PA k F', 4) jeśli S A j P F, to A j P F'. PokŜemy, Ŝe L(G) L(G'). Niech więc P L(G); pokŝemy, Ŝe równieŝ P L(G'). ) Jeśli S P F, to P moŝn wyprowdzić w G ezpośrednio z symolu początkowego S, ztem moŝn je wyprowdzić równieŝ tą smą drogą w grmtyce G' (o S P F'), więc P L(G'). 2) Jeśli zś S P F, to słowo P moŝn tk rozić n części P = P n P n -...P 2 P, Ŝe jego wywód w G ędzie wyglądł nstępująco (nd strzłkmi zznczono numery stosownych reguł produkcji): 4 3 3 3 S A P A P P A P P P A P P P P P i i 2 i 3 2 2 3 m i m m 2K 3 2 2 2 PmPm P3P2 P K. ( * ) PokŜemy, Ŝe w grmtyce G' moŝn je otrzymć n drodze nstępującego wywodu: 2 3 3 3 3 S P A P P A P P P A K P P K P P A m im m m im 2 m m m 2 im 3 m m 3 2 i 4 PmP K m P3P2 P. ( ** ) 4 Rzeczywiście: poniewŝ w ( * ) stosowliśmy A im 2 P m F, więc w ( ** ) mogliśmy stosowć S 2 P A m i m F'; poniewŝ w ( * ) stosowliśmy 3 A A P i 2 i 2, A i i 3 3 A P 2 3,..., 3 A A P i m 2 m i m F, więc w ( ** ) mogliśmy stosowć odpowiednio A i 3 P A 2 i 2, A i 3 P A 3 i 3 2,..., 3 A P A i m m m 2 i i F'; 4 i n koniec, poniewŝ w ( * ) stosowliśmy " S A P " F, więc w ( ** ) mogliśmy stosowć 4 A i P F'. Ztem dl dowolnego słow P, jeśli P L(G), to P L(G'), czyli w sumie L(G) L(G'), co włściwie kończy dowód.
64 Grmtyki regulrne Dodjmy jeszcze, Ŝe z symetrii wynik inkluzj w drugą stronę, co w sumie dje nm, Ŝe L(G) = L(G'). Wnioski: ) L 3 jest zmknięt ze względu n opercję odici zwiercidlnego; 2) KŜdy język typu 3 (tj. prwostronnie liniowy) jest generowny przez pewną grmtykę lewostronnie liniową (tj. LL = Reg PL). Uzsdnienie (wniosków). ) Niech 2... n ędzie dowolnym słowem generownym przez g.pl. Wówczs n... 2 jest słowem generownym przez pewną g.ll, w której reguły produkcji otrzymujemy przez konsekwentną zminę kolejności (n odwrotną) wszystkich symoli w nstępnikch wszystkich reguł produkcji (tk więc np. regułę A P... P n B zstępujemy regułą A BP n... P ). Niech L L 3, tj. L jest językiem regulrnym. PoniewŜ kls grmtyk regulrnych pokryw się z klsą grmtyk prwostronnie liniowych (Reg = PL), ztem L jest j.pl. Wnosimy stąd, Ŝe L - jest j.ll, tj. L - L (z poprzedniego twierdzeni). () 2) Z rozwŝń powyŝszych wynik, Ŝe gdy L jest j.pl, to jego inwersj L - jest równieŝ j.pl, czyli L = (L - ) - jko jego inwersj jest j.ll. Ztem dowolny j.pl (tj. regulrny) jest teŝ lewostronnie liniowy. (2) Z twierdzeni i z drugiego wniosku z niego otrzymujemy nstępujący wniosek: Wniosek. Sił genercyjn grmtyk prwostronnie liniowych jest tk sm jk grmtyk lewostronnie liniowych. W sumie mmy więc, Ŝe: Reg = PL = LL Lin CF. PokŜemy, Ŝe Reg Lin, tj. Ŝe nie wszystkie grmtyki liniowe generują języki regulrne. W tym celu rozptrzmy n początek poniŝszy przykłd. Przykłd 3.8. Niech L = { n n c k : n, k }, L 2 = { k n c k : n, k }. O te języki są generowne przez grmtyki liniowe G = <{S, A}, {,, c}, S, F>, gdzie: - w grmtyce generującej język L, F = {S Sc, S Ac, A A, A }, - w grmtyce generującej język L 2, F = {S S, S A, A Ac, A c}. Generownie dowolnego słow w pierwszej z tych grmtyk wygląd nstępująco: S Sc Scc... Sc k - Ac k Ac k... n - A n - c k n n c k. Podonie wygląd generownie dowolnego słow w drugiej z tych grmtyk.
Grmtyki regulrne 65 k U L L 2 = { n n c n : n }, to nie jest język ezkontekstowy (z osttniego wniosku z 4 prgrfu 2 rozdziłu). Widć stąd, Ŝe przecięcie dwóch j.lin nie koniecznie musi dwć j.cf, tym rdziej (ze względu n "Lin CF"), Ŝe przecięci j.lin j.cf, j.cf j.lin i j.cf j.cf nie muszą dwć j.cf. O tym, Ŝe j.cf dje nm zwsze przecięcie j.cf z j.reg, orzek poniŝsze twierdzenie. Twierdzenie 3.5. Jeśli L L 2, L' L 3, to L L' L 2. Dowód. Niech L L 2, L' L 3. RozwŜymy dw przypdki ze względu n nleŝenie λ do L. I przypdek - gdy λ L. NleŜy pokzć, Ŝe L L' L 2. Niech L (jko język ezkontekstowy) ędzie generowny przez grmtykę G = <V N, V T, S, F> w postci normlnej Chomsky ego (tj. mjącą reguły produkcji jedynie postci X YZ i X ). Niech L' (jko język regulrny) ędzie generowny przez grmtykę G' = <V N ', V T ', S', F'> w postci normlnej z twierdzeni 3. (tj. mjącą reguły produkcji jedynie postci X Y i X λ). Oznczmy przez W = {X, X 2,..., X k } ziór tych wszystkich symoli nieterminlnych grmtyki G', dl których X i λ F', gdzie i k (dl uproszczeni, jednk ez strty ogólności, przyjęliśmy tu, Ŝe jest to włśnie k pierwszych elementów nieterminlnych). Tworzymy k grmtyk ezkontekstowych: G i = <V N ' (V N V T ) V N ', V T V T ', (S', S, X i ), F''> ( i k), gdzie przynleŝność reguł do F'' określmy nstępująco: ) A BC F witw, gdy X,Y,Z V N' (X,A,Y) (X,B,Z) (Z,C,Y) F'', 2) A F witw, gdy X,Y V N' (X,A,Y) (X,,Y) F'', 3) X Y F' witw, gdy (X,A,Y) F''. Jk widć (ze względu n ksztłt reguł produkcji) - tk określon grmtyk jest ezkontekstow. PokŜemy, Ŝe L L' = L(G ), więc tym smym, Ŝe L L' jest językiem ezkontekstowym (jko sum języków ezkontekstowych). Słowo postci P =... n ( V T * ) L(G) witw, gdy i Z,...,Z n- istnieje wyprowdzenie w G i : i= i
66 Grmtyki regulrne (S', S, X i ) * G (S',, Z ) (Z, 2, Z 2 )... (Z n -, n, X i ) () (stosowliśmy tu reguły ) i 2)). Z drugiej strony, P L(G') witw, gdy Z,...,Z n- X i W: w G' istnieje derywcj postci: S' Z 2 Z 2...... n X i... n. (2) Ztem (z 3) punktu definicji F''): P L(G') witw, gdy w G i istnieje derywcj: (S',, Z ) (Z, 2, Z 2 )... (Z n -, n, X i ) * G... n. (3) Koniec derywcji () jest początkiem derywcji (3), więc w sumie: P L L' witw, gdy i: P L(G i ). Tk więc, mmy Ŝe: L L' = U L(G i ). k i= II przypdek - gdy λ L. Konstruujemy grmtykę generującą język L \ {λ}. Nstępnie tworzymy grmtykę generującą język L' (L \ {λ}), który (jk juŝ wiemy z dowodu I przypdku) jest ezkontekstowy. Z definicji, λ L L' witw, gdy λ L i λ L'. RozwŜmy dwie moŝliwości: ) gdy λ L i λ L' - wówczs λ L L', więc L' (L \ {λ}) = L' L, poniewŝ L' (L \ {λ}) jest językiem ezkontekstowym, więc i równy mu język L' L teŝ jest ezkontekstowy; ) jeŝeli jednk przy nszym złoŝeniu, Ŝe λ L, mmy równieŝ Ŝe λ L' (tj. gdy λ L L'), to do określonych juŝ reguł produkcji grmtyki generującej język ezkontekstowy L' (L \ {λ}), wprowdzmy dodtkowo reguły S 0 λ i S 0 S, S 0 czynimy symolem początkowym tej grmtyki n miejsce dotychczsowego symolu początkowego S. Otrzymny język ędzie ndl ezkontekstowy, jko Ŝe jest on identyczny z językiem L L' - kończy to dowód dowodzonego twierdzeni. Wniosek. ) j.lin j.reg = j.cf, 2) j.reg j.reg = j.cf. Wniosek 2.
Grmtyki regulrne 67 L 3 Lin. Dowód. O tym, Ŝe L 3 Lin juŝ wiemy (ptrz początek tego prgrfu). Pozostje nm udowodnić, Ŝe zwiernie to jest włściwe. Dl dowodu nie wprost złóŝmy, Ŝe L 3 = Lin. Wtedy jednk języki L = { n n c k : n, k } i L 2 = { k n c n : n, k } yłyy regulrne, więc w przecięciu dłyy język ezkontekstowy (z wniosku ), język L L 2 = { n n c n : n } tki nie jest. Wniosek 3. Kls L 3 jest włściwym podziorem klsy L 2 (tj. L 3 L 2 ). Dowód. L 3 Lin L 2, L 3 L 2. z wn. 2 Wniosek 4. JeŜeli L L 2, L 2 L 3, to L \ L 2 L 2 (tzn. jest językiem ezkontekstowym). Dowód. Niech V T ędzie wspólnym lfetem terminlnym grmtyk generujących te języki. Wtedy L \ L 2 = L (V T * \ L 2 ) (o jest to ziór wszystkich słów nd V T * nleŝących do L i zrzem nie nleŝących do L 2 ). PoniewŜ (w myśl powyŝszego twierdzeni) L (V T * \ L 2 ) jest oczywiście językiem regulrnym (o V T * \ L 2 jest językiem regulrnym - ptrz tw. 6.4), więc L \ L 2 (jko mu identyczny) jest równieŝ językiem regulrnym. Zstnówmy się jeszcze, co powoduje, Ŝe niektóre grmtyki nie dją grmtyk regulrnych. W tym celu wprowdźmy nstępującą definicję: G r m t y kę G = <V N, V T, S, F> n z y w m y s m o r o z s z e r z jącą witw, gdy A V N X,Y (V N V T ) * : A * G XAY. Twierdzenie 3.6. JeŜeli grmtyk ezkontekstow nie jest smorozszerzjąc, to język generowny przez tę grmtykę jest regulrny. Uwg.
68 Grmtyki regulrne W myśl powyŝszego twierdzeni, spośród grmtyk ezkontekstowych, tylko grmtyki smorozszerzjące mogą nie generowć języków regulrnych. 5. Grmtyki deterministyczne W prgrfie tym, mówiąc grmtyk regulrn, ędziemy zwsze mieli n myśli grmtykę regulrną w postci normlnej (z twierdzeni 3.). N ogół dl grmtyki regulrnej mogliśmy mieć kilk produkcji o tym smym poprzedniku, nstępnikch róŝniących się jedynie symolmi nieterminlnymi. Przykłd 3. 7 - c. d. Z sytucją tą spotykmy się np. w grmtyce z przykłdu 3.7, gdzie mieliśmy produkcje S S, S B, S 0A orz A A, A S i A λ (ptrz rys. 3.24). B S A 0 Rys. 3.24. Jest oczywiste, Ŝe grmtyki tkie są niewygodne, głównie ze względu n niejednoznczność wywodu słów (słow te mogą mieć róŝne drogi końcowe). Dltego teŝ wprowdzmy pojęcie grmtyki deterministycznej generującej język L, w której kŝde słowo m juŝ dokłdnie jedną drogę końcową: Grmtykę regulrną G = <V N, V T, S, F> nzywmy d e t e r m i n i s t y c z ną, jeśli z fktu, Ŝe A B F i A C F (dl pewnych A, B, C V N i V T ) wynik, Ŝe B = C. W przeciwnym przypdku grmtykę nzywmy n i e d e t e r m i n i - s t y c z ną. Definicj t mówi, Ŝe gdyy w deterministycznej grmtyce regulrnej trfiły się nm przypdkiem dwie reguły produkcji o identycznych poprzednikch i symolch terminlnych, to włściwie jest to tylko jedn reguł produkcji, o m równieŝ identyczne symole nieterminlne po prwej stronie reguł produkcji. Dzięki tkiej ich jednoznczności mmy zdeterminowny wywód dowolnego słow język generownego przez tę grmtykę. Z kolei, grmtykę regulrną G = <V N, V T, S, F> nzywmy z u p e ł ną, jeśli:
Grmtyki regulrne 69 A V N V T B V N : A B F. Zupełność grmtyki regulrnej n jej wykresie poznje się więc po tym, Ŝe z kŝdego wierzchołk wychodzą strzłki optrzone wszystkimi symolmi lfetu terminlnego. Przykłd 3.7 - c.d. Grmtyk t jest oczywiście niezupełn. N szczęście jednk, zchodzi nstępujące twierdzenie. Twierdzenie 3.7. KŜdą grmtykę regulrną moŝn rozszerzyć do grmtyki regulrnej i zupełnej generującej ten sm język. Dowód. Niech G = <V N, V T, S, F> ędzie grmtyką regulrną. Tworzymy nową grmtykę regulrną G' = <V N ', V T, S, F'>, gdzie: V N ' = V N {S e }, gdzie S e jest nowym symolem nieterminlnym zwnym symolem ucieczki (jko indeks występuje e od ngielskiego escpe = uciekć); F' tworzą reguły F powiększone o dw rodzje reguł: jeśli dl pewnego nieterminlnego A i terminlnego w grmtyce G nie m reguł postci A B, to dopisujemy regułę A S e, dopisujemy ndto wszystkie reguły postci S e xs e dl wszystkich symoli x V T. Gwrntuje nm to otrzymnie regulrnej grmtyki zupełnej. Widć, Ŝe jeśli jkąś drogą dostniemy się do (nie końcowego!) wierzchołk S e, to juŝ się z niego nie wydostniemy. Jsne jest więc, Ŝe tk otrzymn grmtyk G' generuje ten sm język, co grmtyk G. Przykłd 3.7 - c.d. Uzupełnienie dnej grmtyki regulrnej G do grmtyki regulrnej i zupełnej przedstwi nstępujący wykres:
70 Grmtyki regulrne B 0, S c 0, 0 S A 0 Rys. 3.25 Powróćmy do grmtyk deterministycznych. Zchodzi dl nich nstępujące, główne w tym prgrfie, twierdzenie: Twierdzenie 3.8 (Myhill). Dl kŝdej grmtyki regulrnej (yć moŝe niedeterministycznej) istnieje równowŝn jej (tzn. generując ten sm język) grmtyk deterministyczn i zupełn. Zmist dowodu, prześledzimy n konkretnym przykłdzie metodę konstrukcji tkiej grmtyki. Przykłd 3.9. Niech G = <V N, V T, S, F> ędzie grmtyką regulrną z przykłdu 3.7 (podną tu jeszcze rz n rys. 3.27). W myśl twierdzeni, w przykłdzie tym, skon struujemy równowŝną jej deterministyczną i zupełną grmtykę regulrną G' = <V N ', V T ', S', F'>. B S A 0 Rys. 3.26. Oierzmy S' = {S} ozn. = S 0 orz V T ' = V T (zwsze tk roimy). Pozostje nm jeszcze określić ziory V N ' i F'. Zroimy to jednocześnie: określjąc owiem nowe reguły produkcji F' ozn. = M (gdzie M wzięte jest od Myhill, przy czym fkt, Ŝe A B F' /dl pewnych A, B V N ' i V T '/ oznczć ędziemy M(A,) = F'(A,) = B);
Grmtyki regulrne 7 przy okzji ędziemy otrzymywć nowe symole nieterminlne tworząc tym smym ziór V N '. Njpierw otrzymujemy M(S 0,0) = {A} = S. Pierwszą równość otrzymujemy tu rozumując nstępująco: w grmtyce G ędąc w jednym z symoli nieterminlnych zioru S 0, tj. jedynie w symolu S, idąc po strzłce 0 dochodzimy jedynie do symolu nieterminlnego A ; drugą zś równość otrzymujemy nstępująco: poniewŝ stn {A} grmtyki G' nie ył dotychczs zdefiniowny, więc ndjemy mu nową nzwę S. Tym smym otrzymliśmy w grmtyce G' regułę produkcji S 0 0S orz symol nieterminlny S. PoniewŜ konstytuujący go symol A jest końcowy, więc symol S dodtkowo podkreśliliśmy, co ozncz Ŝe w grmtyce G' otrzymliśmy równieŝ regułę S λ (czynimy tk zwsze, gdy choć jeden z nieterminłów grmtyki G tworzących nowy nieterminł grmtyki G' jest końcowy). W identyczny sposó w odniesieniu do symolu S 0 postępujemy z pozostłymi terminłmi (tu jedynie z ): M(S 0,) = {B, S} = S 2 (otrzymliśmy regułę S 0 S 2 orz symol S 2 ). WyŜej opisną procedurę powtrzmy dl wszystkich nowo otrzymnych symoli nieterminlnych grmtyki G', przy czym wykonujemy ją tk długo, dopóki ędzie to tylko moŝliwe. JeŜeli z którymś rzem zdrzy się, Ŝe jko nowy nieterminł otrzymmy ziór pusty, to ziorowi temu ndjemy nzwę S e (symolu ucieczki). ZuwŜmy, Ŝe w nstępnych krokch konstrukcji grmtyki G' dołączone ędą reguły S e 0S e, S e S e ( więc z wszystkimi nieterminłmi). Symol S e rzeczywiście ędzie więc spełnił rolę symolu ucieczki. Jego istnienie spowodowne jest fktem, Ŝe (w myśl twierdzeni) przeksztłcn grmtyk G nie koniecznie musi yć zupełn. Dlej otrzymujemy więc po kolei: M(S, 0) = = S e M(S, ) = {A, S} = S 3 (doszły symole S 3 i S e orz produkcje S 0S e, S S 3 i S 3 λ); M(S 2, 0) = {A} = S M(S 2, ) = {B, S} = S 2 (doszły produkcje S 2 0S i S 2 S 2 ); M(S 3, 0) = {A} = S M(S 3, ) = {A, B, S} = S 4 (doszedł symol S 4 orz produkcje S 3 0S, S 3 S 4 i S 4 λ); M(S 4, 0) = {A} = S M(S 4, ) = {A, B, S} = S 4 (doszły produkcje S 4 0S i S 4 S 4 );
72 Grmtyki regulrne M(S e, 0) = S e M(S e, ) = S e (dodliśmy - djące zupełność grmtyki G' - produkcje S e 0S e i S e S e ). W ten sposó otrzymliśmy: - lfet nieterminlny V N ' = {S 0, S, S 2, S 3, S 4, S e } - orz ziór reguł produkcji F' = {S λ, S 3 λ, S 4 λ, S 0 0S, S 0S e, S 2 0S, S 3 0S, S 4 0S, S e 0S e, S 0 S 2, S S 3, S 2 S 2, S 3 S 4, S 4 S 4, S e S e }. Jsno widć, Ŝe skonstruown w ten sposó grmtyk jest zrówno deterministyczn jk i zupełn (ptrz rys. 3.27). S 0 0 0 S S 3 0 0 0 S 2 S e S 4,0 Rys. 3.27. Oczywiście, gdyyśmy wyszli nie od grmtyki G, lecz od jej postci zredukownej, to od rzu otrzymliyśmy w prostszej formie jej postć deterministyczną i zupełną. MoŜemy jednk dojść do niej i z ieŝącej pozycji, utoŝsmijąc ze soą wierzchołki S 0 i S 2 orz S 3 i S 4 (nie zmieni to owiem ich siły genertywnej).sytucję te przedstwi rys. 3.28. S 0 0 0 0 S S 3 S e,0 Rys. 3.28. Zstosowny tu sposó tworzeni nowej grmtyki nosi nzwę m e t o d y p o tęgowej. Bierze to się z fktu, Ŝe nowe wierzchołki tworzą pewien podziór zioru potęgowego strych wierzchołków (stąd nowych wierzchołków moŝe yć co njwyŝej 2 do potęgi ilość strych wierzchołków). Twierdzenie Myhill dje nm w sumie równowŝność klsy grmtyk regulrnych deterministycznych i zupełnych z klsą grmtyk regulrnych. Wynik z tego, Ŝe niedeterminizm grmtyki regulrnej wcle nie poszerz jej siły genertywnej.