• 検索結果がありません。

第 3 章 「文脈自由言語」

N/A
N/A
Protected

Academic year: 2021

シェア "第 3 章 「文脈自由言語」"

Copied!
71
0
0

読み込み中.... (全文を見る)

全文

(1)

第 3 章

「文脈自由言語」

3.1

文脈自由文法

3.2

プッシュダウンオートマトン

3.3

文脈自由文法とプッシュダウンオートマ トン

3.4

正規文法と有限オートマトン

3.5

文脈自由文法の性質

(2)

形式言語と自然言語

Noam Chomsky

1950

年代に米国の言語学者

N. Chomsky

が形式言 語理論を提唱。形式文法とそれによって定義され る言語を自然言語の数学的モデルとして研究。

構文論 syntax

意味論 semantics

語用論 pragmatics 音韻論

phonology 形態論

morphology

言語学

文の構造を研究

語の構造を研究 文の意味を研究

文脈における文の意味を研究 言葉の発音を研究

She loves Neo S

NP VP V NP

PN P

She loves Neo

(3)

3.1 文脈自由文法

定義

文脈自由文法とは4つ組

G = (N, Σ, P, S)

によって定義される。

N:

空でない有限集合。

N

の要素を非終端記号という。

Σ:

空でない有限集合。

Σ

の要素を終端記号という。

S: S N

∈ で開始記号という。

P: P

N×(N Σ)*

の有限部分集合。

P の要素 (A, α) は生成規則とよばれ、 A α → と書かれる。

α=ε のとき ε 生成規則という。

非終端記号 A を生成規則の左側にもつ P の要素を A α 1, …, A α n とするとき、これらをまとめて A α 1| …|αn と書くこともある。

(4)

 文脈自由文法の例

 例 3.1 ( 例 3.3)

 G=(N, Σ, P, S)

N = {S}

Σ= {a, b}

P = {S ab, S aSb}

 例 3.2 ( 例 3.4)

 G=(N, Σ, P, S)

N = {S, A, B}

Σ= {x, 0, 1}

P = {S xA, A 0|1B, B ε|0B|1B}

(5)

 語の導出

導出の定義

 V = N Σ

∪ とする。

記号列

u,v V*

∈ が次を満たすとき

u⇒

G

v

とかく。

(1) u = xAy, v = xαy (x, y,α V*, A N)

∈ ∈

(2) A α

→ は

G

の生成規則

G の反射的推移閉包を ⇒ G とかく。

導出の長さが

n

の場合、⇒ G とかく

 V*

の要素の列

w

0

, …, w

n について、

w

0

G

w

1

G ・・・ ⇒ G

w

n のとき、

w

0 から

w

が導出されるという。

n

*

G は省略することもある

(6)

  G が生成する語、言語

 開始記号 S より w Σ* ∈ が G の生成規則に よって導出されるとき、 w は G の生成する語 とよばれる。また G の生成する言語を

L(G) = { w Σ* | S ∈ ⇒

G

w}

と書く。

 言語 L Σ* ⊆ に対して L = L(G) となるとき、

G は L を生成するという。

 Σ 上の言語 L S* ⊆ に対して、

L を生成する文脈自由文法が存在するとき、

L は文脈自由言語とよばれる。

(7)

 文脈自由言語と CFL

CFL の定義

文脈自由言語のクラスを

CFL

と書くことにする。

すなわち、

CFL =

{ L | L = L(G)

となる文脈自由文法

G

がある

}

と定義する。

集合の集合(族)

(8)

 導出の例

 例 3.5

 N = {S,A,B}, Σ= {x, 0, 1, +, ・ , ), ( }

 P = {S (S +S) | S → ・ S | xA,

A ε| 1B, B ε|0B|1B|0|1 } → →

 例 3.6

 N = {S}, Σ= { ), ( }

 P = {S SS, S (S), S ()} → → →

 例 3.7

 N = {S}, Σ= {0,1,φ,+, ・ ,*,),( }

 P = {S φ|0|1|(S+S)|(S → ・ S)|S* }

(9)

 構文木

定義

構文木は次のように帰納的に定義される。

ここで、

V = N S ∪

とする。

(1)

A V ∈

に対して、記号

A

をラベルとする 1つの頂点のみからなる木

(2)

生成規則

A→ε

に対して

A

A ε

導出の過程を Visualize する道具

(10)

定義つづき

(3) T

1

, …, T

n

を根のラベルが A

1

, …, A

n

∈ で V ある構文木とする。

G の生成規則 A A →

1

…A

n

に対して、

A を根とする木

