1 / 30

形式言語の理論

形式言語の理論. 5. 文脈依存言語. Chomsky 階層の4言語族. 句構造 文脈依存言語 文脈自由言語 正規言語. 句構造とは, (1) N ,  は N   =  なる空でない有限集合. (2) P は    の形をした記号列の有限集合 ただし,   N   で,  ,   ( N   ) * かつ  は少なくとも1個の N の要素を含む. (3) S  N .. 5.1. 文脈依存文法とその標準形. 文脈依存文法 定理 5.1 文脈依存文法 ⇔ 単調文法

nell-long
Download Presentation

形式言語の理論

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 形式言語の理論 5. 文脈依存言語

  2. Chomsky階層の4言語族 • 句構造 • 文脈依存言語 • 文脈自由言語 • 正規言語 句構造とは, (1) N, は N = なる空でない有限集合. (2) Pは   の形をした記号列の有限集合 ただし,  Nで, ,   (N  )*かつ は少なくとも1個の Nの要素を含む. (3) SN.

  3. 5.1. 文脈依存文法とその標準形 • 文脈依存文法 • 定理5.1文脈依存文法 ⇔ 単調文法 • 補題5.2単調文法の次数は下げられる • 補題5.3任意の単調文法は次数2の単調文法に変形できる • 定理5.4任意の文脈依存文法は線形有界文法に変形できる

  4. 文脈依存文法 • 句構造文法 G = (N, , P, S ) のすべての生成規則が A    (, ,   (N  )*,   , AN )の形をしているとき,G は文脈依存文法とよばれる. • 文脈依存文法(context-sensitive grammar: CSG)は,  を生成しないことに注意. • 例5.1 L = {anbncn | n  1} を生成する CSG.S a S B C a B a bS a B Cb B b bC B A Bb C b cA B A C c C c cA C B C

  5. 単調文法 • 句構造文法 G = (N, , P, S ) が単調であるとは,G のすべての生成規則   P が | |  | |を満たすことをいう. • 単調文法と文脈依存文法は表現力が同等である. • 例5.1 の は単調文法である.

  6. 定理5.1(文脈依存文法⇔単調文法) • 任意の言語 L   * に対して,L が文脈依存言語であるための必要十分条件は,L が単調文法で生成されることである. [ 証明 ] • 文脈依存文法は単調文法なので,必要性は明らか. • 任意の単調文法に対して,等価な文脈依存文法が存在することを示せばよい.

  7. 補題5.2(単調文法の次数は下げられる) • 任意の次数 n (n  3)の単調文法 Gに対して,Gと等価な次数 n1の単調文法 Gが存在する. 次数:生成規則のうちの右辺の最大長 まず,任意の単調文法 Gに対して,Gと等価な単調文法 G = (N, , P, S) で,すべての生成規則が A  a(a   , AN ) もしくは  (,   N+) の形をしているものが存在することに注意.

  8. 補題5.2の証明 • A  aの形をしていない生成規則には非終端記号しか現れないと考えて良い. •    を Gの生成規則とする.||  2 の場合はそのまま.それ以外の場合には, = A , = BCD (A, B, C, D  N, ,   N*)とおける    ( = E )の場合  =  の場合 A  A1 A2 A1 B C A2 D  A E  A E A B E  C D 

  9. 補題5.3(任意の単調文法は次数2の単調文法に変形できる)補題5.3(任意の単調文法は次数2の単調文法に変形できる) • 任意の単調文法 Gに対して,Gと等価な次数 2の単調文法が存在する. [ 証明 ]  補題5.2 を繰り返して得られる Gが補題5.3を満たすのは明らか.

  10. 定理5.1の証明 • 補題5.3より,Gは次数2の単調文法としてよい.A B  C D (A  C かつ B  D)の形をした生成規則を次のように置き換えて新たな単調文法 Gとする.A B  A BAB  A DA D  C D • Gは文脈依存文法であり,かつ Gと等価.

  11. 例5.2 • 単調文法 G = ({S, B, C}, {a, b, c}, P, S)S a S B CS a B CC B BCa B a bb B b bb C b cc C c c • 例5.1の文脈依存文法はこの生成規則のC B BC を書き換えたものである.

  12. 線形有界(黒田標準形) • 文脈依存文法 G = (N, , P, S )が線形有界であるとは,P 中のすべての生成規則が次のいずれかの形をしていることをいう.ただし,A, B, C, D  N  {S}である.S S AS AA BA B C D 単調文法と同一視していることに注意

  13. 定理5.4(任意の文脈依存文法は線形有界文法に変形できる)定理5.4(任意の文脈依存文法は線形有界文法に変形できる) • 任意の文脈依存文法 Gに対し,Gと等価な線形有界文法 G が存在する. • 線形有界文法の性質 • 線形有界文法においては,S S Aの形以外の生成規則は導出される記号列の長さを変えない. • 開始記号 S を右辺にもつ生成規則は,S S Aに限られる. • 任意の線形有界文法 G = (N, , P, S )と任意の,  (N  )* に対して,S G S ならば,=  かつ   (N  {S})* である. *

  14. 5.2 線形有界オートマトン • 線形有界オートマトン • 補題5.6文脈依存言語 ⇒ 線形有界オートマトン • 補題5.7線形有界オートマトン ⇒ 文脈依存言語 • 定理5.8文脈依存言語 ⇔ 線形有界オートマトン

  15. ¢ w $ 線形有界オートマトン • 1テープ非決定性Turing機械 M = (Q, , , , q0, F) (1) {¢, $}   , (2) 任意の p, q  Q に対し,(q, a, X)   (p, ¢)ならば,a = ¢ かつ X = R, (3) 任意の p, q  Q に対し,(q, a, X)   (p, $)ならば,a = $ かつ X = L. 有限制御部

  16. 補題5.6(文脈依存言語 ⇒ 線形有界オートマトン) • 任意の文脈依存言語 L   * に対して,L を受理する線形有界オートマトンが存在する. • 証明の手順 • L(G) = L となる Gをとる. • この Gに基づき,(天下り的に)線形有界オートマトン M = (Q,  , , , q0, {qf}) を次のようにつくる.Q = {q0, qf, s0, s1, r0, r1, r2}{sA | ABCDP }  =  {¢, $} = N    • L(G) = L(M) を証明する.

  17. ¢ w $ 証明 a / a,R r0 ¢ / ¢,R q0 s0 ¢ / ¢,R S / S,L $ / $,L r1 C / A,R sA s1 S / ¢,R A / S,R D / B,R $ / $,L r2 qf ¢ / ¢,R $ / $,L A / A,{L,R} B / A,R

  18. 補題5.7(線形有界オートマトン ⇒ 文脈依存言語) • 任意の線形有界オートマトン M = (Q, , , , q0, F) に対して,L(M) {}は文脈依存言語である. • 証明の手順 • Mに基づき,(天下り的に)文脈依存文法 G= (N, , P, S )をつくる. • L(G) = L(M) {} を証明する.

  19. 導出の仕組み • (5.20) と (5.21) の規則から,ある語 w = a1a2・・・anに対応する初期様相を表す文形式a1, q0¢a1a2, a2 ・・・ an, an$を生成する. • (5.22) と (5.23) の生成規則を繰り返し適用することで,非終端記号a1,   の第2項の部分を使って M の計算過程を模倣しながら導出を続ける. • 模倣の過程で,M が最終状態に達するならば,非酒単記号a1,  q  が現れるので,(5.24) を用いて終端記号 a に置き換える. • 後は,(5.25) を繰り返し適用し,すべての非終端記号を終端記号に置き換え,語w = a1a2・・・an を得る.

  20. 定理5.8と系5.9 • L   * が文脈依存言語であるための必要十分条件は,L = L(M) なる線形有界オートマトン Mが存在することである. 系5.9 (→定理5.13の証明に関係) • CSL = NSPACE(n) 消去可能文脈依存文法 • 次の生成規則からなる文法 Gは,消去可能文脈依存文法という. A    (, ,   (N  )*, AN )消去可能文脈依存文法は句構造と同等の生成能力をもつ.

  21. 5.3 文脈依存言語の性質 • 定理5.10 • 文脈依存言語族は和と連接について閉じている • 定理5.11 • 文脈依存言語族は正閉包について閉じている • 定理5.12 • 文脈依存言語族は積について閉じている • 定理5.13 • 任意の文脈依存言語L   * に対して, *Lの補集合は文脈依存言語である • 補題5.14 • 任意の s (n)  log nに対して,NSPACE( s (n) ) = co-NSPACE( s (n) )である

  22. 定理5.10(文脈依存言語族は和と連接について閉じている)定理5.10(文脈依存言語族は和と連接について閉じている) • L1, L2  * を任意の文脈依存言語とする.(1) L1と L2の和 L1L2は文脈依存言語である.(2) L1と L2の連接 L1・ L2は文脈依存言語である. GL1L2= (N1N2 {S}, , P1P2 {SS1, SS2}, S) GL1・ L2= (N1N2 {S}, , P1P2 {SS1S2}, S) Giの生成規則の左辺に終端記号が現れないと仮定

  23. 定理5.11(文脈依存言語族は正閉包について閉じている)定理5.11(文脈依存言語族は正閉包について閉じている) • 任意の文脈依存言語L   * に対して,Lの正閉包L+は文脈依存言語である. • GL+= (N∪N∪{S+, X}, , P+, S+) N∩N =  となる G のコピー G= (N, , P, S) N = { A | AN } P = {    |    P かつ  ,  は  , の        非終端記号 Aを A で置き換えたもの } P+= P∪P∪{S+S, XS, S+SX, X SS+ }

  24. ¢ $ a b a b b a b c a b a b b a b c ¢ $ a b a b b a b c 定理5.12(文脈依存言語族は積について閉じている) • 任意の文脈依存言語 L1, L2  * に対して,L1と L2の積 L1∩L2は文脈依存言語である. [証明] Li (i = 1, 2) を受理する線形有界オートマトンを Mi = ( Qi, , i , i , q0i, Fi) とする. この Miから,線形有界オートマトン ML1∩L2 を構築する.

  25. 定理5.13(文脈依存言語の補集合も文脈依存言語である)定理5.13(文脈依存言語の補集合も文脈依存言語である) • 任意の文脈依存言語L   * に対して, *Lの補集合は文脈依存言語である. [証明] 系5.9 と補題5.14 による. 系5.9CSL = NSPACE(n) 補題5.14 NSPACE( s (n) ) = co-NSPACE( s (n) ) CSL = co-CSL

  26. 補題5.14( NSPACE( s (n) ) = co-NSPACE( s (n) )) • 任意の s(n)  log nに対して,NSPACE( s(n) ) = co-NSPACE( s(n) )である [証明] 任意の s(n) 領域有界Turing機械M に対して, *L(M) を受理する s(n) 領域有界Turing機械M が存在すること を証明する. 線形有界オートマトンは領域有界Turing機械

  27. 句構造言語(0型) 文脈依存言語(1型) 文脈自由言語(2型) 正規言語(3型) 5.4 言語族の階層 • Chomsky階層の4言語族 FSL CSL CFL RGL RGL  CFL  CSL  FSL 補題5.17 補題5.18 補題5.15 補題5.16

  28. 補題5.15 と 補題5.16 • 補題5.15 RGL  CFL[証明] 言語 L = { anbn | n  1 } を・・・ • 生成する文脈自由文法はあるので,文脈自由言語 • 受理する有限オートマトンはないので,正規言語ではない • 補題5.16 CFL  CSL[証明] 言語L = { anbncn | n  1 } を・・・ • 生成する文脈依存文法はあるので,文脈依存言語 • 生成する文脈自由文法はないので,文脈自由言語ではない

  29. 補題5.17 と 補題5.18 • 補題5.17すべての文脈依存言語は帰納的である. • 補題5.18文脈依存言語でない帰納的集合が存在する. [証明] L = { xi | xi L(Gi) } を使った対角線論法により 証明する. 任意の x に対し,xLかどうか判定できる

  30. 定理5.19 (RGL  CFL  CSL  FSL) • RGL  CFL  CSL  FSL [証明] 補題5.15, 5.16, 5.17, 5.18 による.

More Related