形式言語の理論
5.
文脈依存言語Chomsky
階層の4言語族
句構造
文脈依存言語
文脈自由言語
正規言語 句構造とは,(1) N,
はN =
なる空でない有限集合.(2) P
は
の形をした記号列の有限集合ただし,
N
で, , (N )*
かつ
は少なくとも1個のN
の要素を含む.5.1.
文脈依存文法とその標準形
文脈依存文法
定理5.1
文脈依存文法 ⇔ 単調文法
補題5.2
単調文法の次数は下げられる
補題5.3
任意の単調文法は次数2の単調文法に変形できる
定理5.4
任意の文脈依存文法は線形有界文法に変形できる
文脈依存文法
句構造文法G = (N, , P, S )
のすべての生成規則が A ( , , (N )*, , AN )
の形をしているとき,
G
は文脈依存文法とよばれる.
文脈依存文法(context-sensitive grammar: CSG
)は,
を生成しないことに注意.
例5.1 L = {a
nb
nc
n| n 1}
を生成するCSG
.S a S B C a B a b
S a B C b B b b
C B A B b C b c
単調文法
句構造文法G = (N, , P, S )
が単調であるとは,G
のすべての生成規則 P
が| | | |
を満たすことをいう.
単調文法と文脈依存文法は表現力が同等である.
例5.1
の は単調文法である.定理
5.1
(文脈依存文法⇔単調文法)
任意の言語L *
に対して,L
が文脈 依存言語であるための必要十分条件は,L
が単調文法で生成されることである.[ 証明 ]
文脈依存文法は単調文法なので,必要性は 明らか.
任意の単調文法に対して,等価な文脈依存 文法が存在することを示せばよい.補題
5.2
(単調文法の次数は下げられ る)
任意の次数n (n 3)
の単調文法G
に対 して,G
と等価な次数n1
の単調文法G
が存在する.まず,任意の単調文法
G
に対して,G
と等価な 単調文法G = (N, , P, S )
で,すべての生成規 則がA a (a , AN )
もしくは
( , N
+)
の形をしているものが存在することに注意.
次数:生成規則のうちの右辺の最大 長
補題
5.2
の証明 A a
の形をしていない生成規則には非終端記号 しか現れないと考えて良い.
をG
の生成規則とする.| | 2
の場合はそのまま.それ以外の場合には, = A , = BCD (A, B, C, D N, , N*)
とおける =
の場合A A
1A
2A
1 B C A
2 D
( = E )
の場合A E A E
A B
E C D
補題
5.3
(
任意の単調文法は次数2の単調文法に変形でき る)
任意の単調文法G
に対して,G
と等価な 次数2
の単調文法が存在する.[ 証明 ]
補題
5.2
を繰り返して得られるG
が補題5.3
を満たすのは明らか.定理
5.1
の証明
補題5.3
より,G
は次数2
の単調文法としてよ い.A B C D (A C
かつB D)
の形をした生成規則を次のように置き換えて新 たな単調文法
G
とする.
A B A B A B A D A D C D
G
は文脈依存文法であり,かつG
と等価.例
5.2
単調文法G = ({S, B, C}, {a, b, c}, P, S) S a S B C
S a B C C B B C a B a b b B b b b C b c c C c c
例5.1
の文脈依存文法はこの生成規則のC B B C
を書き換えたものである.線形有界(黒田標準形)
文脈依存文法G = (N, , P, S )
が線形有界で あるとは,P
中のすべての生成規則が次の いずれかの形をしていることをいう.ただし,
A, B, C, D N {S}
である.S S A S A
A B A B C D
単調文法と同一視していることに注意 単調文法と同一視していることに注意
定理
5.4
(
任意の文脈依存文法は線形有界文法に変形できる)
任意の文脈依存文法G
に対し,G
と等価な 線形有界文法G
が存在する.
線形有界文法の性質
線形有界文法においては,S S A
の形以外の生 成規則は導出される記号列の長さを変えない.
開始記号S
を右辺にもつ生成規則は,S S A
に限られる.
任意の線形有界文法G = (N, , P, S )
と任意の , (N )*
に対して,S
G S
ならば, =
かつ (N {S})*
である.*
5.2
線形有界オートマトン
線形有界オートマトン
補題5.6
文脈依存言語 ⇒ 線形有界オートマトン
補題5.7
線形有界オートマトン ⇒ 文脈依存言語
定理5.8
文脈依存言語 ⇔ 線形有界オートマトン
線形有界オートマトン
1
テープ非決定性Turing
機械M = (Q, , , , q
0, F) (1) {¢, $} ,
(2)
任意のp, q Q
に対し,(q, a, X) (p, ¢)
ならば,
a = ¢
かつX = R
,(3)
任意のp, q Q
に対し,(q, a, X) (p, $)
ならば,
a = $
かつX = L
.¢ w $
有限制御部 有限制御部
補題
5.6
(文脈依存言語 ⇒ 線形有界オートマト ン)
任意の文脈依存言語L *
に対して,L
を受理する線形有界オートマトンが存 証明の手順在する. L(G) = L
となるG
をとる.
このG
に基づき,(天下り的に)線形有界オー トマトンM = (Q, , , , q
0, {q
f})
を次のように つくる.Q = {q
0, q
f, s
0, s
1, r
0, r
1, r
2}{s
A| ABCDP } = {¢, $}
= N
証明
¢ w $
q 0
s 1
r 1
q f r 0
r 2 s 0
s A
¢ / ¢,R
a / a,R
$ / $,L
A / A,{L,R} ¢ / ¢,R $ / $,L B / A,R C / A,R
D / B,R
S / S ,L ¢ / ¢,R S / ¢,R A / S,R
$ / $,L
補題
5.7
(線形有界オートマトン ⇒ 文脈依存言 語)
任意の線形有界オートマトンM = (Q, , ,
, q 0 , F)
に対して,L(M) {}
は文脈依存 言語である.証明の手順
M
に基づき,(天下り的に)文脈依存文法G = (N, , P, S )
をつくる. L(G) = L(M) {}
を証明する.導出の仕組み
(5.20)
と(5.21)
の規則から,ある語w = a
1a
2・・・a
nに対応する初期様相を表す文形式
a
1, q
0¢a
1a
2, a
2
・・・ a
n, a
n$
を生成する.
(5.22)
と(5.23)
の生成規則を繰り返し適用することで,非終端記号
a
1,
の第2項の部分を使ってM
の計算過 程を模倣しながら導出を続ける. 模倣の過程で,
M
が最終状態に達するならば,非酒単記 号 a
1, q
が現れるので,(5.24)
を用いて終端記号a
に置き換える. 後は,
(5.25)
を繰り返し適用し,すべての非終端記号を終端記号に置き換え,語
w = a
1a
2・・・a
n を得る.定理
5.8
と系5.9
L *
が文脈依存言語であるための必要十分条件は,
L = L(M)
なる線形有界オートマトンM
が存在することである.
系
5.9
(→定理5.13
の証明に関係) CSL = NSPACE(n)
消去可能文脈依存文法
次の生成規則からなる文法G
は,消去可能文脈依存 文法という.
A ( , , (N )*, AN )
消去可能文脈依存文法は句構造と同等の生成能力を
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) )
である定理
5.10
(文脈依存言語族は和と連接について閉じている)
L
1, L
2 *
を任意の文脈依存言語とする.(1) L
1 とL
2 の和L
1 L
2 は文脈依存言語である.(2) L
1 とL
2 の連接L
1・L
2 は文脈依存言語である.G
L1 L2= (N
1N
2{S}, , P
1 P
2{SS
1, SS
2}, S)
G
L1 ・ L2= (N
1N
2{S}, , P
1 P
2{SS
1S
2}, S)
G
i の生成規則の左辺に終端記号が現れないと仮定G
i の生成規則の左辺に終端記号が現れないと仮定定理
5.11
(文脈依存言語族は正閉包について閉じている)
任意の文脈依存言語L *
に対して,L
の正閉包L
+ は文脈依存言語である. G
L+= (N∪N∪{S
+, X}, , P
+, S
+)
N∩N =
となるG
のコピーG = (N, , P, S ) N∩N =
となるG
のコピーG = (N, , P, S )
N = { A | AN }
P = { | P
かつ ,
は ,
の非終端記号
A
をA
で置き換えたもの}
P
+= P ∪ P ∪ {S
+S, XS, S
+SX, X SS
+}
定理
5.12
(文脈依存言語族は積について閉じている)
任意の文脈依存言語L
1, L
2 *
に対して,L
1 とL
2 の積L
1∩L
2 は文脈依存言語である.[
証明]
L
i(i = 1, 2)
を受理する線形有界オートマトンをM
i= ( Q
i, ,
i,
i, q
0i, F
i)
とする.この
M
i から,線形有界オートマトンM
L1∩L2 を構 築する.a b a b b a b c
¢ a b a b b a b c $
定理
5.13
(文脈依存言語の補集合も文脈依存言語である)
任意の文脈依存言語L *
に対して, *L
の補集合は文脈依存言語である.[
証明]
系
5.9
と補題5.14
による.系
5.9
CSL = NSPACE (n)
系
5.9
CSL = NSPACE
(n)
補題
5.14 NSPACE( s (n) ) = co-NSPACE( s (n) )
補題5.14 NSPACE( s (n) ) = co-NSPACE( s (n) )
CSL = co-CSL
CSL = co-CSL
補題
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
機械 線形有界オートマトンは領域有界Turing
機械5.4
言語族の階層 Chomsky
階層の4言語族句構造言語(
0
型)文脈依存言語(
1
型)文脈自由言語(
2
型)正規言語(
3
型)RGL
CFL CSL
FSL
RGL CFL CSL FSL
補題
5.15
補題
5.15
補題補題5.16 5.16
補題5.17
補題5.18
補題5.17
補題5.18
補題
5.15
と 補題5.16
補題5.15 RGL CFL
[証明] 言語
L = { a
nb
n| n 1 }
を・・・
生成する文脈自由文法はあるので,文脈自由言語
受理する有限オートマトンはないので,正規言語ではない
補題5.16 CFL CSL
[証明] 言語
L = { a
nb
nc
n| n 1 }
を・・・
生成する文脈依存文法はあるので,文脈依存言語
生成する文脈自由文法はないので,補題
5.17
と 補題5.18
補題5.17
すべての文脈依存言語は帰納的である.
補題5.18
文脈依存言語でない帰納的集合が存在する.
[証明]
L = { x i | x i L(G i ) }
を使った対角線論法により 証明する.任意の
x
に対し,xL
かどうか判定できる 任意のx
に対し,xL
かどうか判定できる定理
5.19 ( RGL CFL CSL FSL )
RGL CFL CSL FSL
[証明]
補題
5.15, 5.16, 5.17, 5.18
による.言語族 受理系 生成系
FSL
(句構造)Turing
機械 句構造文法CSL
(文脈依存) 線形有界オートマトン 文脈依存文法
CFL
(文脈自由) プッシュダウン・オートマ
トン 文脈自由文法