(4) 上記 (1) ~ (3) の規則を使って定義される 有限の木のみを構文木という。

 構文木(2)

A

A

1

・・・ A

n

T

1

T

n

(11)

 構文木の例

 例 3.8 ( 例 3.1 の導出木 )

S S S S S S

a a a a a a b b b b b b

L(G)

はどのような言語か?

(12)

 最左導出

 最左導出と左側順走査

導出の各ステップにおいて一番左にある非終端記 号が置き換えられているとき、最左導出という。

最左導出

A

u

に対する構文木の走査は 左側順走査となる。

 例 3.9 ( 例 3.6 の最左導出 )

練習: 語

(())(()())

を最左導出する過程は?

*

(13)

 補題 3.1

補題 3.1

 G=(N,S,P,S) を文脈自由文法とする。

導出 u v ⇒ があるならば、

u から v への最左導出がある。

証明

 u = w

1

A

1

w

2

… w

k

A

k

w

k+1

(A

i

∈ N, w

j

∈ Σ*) とする。

v = w

1

A

1

w

2

A

2

w

3

… w

k

A

k

w

k+1

A

i

⇒ v

i

(1 i k) ≦ ≦ v = w

1

v

1

w

2

v

2

w

3

… w

k

v

k

w

k+1

*

左側順走査による 最左導出とする

① ②

・・・ k

(14)

3.2 プッシュダウンオートマト ン  概念図と基本動作

プッシュダウンストア

a

1

a

2

a

i

q q

有限制御部

入力テープ

A B Z

0

A B A

push

A

pop

(1)

状態を変える。

(2)

プッシュダウンストア   トップ記号を他の記号   で置き換える。

(3)

入力ヘッドが記号を読   場合はヘッドの位置の   記号を取り去る。

(15)

 プッシュダウンオートマトンの 定義 定義

 プッシュダウンオートマトン (pda) は7つ組 M=(K, Σ,Γ,δ, q

0

, Z

0

, F)

によって定義される。

K :

 状態とよばれる空でない有限集合。

Σ:

 入力アルファベット

Γ:

 プッシュダウンストアのアルファベット

q

0

:

 初期状態

q

0

K

F :

 最終状態

F K

Z

0

:

 プッシュダウンストアの初期記号

Z

0

Γ

δ :

 

K×(S {e})×G×K×G*

の有限部分集合

(q,a,Z,p,α) δ

∈ のとき、

(p,α) δ(q,a,Z)

と書く

非決定的な定義 であることに注

非決定的な定義 であることに注

(16)

  PDA による語の受理

 計算状況

状態

q K

∈ 、入力

w S*

、および

a Γ*

なる

(q,

w,α)

を計算状況という。

α=Zβ

とかけるとき、

Z

がトップ記号である。

 K×Σ*×Γ* 上の関係├

M

(q,ax,Zα)├

M

(p,x,βα) (p,β) δ(q,a,Z)

(q,ax,Zα)

から

(p,x,βα)

へ動作するという

a =ε

のときを

ε

動作という。

関係├ M の反射的推移閉包を├ M とかく

 PDA による語の受理

最終状態によって受理 → 

L(M)

最終状態かつ空ストアによって受理 → 

N(M)

*

(17)

 命題 3.2

命題 3.2

言語

L Σ*

に対して次の (1)(2) は同値である。

(1) ある

pda M

に対して

L=L(M)

となる。

(2) ある

pda M

に対して

L=N(M)

となる。

証明

(1)→(2)

M

において受理される

w

に対して、

(q

0

, w, Z

0

) ├

M’

(f,ε,γ)

となり、さらに

ε

動作で残りの

γ

を取り除くような動作をする

M’

を考えればよい。

(2)→(1)

上と似たやり方で、今度は逆に

M’

から

M

を構成する。

*

(18)

 決定性 PDA と非決定性 PDA

 決定性と非決定性

非決定性プッシュダウンオートマトン

計算状況に対して一意に次の計算状況が決まらない。

決定性プッシュダウンオートマトン

任意の計算状況に対して次の計算状況が一意に決まる。

決定性 PDA の定義

PDA M=(K,Σ,Γ,δ,q

0

,Z

0

,F) は、次の (1)(2)

の条件を満 たすとき決定性であるという。

(1) |δ(q, a, Z)| 1

(a Σ {ε})

∈ ∪

(2) δ(q,ε,Z) ≠φ

ならば、全ての

a Σ

に対して

δ(q,a,Z)=φ

(2) が無いと、入力語を消費する前に ε 動作をするため、非決定的な動作になる。

(19)

 決定性 PDA と非決定性 PDA の 違い

 非決定性 PDA の場合は命題 3.2 が成り立つ

 決定性 PDA の場合は成り立たない

