Grmtyki regulrne Teori utomtów i języków formlnych Dr inż. Jnusz Mjewski Ktedr Informtyki
Grmtyki regulrne G = < V,Σ,P, > jest grmtyką prwostronnie liniową, jeśli jej produkcje mją postć: ( i ) U xw ( ii) U x x Σ* U,W V G = < V,Σ,P, > jest grmtyką prwostronnie regulrną, jeśli jej produkcje mją postć: ( i ) U W ( ii) U Σ U,W V orz (iii) jeśli ( ) P to nie występuje w prwych stronch żdnej produkcji. (Często w definicji grmtyki regulrnej pomij się wrunek (iii) dotyczący niewystępowni w prwych stronch produkcji dopuszcz się z to produkcje U ; U V) nlogicznie określ się : -grmtyki lewostronnie liniowe U U Wx x x Σ* U,W V -grmtyki lewostronnie regulrne U U W Σ U,W V
zkic lgorytmu przeksztłcni grmtyki prwostronnie liniowej w prwostronnie regulrną Wejście: G = < V,Σ,P, > G PLN Wyjście: G = < V,Σ,P, > G PRG tk, że L(G) = L(G ) Metod: P := P; V := V; for ( ) P do egin if = xb nd x = x 1...x n Σ* nd x 2 then egin C := x 1 C 1 ; C 1 x 2 C 2 ;... ; C n-1 x n B }; P := P \ { xb } C ; V := V { C 1,...,C n-1 } ; end; if = x nd x = x 1...x n Σ* nd x 2 then egin C := x 1 C 1 ; C 1 x 2 C 2 ;... ; C n- 1 x n B }; P := P \ { x } C ; V := V { C 1,...,C n-1 } ; end; end;
zkic lgorytmu przeksztłcni grmtyki prwostronnie liniowej w prwostronnie regulrną Usunąć - produkcje (w rzie potrzey) ; Usunąć reguły łńcuchowe ; Usunąć symol początkowy z prwych stron produkcji (w rzie potrzey); /* lgorytm usuwni symolu początkowego ędzie podny później */ Przykłd: B 1 1 B 1 1 B 1 1 B 2 2 2 2 2 2 B B B B B B B ** B 1 B 2 B B * 1 1 Grmtyk prwostronnie liniow * - usunięcie -produkcji ** - usunięcie produkcji łńcuchowych Grmtyk prwostronnie regulrn
Przeksztłcenie grmtyki lewostronnie regulrnej w prwostronnie regulrną Wejście: G = < V,Σ,P, > G LRG ; G nie zwier symolu początkowego w prwych stronch produkcji Wyjście: G = < V,Σ,P, > G PRG tk, że L(G ) = L(G) Metod: P := ; V := V { } {} for ( ) P : Σ do if = then P := P { } else P := P { }; for ( B) P : B V, Σ do if = then P := P {B } else P := P {B };
Przeksztłcenie grmtyki lewostronnie regulrnej w prwostronnie regulrną Przykłd: G=<{,},{,},P,> G =<{,},{,},P, >
Usuwnie produkcji końcowych (kosztem wprowdzeni -produkcji) Produkcje końcowe: U : U V, Σ Wejście: G = < V,Σ,P, > G PRG Wyjście: G = < V,Σ,P, > - ez produkcji końcowych, tk że L(G ) = L(G) Metod: V := V; P := P; for ( x) P do if x Σ then egin end; V := V { x }; P := P { x x, x } { x };
Usuwnie produkcji końcowych (kosztem wprowdzeni -produkcji) Przykłd: G = < {,,B,C,R,Q}, {,}, P, > B B B C B C C C R R Q B Q B D, D D ymol końcowy (nie mylić z symolem terminlnym)
Wykres grmtyki (ez produkcji końcowych) w postci grfu zorientownego B B,B V Σ (B ) P B symol początkowy grmtyki B Σ, B V (B ) P symol końcowy B B B ε Σ;,B V
Przykłd (1) B B C C R Q B D D B R C D Q
Przykłd (2) Usuwnie symoli nieosiąglnych Możn usunąć kżdą produkcję U W, tką że U orz symol U nie występuje po prwej stronie żdnej produkcji. B R C nieosiąglny D Q
Przykłd (3) Usuwnie symoli nieużytecznych Możn usunąć wszystkie produkcje U W, gdzie W nie jest symolem końcowym orz W nie występuje po lewej stronie żdnej produkcji, z wyjątkiem yć może produkcji typu W W. B R C nieużyteczny D Powyższe stwierdzeni nie są precyzyjne. Dokłdne lgorytmy podno dl grmtyk ezkontekstowych. (G RG G BK )
Przypomnienie o ścieżkch w grfie skierownym Ścieżk ciąg wierzchołków grfu zgodny z istniejącymi krwędzimi i ich zorientowniem. Definicje: Ścieżk końcow ścieżk K 0 K 1... K n tk, że K 0 = K n ziór symoli końcowych Ścieżk wyznczon przez słowo x=x 1 x 2...x n ścieżk końcow K 0 K 1...K n tk, że (K 0 x 1 K 1 ) P (K 1 x 2 K 2 ) P... (K n-1 x n K n ) P (K n ) P x L(G) ścieżk końcow wyznczon przez słowo x. Grf utomtu skończonego grf grmtyki prwostronnie regulrnej ez produkcji końcowych
utomt skończony (lu grmtyk regulrn ez produkcji końcowych) wyrżenie regulrne Twierdzenie (tzw. pierwsze twierdzenie Kleene ): Język generowny przez grmtykę prwostronnie regulrną ez produkcji końcowych (czyli język kceptowny przez utomt skończony) jest językiem regulrnym (tzn. określonym przez wyrżenie regulrne). porządzmy grf grmtyki spełnijący poniższe złożenie. Złożenie: grf grmtyki jest spójny i kżdy wierzchołek grfu jest lo końcowy lo leży przynjmniej n jednej ścieżce końcowej.
utomt skończony (lu grmtyk regulrn ez produkcji końcowych) wyrżenie regulrne [Dowód przez indukcję względem liczy krwędzi w grfie]. Podstw indukcji: Jeśli grf m k=0 krwędzi, to spełnijąc złożenie m lo jeden wierzchołek końcowy ( zrzem początkowy), więc język L={ɛ} (wyrżenie ɛ), lo nie m żdnego wierzchołk, wtedy język L= (wyrżenie )
utomt skończony (lu grmtyk regulrn ez produkcji końcowych) wyrżenie regulrne Krok indukcyjny: Złożenie indukcyjne: grf mjący k<n krwędzi reprezentuje język regulrny; grf ten jest spójny i kżdy wierzchołek grfu jest lo końcowy lo leży przynjmniej n jednej ścieżce końcowej. Tez indukcyjn: grf mjący k+1 krwędzi reprezentuje język regulrny; grf ten jest spójny i kżdy wierzchołek grfu jest lo końcowy lo leży przynjmniej n jednej ścieżce końcowej. Z grfu G dl k+1 n krwędzi usuwmy jedną krwędź odpowidjącą produkcji typu ( symol początkowy)
utomt skończony wyrżenie regulrne Rozwżmy cztery grfy: G 1 : G 2 : W G 1 reszt ez zmin. W G 2 wierzchołkiem początkowym i jedynym końcowym jest. G 3 : G 4 : W G 3 wierzchołkiem początkowym jest zś jedynym końcowym jest W G 4 wierzchołkiem początkowym jest, końcowe ez zmin
utomt skończony wyrżenie regulrne G 1 : G 2 : G 3 : G 4 : W G 3 wierzchołkiem początkowym jest zś jedynym końcowym jest L(G) = L(G 1 ) L(G 2 ) [ L(G 3 )]*L(G 4 ) W G 2 wierzchołkiem początkowym i jedynym końcowym jest. Kżd ścieżk końcow w G jest lo końcow w G 1, lo może yć przedstwion w postci: x y 1 y 2... y m z sciezk końcow w G 2 scieżki końcowe w G 3 scieżk końcow w G 4
utomt skończony wyrżenie regulrne L(G) = L(G 1 ) L(G 2 ) [ L(G 3 )]*L(G 4 ) Kżd ścieżk końcow w G jest powyższej postci. Również n odwrót: kżd ścieżk końcow powyższej postci jest ścieżką końcową w G. Z złożeni indukcyjnego wszystkie języki występujące w prwej stronie powyższej równości (dl k krwędzi) są regulrne orz użyte do konstrukcji tej równości opercje są tkże opercjmi regulrnymi, więc i język dl G (k+1 krwędzi) jest tkże regulrny, co kończy dowód twierdzeni.
utomt skończony wyrżenie regulrne Przykłd (1) Zudowć wyrżenie regulrne opisujące język kceptowny przez utomt skończony dny grfem (generowny przez grmtykę dną grfem): G D B C
utomt skończony wyrżenie regulrne Przykłd (2) G 1 D L(G 1 )= { n n 0} = * B C G 2 D B C L(G 2 ) = { n n 0} = *
utomt skończony wyrżenie regulrne Przykłd (3) G 3 D L(G 3 ) = B C G 4 D D B C L(G 4 ) = {} =
L(G 1 )= * L(G 2 ) = * L(G 3 ) = L(G 4 ) = utomt skończony wyrżenie regulrne Przykłd (4) L(G) = L(G 1 ) L(G 2 ) [L(G 3 )]*L(G 4 ) = = * *( )* * *( )* = = * * * = = * * = = * * = = *( ) L(G) = *( )
Usuwnie symolu początkowego z prwych stron produkcji We : G = <V,Σ,P,> - grmtyk regulrn ez produkcji końcowych Wy : G =<V,Σ,P,> - grmtyk regulrn ez w prwych stronch produkcji, tk że L(G ) = L(G) Metod: P 1 := P; V := V; for ( B) P do if B= then egin V := V {K}; P 1 := P 1 { } { K}; end; P := P 1 ; for ( X) P 1 nd (X = B or X = ) do if = then P := P {K X};
Usuwnie symolu początkowego z prwych stron produkcji K K K K K D B B B K B B C B C B C B C C C C D D D D D D D K B C
Konstrukcj sumy teoriomnogościowej, złożeni i domknięci Kleene go języków regulrnych Twierdzenie: L 1 i L 2 języki regulrne generowne przez grmtyki G 1 = <V 1,Σ 1,P 1, 1 > G 2 = <V 2,Σ 2,P 2, 2 > Wówczs języki : L 1 L 2 L 1 L 2 L 1 * są regulrne. Konstrukcję grmtyki G = <V,Σ,P,>, tkiej, że: ) L(G) = L 1 (G 1 ) L 2 (G 2 ) ) L(G) = L 1 (G 1 ) L 2 (G 2 ) c) L(G) = [L 1 (G 1 )]* dokonujemy przy złożenich i oznczenich : Σ = Σ 1 Σ 2 V 1 V 2 = (jeśli nie, to możn nieterminle pomlowć n różne kolory) G 1 i G 2 - grmtyki regulrne ez produkcji końcowych F 1 i F 2 - ziór nieterminlnych symoli końcowych grmtyk G1 i G2 F - ziór symoli końcowych grmtyki G
Konstrukcj sumy teoriomnogościowej, złożeni i domknięci Kleene go języków regulrnych () () Konstrukcj G = <V 1 V 2 {}, Σ, P, > tkiej, że L(G) = L 1 (G 1 ) L 2 (G 2 ) if L 1 L 2 then F:= F 1 F 2 else F:= F 1 F 2 {}; P:= ; for ( B) P 1 do P:= P { B}; for ( B) P 2 do P:= P { B}; for ( 1 B) P 1 do P:= P { B}; * for ( 2 B) P 2 do P:= P { B}; 1 for F do P:= P { }; B * 1 stł się nieosiąglny 2 C
Konstrukcj sumy teoriomnogościowej, złożeni i domknięci Kleene go języków regulrnych () () Konstrukcj G = < V 1 V 2, Σ, P, 1 > tkiej, że L(G) = L 1 (G 1 )L 2 (G 2 ) if 2 F 2 then F:= F 2 else F:= F 1 F 2 ; P:= ; for ( B) P 1 nd V 1 F 1 do P:= P { B }; for ( B) P 1 nd F 1 do P:= P { B} { C ( 2 C) P 2 }; for ( B) P 2 do P:= P { B}; for F do P:= P { }; * 1 2 C * orz B przestją yć końcowymi B *
Konstrukcj sumy teoriomnogościowej, złożeni i domknięci Kleene go języków regulrnych (c) (c) Konstrukcj G = <V 1 {}, Σ, P, > tkiej, że : L(G) = [L 1 (G 1 )]* F := F 1 {}; P:= ; for Σ nd V 1 F 1 do P := P { B ( B) P 1 }; for Σ nd F 1 do egin P := P { B ( B) P 1 }; P := P { B ( 1 B) P 1 }; c c end; for Σ do c P := P { 1 B ( B) P 1 }; for F do P := P { }; 1 B
Przeksztłcnie wyrżeni regulrnego n utomt skończony Rozwż się przeksztłcenie wyrżeni regulrnego w utomt skończony. Przeksztłcenie wyrżeni regulrnego o długości n n utomt skończony (niedeterministyczny z ɛ-przejścimi) wymg efektywnego zudowni drzew rozioru syntktycznego tego wyrżeni, co wymg czsu O(n). Mjąc już to drzewo rozioru trze, nlizując jego wierzchołki w technologii ottom-up, udowć cząstkowe utomty niedeterministyczne dl kżdego z nich, scljąc je n ieżąco, co przy strnnym zorgnizowniu procesu udowy wymg łącznego czsu O(n). umryczny czs konstrukcji niedeterministycznego utomtu skończonego z wyrżeni regulrnego jest liniową funkcją długości wyrżeni regulrnego. Dlsze ewentulne przeksztłcenie utomtu niedeterministycznego w utomt deterministyczny może wymgć czsu wykłdniczego rzędu O(s 3 2 s ), gdzie s jest liczą stnów utomtu niedeterministycznego.
Przeksztłcnie niedeterministycznego utomtu skończonego w utomt deterministyczny Rozwż się przeksztłcnie niedeterministycznego utomtu skończonego (yć może z ɛ-przejścimi) i z liczą stnów równą n w utomt deterministyczny. Przy przeksztłcniu niedeterministycznego utomtu skończonego z ɛ-przejścimi i z liczą stnów równą n w utomt deterministyczny, wymgne jest oliczenie ɛ-domknięć, co zier O(n 3 ) czsu. W dlszej kolejności (wykonywn metodą podziorów stnów utomtu niedeterministycznego) konstrukcj przejść z kżdego pojedynczego stnu utomtu deterministycznego (n podstwie posidnych już ɛ-domknięć orz tlicy przejść utomtu niedeterministycznego) może yć wykonn w czsie O(n 3 ). Dominującym elementem w cłym postępowniu jest w zsdzie licz stnów utomtu deterministycznego, któr może yć rzędu 2 n (gdzie n licz stnów utomtu niedeterministycznego). Woec tego czs wykonni przeksztłceni utomtu niedeterministycznego n utomt deterministyczny w niekorzystnym przypdku jest rzędu O(n 3 2 n ). W prktyce zdrz się często, że gdy licz utworzonych stnów utomtu deterministycznego jest zncznie mniejsz od 2 n, (np. w zdnich rozpoznwni słów kluczowych w tekście jest on rzędu O(n)), wówczs możn uznć, że czs wykonni przeksztłceni utomtu niedeterministycznego n deterministyczny jest rzędu O(n 3 s), gdzie s jest liczą stnów, jkie fktycznie m utomt deterministyczny.
Przeksztłcnie utomtu skończonego n wyrżenie regulrne Rozwż się przeksztłcenie utomtu skończonego o n stnch n wyrżenie regulrne. Niech n ędzie liczą stnów utomtu skończonego (deterministycznego, niedeterministycznego lu niedeterministycznego z ɛ-przejścimi). Przeksztłcenie tego utomtu n wyrżenie regulrne może zjąć O(n 3 4 n ) czsu. Przeksztłcenie niedeterministycznego utomtu skończonego (yć może z ɛ-przejścimi) z liczą stnów równą n w utomt deterministyczny zier w njgorszym wypdku O(n 3 2 n ) czsu. Jeśli yśmy njpierw przeksztłcili utomt niedeterministyczny (yć może z ɛ-przejścimi) n utomt deterministyczny, później przeksztłciliyśmy ten utomt deterministyczny n wyrżenie regulrne, to mogłoy to w niekorzystnym przypdku zrć O(n 3 4 n3 2 n ) czsu, co jest wielkością podwójnie wykłdniczą.
Testownie przynleżności słow do język regulrnego Rozwżmy testownie przynleżności słow o długości n do język regulrnego L. Jeżeli język regulrny L jest reprezentowny przez deterministyczny utomt skończony, słowo testowne w m długość w =n, zś utomt jest reprezentowny przez dwuwymirową mcierz ędącą tlicą przejść, to czs potrzeny n odpowiedź: czy w nleży do L jest rzędu O(n). Jeśli język L jest reprezentowny przez niedeterministyczny utomt skończony, to konwersj utomtu niedeterministycznego n deterministyczny mogły wymgć czsu wykłdniczego względem liczy stnów utomtu niedeterministycznego, choć czs smego testu yły liniowy ze względu n długość słow w. Jeśli język L jest reprezentowny przez niedeterministyczny utomt skończony o s stnch, słowo testowne w m długość w =n, to nie wykonując konwersji n utomt deterministyczny, możn przeprowdzić proces testowni w czsie O(ns 2 ). Jeśli reprezentcją L jest wyrżenie regulrne o wielkości s, to możn przeprowdzić konwersję do niedeterministycznego utomtu skończonego w czsie O(s) i nstępnie przeprowdzić proces testowni, co zier O(ns 2 ) czsu n wejściu w o długości n.
Testownie pustości język regulrnego Rozwżmy testownie pustości język regulrnego. Testownie, czy język regulrny reprezentowny przez utomt skończony (deterministyczny lu niedeterministyczny) jest pusty, polegjące n zdniu, czy ze stnu początkowego osiąglny jest jkikolwiek stn kceptujący, wymg czsu rzędu O(n 2 ), gdzie n jest liczą stnów utomtu. Testownie, czy język regulrny reprezentowny przez wyrżenie regulrne o wielkości n jest pusty, może polegć n przeksztłceniu tego wyrżeni w utomt niedeterministyczny w czsie O(n) (utomt ten m co njwyżej O(n) stnów) i dlszym zdniu, czy ze stnu początkowego utworzonego utomtu osiąglny jest jkikolwiek stn kceptujący, co wymg czsu rzędu O(n 2 ). Cłe postępownie zjmuje więc O(n 2 ) czsu. Testownie, czy język regulrny reprezentowny przez wyrżenie regulrne o wielkości n jest pusty ez konwersji n utomt skończony, wymg efektywnego zudowni drzew rozioru syntktycznego tego wyrżeni i dni podwyrżeń odpowidjących poszczególnym wierzchołkom tego drzew, co wymg czsu O(n).