決定性

PDA

ε

を最終状態と空ストアによって受理 するならば一意に

(q

0

,ε,Z

0

)├

M

(q,ε,ε) (q F)

となる。するとどんな入力に対しても

(q

0

, x, Z

0

)├

M

(q, x,ε)

となり、入力

x

が読み込まれずに停止する。

したがって、

ε N(M) N(M)={ε}

となる。

*

*

(20)

 クラス NPDA と DPDA

定義

 (1) NPDA={L |

ある

npda M

に対して

L=L(M)}

 (2) DPDA={L |

ある

dpda M

に対して

L=L(M)}

命題 3.3

 L

1

,L

2

NPDA

ならば

L

1

L

2

NPDA

である。

証明

省略(補題 2.2 と同様に証明できる)

(21)

定理 3.4

 CFL = NPDA

文脈自由言語のクラスと非決定性プッシュダウン オートマトンによって受理される言語のクラスは 一致する。

 2 つの補題に分けてこの定理を証明する。

補題

3.5 CFL⊆NPDA

補題

3.6 NPDA⊆CFL

3.3 文脈自由文法と PDA

(22)

 補題 3.5 CFL ⊆ NPDA

 この補題の意味

 任意の言語 L  CFL について、

L  NPDA

L

を受理する

npda

がある)

 証明のアイデア

 L CFL ∈ とし、 L Σ* ⊆ を生成する文脈自由文 法を G = (N,Σ, P, S) とする

 この G に対応する npda M をつくり、

L(G) = N(M) となることを示せばよい

NPDA

CFL

(23)

 補題 3.5 の証明 (1)

言語

L

を最終状態と空ストアで受理する

npda M = (K, Σ,Γ,δ, q

0

, Z

0

, F)

を(天下り的に)定義

K = {q

0

}

Γ= N Σ

q

0 が初期状態

S N

が初期記号

Z

0

F = {q

0

}

遷移関係

は次のように与えられる。

(i)δ(q

0

,ε, A) = {(q

0

,α) | A α P}

→ ∈

(ii)δ(q

0

, a, a) = {(q

0

,ε)} (

ただし

a Σ)

注:これは、文脈自由文法から等価な

PDA

を作る手法になる!

(24)

 補題 3.5 の証明 (2)

 L(G) = N(M) を証明するぞ!

まずは

X N, u Σ*,

N(N Σ)* {ε}

とするとき

次の

(a) (b)

が同値であることを示す。

(a)

最左導出

X uα

がある。

(b) (q

0

, u, X) (q

0

,ε,α)

となる。

(a) (b)

(導出の長さについての帰納法)

長さが

0

のときは

u =ε, α= X

であるので自明。

最左導出の長さが

n

のとき成立すると仮定する。

このとき長さ

n+1

の最左導出

X u

をとる。ただし

u Σ*,α (N Σ)* {ε}

∈ ∪ とする。

入力から u を消費してストアの X α に変える

*

*

n+1

(25)

この最左導出は、

X v

Aβ vγβ

(

ただし

v Σ*, A γ P)

→ ∈

のように、長さ

n

の最左導出と、長さ

1

の最左導出に分 解できる。ここで

u = vx, x Σ*,γβ= xα

と書ける。帰納法 の仮定より

(q

0

, v, X) (q

0

,ε, Aβ)

となる。したがって

(q

0

, vx, X) (q

0

, x, A)

(q

0

, x, x  )

(i)

の遷移と  

= x 

よる)

(q

0

, , )

(ii)

の遷移による)

このようにして

(q

0

, u, X) (q

0

,  ,  )

となる。

よって

(a) (b)

が成り立つ。

 補題 3.5

n

の証明 (3)

X

n

A

v β

(xθ) γ

*

*

*

(26)

 補題 3.5 の証明 (4)

(b) (a)

の証明

計算のステップ数についての帰納法で証明する。

ステップ数が 0 の場合は自明。

ステップ数が n 以下のとき成立すると仮定する。長さ n+1 の計 (q0, u0, a0) ├ ・・・├ (q0, un,an) (q 0, un+1,an+1)

をとる。ただし u0 = u, un+1 =ε, a0 = X, an +1 = a とする。

n+1 番目のステップで (i) の遷移( ε 動作)が使われている場合:

上の計算は

(q0, u, X)├n (q0,ε, Aβ) (q 0,ε,γβ)

と分解できる。ただし A γ P,γβ=α→ ∈ である。

帰納法の仮定により、最左導出 X uAβ

が存在する。 A γ P → ∈ であり、また u Σ* だから、

X uAβ uγβ は最左導出である。

よって X uα なる最左導出が存在する。

*

*

*

(27)

 補題 3.5 の証明 (5)

n+1 番目のステップで (ii) の遷移が使われている場合:

X

は非終端記号なので、第1ステップ目では

(ii)

の遷移を適用で きない。したがって、ある時点

m(2 m n+1)

≦ ≦ が存在して、

m

1

ステップ目では

(i)

の遷移が使われ、すべての

t(m t n+1)

≦ ≦ に対 して

t

ステップ目では

(ii)

の遷移が適応されている。

すると、計算

(q

0

, u, X)├

n+1

(q

0

,ε,α)

は (u = vx とおくと )

(q

0

, vx, X)├

m-2

(q

0

, x, Aβ )

(q

0

, x,γβ)

m-1 回目の遷移は (i) の遷移)

n-m+2

(q

0

,ε,α)

(残りはすべて (ii) の遷移)

と分解できる。また

(q

0

, vx, X)├

m-2

(q

0

, x, Aβ)

ならば

(q

0

, v, X)├

m-2

(q

0

,ε, Aβ)

であるので、帰納法の仮定より最左導出

X vAβ

が存在する。すると

X vAβ vγβ

は最左導出である。

*

* m-1 回目の遷移に対応)

(28)

 補題 3.5 の証明 (6)

以上により

(a)

(b)

が同値であることがわかった。

(a)

最左導出

X u

がある。

(b) (q

0

, u, X) (q

0

,  ,  )

となる。

補題

3.1

より、

G

の導出は最左導出としておいてよいの で、

w Σ*

に対して

S w (q

0

, w, S) (q

0

,  ,  )

となる。したがって

L(G) = N(M)

となる。

命題

3.2

より

L NPDA

となる。 【証明終】

補題

3.1

G = (N,  , P, S)

を文脈自由文法とする。導出

u v ⇒

あるならば、

u

から

v

への最左導出がある。

補題

3.1

G = (N,  , P, S)

を文脈自由文法とする。導出

u v ⇒

あるならば、

u

から

v

への最左導出がある。

*

* *

*

*

(29)

 例 3.13

 文脈自由文法 G = (N, Σ, P, S) を

N = {S}

Σ= {a, b}

P = {S aSb, S ab}

とする。このとき補題 3.5 で構成される npda の 遷移関数 δ は次のようになる

q x Z δ(q, x, Z)

q

0

 S {(q

0

, aSb), (q

0

, ab)}

q

0

a a {(q

0

,  )}

q b b {(q ,  )}

現在の状態 入力ヘッダが見ている記号 ストアのヘッダが見ている記号

(30)

 補題 3.6 NPDA CFL ⊆

 この補題の意味

任意の言語

L  NPDA

について、

L  CFL

L

を導出する

CFL

がある)

 証明のアイデア

 L NPDA

∈ とし、この

L

を最終状態と空ストアで

受理する

npda

M=(K,Σ,Γ,δ, q

0

, Z

0

, F)

とする

この

M

に対応する文脈自由文法

G

をつくり、

N(M) = L(G)

となることを示せばよい

CFL

NPDA

(31)

 補題 3.6 の証明 (1)

 L を生成する文脈自由文法 G=(N,Σ, P, S) を(天下り的に)定義

 N = (K×Γ×K) {S}

 P

は次の生成規則よりなる

(i)

p F

∈ に対して

S (q

0

, Z

0

, p)

は生成規則であ る。

(ii) (p, Z

1・・・

Z

k

) δ(q, a, Z) (k

1, a S {ε})

∈ ∪ のとき 任意の

q

1

, q

2

, …,q

k∈ に対して

K

(q, Z, q

k

) a(p, Z

1

, q

1

)(q

1

, Z

2

, q

2

)

・・・

(q

k-1

, Z

k

, q

k

)

は生成規則である

(iii) (p,ε) δ(q, a, Z) (a S {ε})

∈ ∪ のとき

(q, Z, p) a

は生成規則

(32)

 補題 3.6 の証明 (2)

 L(G) = N(M)

を証明するぞ!

その前に、次の

(a) (b)

が同値であることを示す。

(a) (q, Z, p) x

(b) (q, x, Z) (p,ε,ε)

(a) (b)

の証明(導出の長さについての帰納法で証明)

長さが 1 のときは、生成規則 (iii) により x S {ε} (p,ε) d (q, x, Z )

となっている。したがって (q, x, Z) (p,ε,ε) となる。

長さ n 以下の導出に対して成立することを仮定する。

長さ n+1 2 の導出 (q, Z, p) x

をとる。導出の長さが 2 以上だから一番初めに適用される 生成規則は (ii) の形のものである。

*

*

(33)

 補題 3.6 の証明 (3)

  このとき上の導出は

(q, Z, p) a(q

1

, Z

1

, q

2

)(q

2

, Z

2

, q

3

)

・・・

(q

k

, Z

k

, p)

  ⇒

x

と書ける。ただし

(q

1

, Z

1・・・

Z

k

) d (q, a, Z)

である。

すると、

x = ax

1・・・

x

k

(x

i

Σ*)

と書けて、各

i (1 i k)

≦ ≦ に 対して、長さ

n

以下の導出で

(q

i

, Z

i

, q

i+1

) x

i

となる。 ただし

q

k+1

= p

とする。

帰納法の仮定より

(q

i

, x

i

, Z

i

) (q

i+1

,ε,ε) (1 i k)

≦ ≦ となる。このとき

(q

i

, x

i

, Z

i

) (q

1

, x

1・・・

x

k

, Z

1・・・

Z

k

) (q

2

, x

2・・・

x

k

, Z

2・・・

Z

k

)

 ・・・

(q

k

, x

k

, Z

k

) (p,ε,ε)

*

*

*

*

*

(34)

 補題 3.6 の証明 (4)

(b) (a)

の証明(計算のステップ数についての帰納

法)

(iii)

より

(q, Z, p) x

P

の要素となる。

よってステップ数が

1

のときは成立する。

n+1 2

≧ として

(q, x, Z)├

n+1

(p,ε,ε)

とする。これを最初の

1

ステップと残りの

n

ステップに分解 する。

n 1

≧ だから第

1

ステップでは

Z

がポップされて

ε

に置き 換えられることはない。よって

(q, x, Z) (r, y, Z

1・・・

Z

k

) ├

n

(p,ε,ε)

となる。ここで

x = ay, a Σ {ε}

∈ ∪ であり、

(r, Z

・・・

Z ) δ(q, a, Z)

である。

(35)

 補題 3.6 の証明 (5)

Zi はいずれポップされるので、

分解 y = y1・・・ yk (yiΣ*, 1 i k) ≦ ≦ と状態 q1・・・ qk が存在して

i (1 i k) ≦ ≦ に対して、 n 以下のステップ数で (qi, yi, Zi ) (q i+1,ε,ε)

となる。ただし q1 = r , qk+1 = p とする。

帰納法の仮定より

(qi, Zi, qi+1) y i (1 i k)≦ ≦ となる。 (ii) より

(q, Z, p) a(q 1, Z1, q2) ・・・ (qk, Zk, p ) だから

(q, Z, p) a(q 1, Z1, q2 ) ・・・ (qk, Zk, p ) ay 1・・・ yk

となる。 よって (q, Z, p) x となる。

*

*

*

*

(36)

 補題 3.6 の証明 (6)

以上により

(a)

(b)

が同値であることがわかった。

(a) (q, Z, p) x

(b) (q, x, Z) (p,ε,ε)

そこで

x Σ*

に対して

S x

⇒ ならば

(i)

により、

ある状態

p F

∈ が存在して、

S (q

0

, Z

0

, p) x

なる。

したがって

(q

0

, x, Z

0

) (p,ε,ε)

となり、

x

M

によって受理される。

逆に

x

M

によって受理されれば、

S x

となることも同様にわかる。 【証明終】

*

*

*

*

*

*

(37)

M = (K,Σ,Γ,δ, q

0

, Z

0

, F)

を言語

{a

n

b

n

| n

1}

を最終状態と空ストア で受理する例

3.12

npda

とする。このとき補題

3.6

で構成され る文脈自由文法

G=(N, S, P, S)

は次のようになる。

N = {q

0

, q

1

}×{A, Z

0

}×{q

0

, q

1

} {S}

P

の生成規則は次のとおり。

S (q

0

, Z

0

, q

1

)

(q

0

, Z

0

, q

0

) a(q

0

, A, q

0

) (q

0

, Z

0

, q

1

) a(q

0

, A, q

1

)

(q

0

, A, q

0

) a(q

0

, A, q

0

) (q

0

, A, q

0

) (q

0

, A, q

0

) a(q

0

, A, q

1

) (q

1

, A, q

0

) (q

0

, A, q

1

) a(q

0

, A, q

0

) (q

0

, A, q

1

) (q

0

, A, q

1

) a(q

0

, A, q

1

) (q

1

, A, q

1

) (q

0

, A, q

1

) b

 例 3.14

無駄な生成規則 が多いよ ( ・∀・ )

(38)

 以下の補題が証明された

 補題 3.5 CFL⊆NPDA

 補題 3.6 NPDA⊆CFL

 すなわち

 文脈自由言語のクラスと非決定性プッシュダウ ンオートマトンによって受理される言語のクラ スは 一致する。(言語を定義する能力が等しい)

  3.3 節の結論

定理 3.4

CFL = NPDA 定理 3.4

CFL = NPDA

(39)

3.4 正規文法と有限オートマト ン

A  wB (A, B  N, w  Σ* ) A  w

A  wB (A, B  N, w  Σ* ) A  w

右線形文法

A  Bw (A, B  N, w  Σ* ) A  w

A  Bw (A, B  N, w  Σ* ) A  w

左線形文法 正規文法

(40)

 例 3.15 右線形文法の例

N = {S, A}

P = {S  1A, A  0A, A   } S

A

1 0

A

0

A

0 

A

(41)

 例 3.16 左線形文法の例

N = {S}

P = {S  S0, S  1}

S S

1 0

S

0 S

0 S

0

(42)

 定理 3.7

定理

3.7

言語

L Σ* ⊆

に対して、次の

(1)

(3)

は同値である

(1) L

を生成する右線形文法がある。

(2) L

は有限オートマトンによって受理される。

(3) L

を生成する左線形文法がある。

正規文法正規文法

有限オートマトン 有限オートマトン 正規表現正規表現

(43)

 証明 (1) (2) ⇒

N = {S, A}

P = {S  1A, A  0A, A   } 例 3.15 の場合

S 1 A  f

0

M :

L(M) = L(G) を帰納法を用いて証明する。

(44)

 証明 (2) (3) ⇒

M : q

0

1 q

1

0 0

1

G = (K,Σ, P, q

0

)

P = { q

0

 1q

1

, q

0

 0q

0

, q

1

 1q

0

, q

1

 0q

1

, q

1

  }

L(M) = L(G) を帰納法を用いて証明する。

例: 

1

を奇数個含む語を受理するオートマトン

(45)

 証明 (1) (3); (3) (1) ⇒ ⇒

N = {S, A}

P = {S  1A, A  0A, A   }

S

A

1 0

A

0

A

0 

A

N = {S, A}∪{S  } P = {S  

A  S1, A  A0, S   A  }

A

1 0

A

0 A

 S

S 

A

0

(46)

3.5 文脈自由文法の性質

 この節の内容

 定理 3.8    ε 生成規則消去定理

 定理 3.9   鎖生成規則の消去定理

 定理 3.10   Chomsky 標準形への変形

 定理 3.11  挿入定理

(47)

 定理 3.8 ε 生成規則消去定理

定理 3.8

 文脈自由文法 G = (N,Σ , P, S ) に対して、

次の (1) - (3) を満たす文脈自由文法 G ’ = ( N ’ ,Σ , P’, S’ )

を構成できる。

(1)  

L(G  ) = L(G )

(2) ε

L(G )

のときのみ

G’

ε

生成規則を持

ち、

  それは

S’ ε

に限る。

(3) G’ の開始記号

S ’

P ’

のどの生成規則の   右辺にも現れない.

(48)

G

に対して、条件に合うような

G’

を(天下り的に)

定義する。

その前準備として、元の

G

の非終端記号

N

のうち

ε

を生成するものの集合

N

n を作る。

こうして作った

G’

(2)

(3)

を満たすのは明ら か。

残る (1) L(G’ ) = L(G ) を証明する。

L(G’ ) L(G )

を証明

L(G’ ) L(G )

を証明

 証明の手引き

N N

n

ε

を導出する

(49)

 証明 (1)

証明

 N = N {S ∪ }

 P

は次のとおり

(i)   L(G )

ならば

S 

は生成規則

(ii) S  S

は生成規則

(iii) A  

1

A

1

2 ・・・

k

A

k

k+1

P,

A

i

N Σ ∪ (1  i  k),

k

N

n

*

ならば、 A  A

1 ・・・

A

k は生成規則

この

P’

の作り方が

ε

生成規則を省く方法になる

(50)

 証明 (2)

 L(G  ) L(G) ⊆

(i)

から、 

L(G )   L(G  )

ここで、

S 

G

w (w  Σ

+

)

ならば、

S 

G

S 

G

w

となる導出がある。

 L(G  ) L(G)

(b) A  N Σ

∪ のとき,

A 

G

w, w Σ

+ ならば

A 

G

w

である。

(b)

を導出の長さの帰納法によって証明。

(b)

より,

S 

G

w, w Σ

+ ならば

S 

G

w

となるので、

S  

G

w

となる。

*

* *

(51)

 例 3.17

 G = (N,Σ , P, S ) を次の生成規則をもつ 文脈自由文法とする。

S AB

A ABAC | B | a B C | b | 

C B | c | 

ε

生成規則をなくした

G’

をつくってみよう

(52)

 定理 3.9 鎖生成規則の消去定 理

定理 3.9

 文脈自由文法 G = (N,Σ , P, S ) に対して、

次の (1)-(3) を満たす文脈自由文法 G = ( N,Σ , P , S )

を構成できる。

(1)  ∈ L(G )

のときのみ

S  

(2) A   ( |  |  2, ∈ ((N Σ ∪  {S})*) (3) A  a ( a 

)

(4) L(G  ) = L(G )

注:

S

を右辺に含まないということ

(53)

 証明の手引き

G

に対して、条件に合うような

G’

を(天下り的 に)定義する。

その前準備として、もとの

G

の非終端記号

N

のうち

鎖生成規則であるような集合

N

n

(A)

を作る。

 こうして作った

G’

が (1) - (3) を満たすのは明 らか。

 残る (4) L(G’ ) = L(G ) を証明する。

L(G’ ) L(G )

を証明

L(G’ ) L(G )

を証明

N N

n

(A)

鎖生成規則

(54)

 証明 (1)

証明

 N, S は同じ

 P  は次のとおり、

P  = {A  |

B N ∈

n

(A) [B  ∈P かつ  N] }

 N

n

(A) = {B  N | A  *

G

B } ( n = |N | )

(55)

 証明 (2)

 L(G  ) L(G) ⊆

 A   P 

ならば、ある

B  N

n

(A)

が存在して、

A 

G

B 

G

となる。よって

A 

G

ということは、

A 

G

w

ならば必ず

A 

G

w

となるので、

L(G  ) L(G )

 L(G  ) L(G ) ⊇

 A  N, w  Σ

+ に対して、

A 

G

w

ならば

A 

G

w

これを導出の長さの帰納法によって証明(略)。

これより、

S 

G

w, w  Σ

+ ならば

S 

G

w

となる。よって

L(G’) L(G)

* * *

* *

t *

*

t

(56)

 例 3.18

 G = (N,Σ, P, S ) を次の生成規則をもつ 文脈自由文法とする。

S  A

A  AB | a B  C | b C  A | c

鎖生成規則をなくした

G’

をつくってみよう

(57)

  Chomsky 標準形

定義

 G = (N,Σ, P, S ) はその生成規則の形が A  BC (A, B, C N ) ∈

または,

A  a (A N, a ∈ ∈Σ )

のとき Chomsky 標準形であるという。

 注: Chomsky 標準形は空語  を含まない。

(58)

 定理 3.10 Chomsky 標準形への変形

定理 3.10

文脈自由文法

G = (N,Σ, P, S )

に対して、

L(G )  {  }

を生成する

Chomsky

標準形の

文脈自由文法

G  = (N  ,Σ, P  , S  )

を構成できる。

(59)

 証明

証明

定理

3.9

により、

G

S  

以外の生成規則の形は

A   ( |  |  2,   ((N Σ ∪  {S})*)

A  a ( a 

)

であるとしてよい。

このとき

G

の生成規則を次のように置き換える。

A  X

1

X

2

X

3

X

4

X

5 ・・・

X

k

(X

i

 (N  )  {S}, k  2)

Y

1

Z

1

Z

1

 Y

2

Z

2

Z

2

 Y

3

Z

3

Y

i

 a

X

i

 a

ならば,

(60)

 例 3.19

 G = (N,Σ, P, S ) を次の生成規則をもつ 文脈自由文法とする。

S  AaAA A  a

等価な

Chomsky

標準形の

G’

をつくってみよう

(61)

 定理 3.11 挿入定理

定理 3.11

 G = (N,  , P, S )

を文脈自由文法とする。

このとき整数

p(G)

が存在して、

|z| > p(G)

なる 任意の

z  L(G)

に対して、

z

の分解

z = u v w x y

で次の (1)

(3) を満たすものが存在する。

(1) すべての

q  0

に対して、

   

u v

q

w x

q

y  L(G)

である。

(2) v

 

または

x  

である。

(3) |v w x|

 p(G)

である。

(62)

 証明の手引き

 ( 天下り的に ) 適当な p(G) をとる。

 |z| > p(G) を満たす z L(G) ∈ について、

z の導出に対応する構文木を解析する。

 以上の p(G) 、 z について、 (1)(2)(3) が

それぞれ成り立つことを確かめる。

(63)

 証明( p(G) )

r

m

m

 構文木の枝分かれの最大数は、

r = max{ |  | | A   P }

 m  1 に対して、高さ m の構文木は

高々 r

m

個の葉しかもたないことに注意。

 p(G) = r

2|N|

とおく。

(64)

 証明( w を導出する構文木)

 p(G) = r

2|N|

 z  L(G) は |z| > p(G) を満たしているとする。

 S  z を, z を生成する最短の導出と仮定し、

この導出に対応する構文木を T とする。

S

z ( |z| > r

2|N|

) 2|N|+1

以上

*

(65)

 証明(根から葉への最長パス

 )

S

z ( |z| > r

2|N|

) 2|N|+1

以上

X

1

X

2

X

t

a

・・・

・・・

パス

 : S, X

1

, X

2

,

・・・

, X

t

, a

X

1 を根とする

T

の部分木を

T

i

( 0  i  t + 1 ) T

i に属する葉の個数を

h

i とすると

X

t+1

X

0

(66)

 証明(抽き出し法)

h

0

 h

1

 ・・・  h

t+1

= 1

h

0

> r

2|N|

 1 だから、ある s が存在して h

s

> r

2|N|

 h

s+1

となる。

・・・

・・・

・・・ ・・・

T

s

T

s+1

h h

s+1

2|N|+1

以上

X

i

= X

j

= X

k

= A (s  i < j < k  t)

X

i

= X

j

= X

k

= A

(s  i < j < k  t)

(67)

 証明( (3) |v w x|  p(G) )

X

i

= X

j

= X

k

= A (s  i < j < k  t)

X

i

= X

j

= X

k

= A (s  i < j < k  t)

・・・

・・・

X

j

X

k

S

u v w x y

s  i < j

だから

S  u X

j

y X

j

 v X

k

x X

k

 w

S  u X

j

y X

j

 v X

k

x X

k

 w

*

*

*

(68)

 証明( (2) v   または x   )

・・・

・・・

X

j

=A X

k

=A S

u v w x y

v = x = 

とすると、

A = X

j

= X

k であるので、導出

X

j

 X

k を短絡させて、より短い導出で

z

を導出でき る。これは、

S  z

が最短の導出であることに矛盾する

*

*

S  u X

j

y X

j

 v X

k

x X

k

 w

S  u X

j

y X

j

 v X

k

x X

k

 w

*

*

*

(69)

 証明( (1)

q  0 に対して, u v

q

w x

q

y  L(G) )

・・・

・・・

X

j

=A X

k

=A S

u v w x y

q  0

について、

S  uAy  uvAxy 

・・・

 uv

q

Ax

q

y  uv

q

wx

q

y u v w x y L(G)

S  u A y A  v A x A  w

S  u A y A  v A x A  w

*

*

*

* * * * *

(70)

 例 3.20

 L = {a

n

b

n

c

n

| n  0} が文脈自由言語でない

ことを挿入定理を用いて証明せよ。

(71)

3.6 決定性プッシュダウンオート マトン

 DPDA は和集合の演算について閉じていない

 L

1

= {a

n

b

n

| n 1}

≧ と

L

2

= {a

n

b

2n

| n 1}

≧ について

 L

1

L

2

NPDA

∈ は明らか。 (p43 命題 3.3)

 L

1

L

2

DPDA ( 定理 3.13)

 よって DPDA≠NPDA 。(系 3.13 )

 証明(略)

参照

関連したドキュメント

いずれも深い考察に裏付けられた論考であり、裨益するところ大であるが、一方、広東語

この 文書 はコンピューターによって 英語 から 自動的 に 翻訳 されているため、 言語 が 不明瞭 になる 可能性 があります。.. このドキュメントは、 元 のドキュメントに 比 べて

「父なき世界」あるいは「父なき社会」という概念を最初に提唱したのはウィーン出身 の精神分析学者ポール・フェダーン( Paul Federn,

しかし,物質報酬群と言語報酬群に分けてみると,言語報酬群については,言語報酬を与

Guasti, Maria Teresa, and Luigi Rizzi (1996) &#34;Null aux and the acquisition of residual V2,&#34; In Proceedings of the 20th annual Boston University Conference on Language

 “ボランティア”と言えば、ラテン語を語源とし、自

今回の調査に限って言うと、日本手話、手話言語学基礎・専門、手話言語条例、手話 通訳士 養成プ ログ ラム 、合理 的配慮 とし ての 手話通 訳、こ れら

司会 森本 郁代(関西学院大学法学部教授/手話言語研究センター副長). 第二部「手話言語に楽しく触れ合ってみましょう」