プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす...

49
(PDA) ε-NFA - - 0 7-1

Transcript of プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす...

Page 1: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

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

• 直観的な説明

• プッシュダウン・オートマトン(PDA):スタック付のε-NFA。- 入力の他にスタックの先頭を読む

- 状態を遷移させると同時に、スタックの先頭を除いて0個以上の記号を押し込む

7-1

Page 2: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例:Lwwr = {wwR | w ∈ {0,1}∗}を認識するPDA。

- 1111の受理を考えよう

7-2

Page 3: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 形式的な定義

• PDAはP = (Q,Σ,Γ, δ, q0, Z0, F )で与えられる。ここで、- Q:状態の有限集合

- Σ:入力記号の有限集合

- Γ:スタック記号の有限集合

- δ : Q×Σ ∪ {ε} × Γ → 2Q×Γ∗:推移関数

- q0:初期状態

- Z0 ∈ Γ:スタックの開始記号

- F ⊆ Q:受理状態の集合

7-3

Page 4: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例:スライドp.7-2のPDA は以下のように表せるP = ({q0, q1, q2}, {0,1}, {Z0,0,1}, δ, q0, Z0, {q2})

ここで、δは以下の通りε 0 1

Z0 {(q1, Z0)} {(q0,0Z0)} {(q0,1Z0)}q0 0 {(q1,0)} {(q0,00)} {(q0,10)}

1 {(q1,1)} {(q0,01)} {(q0,11)}Z0 {(q2, Z0)} ∅ ∅

q1 0 ∅ {(q1, ε)} ∅1 ∅ ∅ {(q1, ε)}Z0 ∅ ∅ ∅

q2 0 ∅ ∅ ∅1 ∅ ∅ ∅

7-4

Page 5: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 時点表示:PDAの動作を表す方法- 途中の状況を 時点表示(q, w, γ)で表す。

q:状態、w:残りの入力系列、γ:スタックの内容

- 1ステップの動きを時点表示の列で表現する(p, α) ∈ δ(q, a,X)のとき、(q, aw,Xβ) ⊢ (p, w, αβ)

0ステップ以上を、⊢∗で表す

7-5

Page 6: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例: 次のPDA

に1111を入力したときの動作:(q0,1111, Z0) ⊢∗ (q1, ε,1111Z0)(q0,1111, Z0) ⊢∗ (q1, ε,11Z0)(q0,1111, Z0) ⊢∗ (q2, ε, Z0)(q0,1111, Z0) ⊢∗ (q2,11, Z0)(q0,1111, Z0) ⊢∗ (q2,1111, Z0)

7-6

Page 7: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

7-7

Page 8: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 時点表示の列に関する3つの性質(定理6.5、定理6.6)

- PDAの動作を表す時点表示の列に対して、入力に余分な入力列を追加してもそのPDAの動作を表す

- PDAの動作を表す時点表示の列に対して、スタックに余分な記号列を追加してもそのPDAの動作を表す

- PDAの動作を表す時点表示の列に消費されない入力があるとき、その入力を削除してもそのPDAの動作を表す

7-8

Page 9: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

PDAが表す言語

• 最終状態による受理- PDA P = (Q,Σ,Γ, δ, q0, Z0, F ) が最終状態により受理する言語L(P ) = {w | (q0, w, Z0) ⊢∗ (q, ε, α), q ∈ F}

• 空スタックによる受理- PDA P = (Q,Σ,Γ, δ, q0, Z0, F ) が空スタックにより受理する言語N(P ) = {w | (q0, w, Z0) ⊢∗ (q, ε, ε)}

7-9

Page 10: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 空スタック受理から最終状態受理

• 定理6.9:PN = (Q,Σ,Γ, δN , q0, Z0, F )とするとき、N(PN) = L(PF)を満たすPDA PFが存在する

• 略証:以下のようにPNからPFを構成するPF = (Q ∪ {p0, pf},Σ,Γ ∪ {X0}, δF , p0, X0, {pf})

7-10

Page 11: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 最終状態受理から空スタック受理

• 定理6.10:PF = (Q,Σ,Γ, δF , q0, Z0, F )とするとき、L(PF) = N(PN)を満たすPDA PNが存在する

• 略証:以下のようにPFからPNを構成するPN = (Q ∪ {p0, p},Σ,Γ ∪ {X0}, δN , p0, X0, ∅)

7-11

Page 12: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

PDAとCFGの等価性

• PDAとCFGの等価性を示そう

7-12

Page 13: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• CFGからPDA(空スタック受理)へ

• 変換の基本的アイデア- スタック上で最左導出を模倣する

(q,w,Aα) ⊢ (q,w, βα) ⇐⇒ Aα ⇒ βα

- 入力記号とスタックの先頭の記号を打ち消す(q, aw, aα) ⊢ (q,w, α)

- 入力を読み切ったときにスタックが空になる(q,w, S) ⊢∗ (q, ε, ε) ⇐⇒ S ∗⇒

左w

7-13

Page 14: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 定理6.13:CFG G = (V, T,Q, S) に対して、L(G) =

N(P )を満たすPDA Pが存在する

• 略証:以下のようにGからPを構成するP = ({q}, T, V ∪ T, δ, q, S, ∅)

- 各変数について、δ(q, ε, A) = {(q, β) | A → β ∈ Q}

- 各終端記号について、δ(q, a, a) = {(q, ε)}

7-14

Page 15: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例:次のCFGをPDAに変換S → 0S1 | ε

PDAの遷移関数は、δ(q, ε, S) = {(q,0S1), (q, ε)},δ(q,0,0) = {(q, ε)}δ(q,1,1) = {(q, ε)}

導出と遷移の対応は、

S (q,0011, S)⇒0S1 ⊢(q,0011,0S1)

⊢(q,011, S1)⇒00S11 ⊢(q,011,0S11)

⊢(q,11, S11)⇒0011 ⊢(q,11,11)

⊢(q,1,1)⊢(q, ε, ε)

7-15

Page 16: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• PDA(空スタック受理)からCFGへ

• 変換の基本的アイデア- (p,wu,Xα) ⊢∗ (q, u, α)ならば、変数[pXq]がwを生成するようにCFGを構成

7-16

Page 17: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 定理6.14:PDAP = (Q,Σ,Γ, δ, q0, Z0)に対して、L(G) = N(P ) を満たすCFG Gが存在する

• 略証:以下のようにPからGを構成するG = ({S} ∪ {[pXq] | p, q ∈ Q,X ∈ Γ},Σ, R, S)

規則Rは以下の規則からなる- 各状態pについて、 S → [q0Z0p]

7-17

Page 18: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 略証(続き)

- 各状態q、各a ∈ Σ ∪ {ε}、各スタック記号X について、· (r, ε) ∈ δ(q, a,X)に対して、

[q,X, r] → a

· (r, Y1 · · ·Yk) ∈ δ(q, a,X) (k > 0)に対してすべての状態r1 · · · rkの組合せについて、[q,X, rk] → a[rY1r1][r1Y2r2] · · · [rk−1Ykrk]

7-18

Page 19: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例:次のPDAをCFGに変換δ(q0,1, Z0) = {(q0,1Z0), (q1, Z0)}δ(q0,1,1) = {(q0,11), (q1,1)}δ(q1,1,1) = {(q1, ε)}δ(q1, ε, Z0) = {(q1, ε)}

S → [q0Z0q0] | [q0Z0q1][q0Z0q1] → 1[q01q1][q1Z0q1] | 1[q1Z0q1] | · · ·[q01q1] → 1[q01q1][q11q1] | 1[q11q1] | · · ·[q1Z0q1] → ε[q11q1] → 1 · · ·

遷移と導出の対応は、S

(q0,111, Z0) ⇒[q0Z0q1]⊢(q0,11,1Z0) ⇒1[q01q1][q1Z0q1]⊢(q1,1,1Z0) ⇒11[q11q1][q1Z0q1]⊢(q1, ε, Z0) ⇒111[q1Z0q1]⊢(q1, ε, ε) ⇒111

7-19

Page 20: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

文脈自由言語の性質

• 標準形。文脈自由言語は、限られた形式の規則だけで表せる- チョムスキー標準系: 以下の形式の規則

A → BC、A → a (A,B,Cは変数、aは終端記号)

- グライバッハ標準系:以下の形式の規則A → aB1 · · ·Bn

(A,Biは変数、aは終端記号、0 ≤ n)

• 反復補題。与えられた言語が文脈自由言語でないことを示す

7-20

Page 21: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

チョムスキー標準形 (Chomsky NF)

• 規則が次の形式のみ、かつ、無用な記号を含まない文法A → BC、A → a (A,B,Cは変数、aは終端記号)

• 必要な単純化- ε-規則の除去:A → εの形式の規則の除去

- 単位規則の除去:A → Bの形式の規則の除去

- 無用な記号の除去:開始記号から終端記号列への導出には出現しない変数や終端記号の除去

7-21

Page 22: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• チョムスキー標準形への変換i) ε-規則、単位規則、無用な記号を持たない文法にする

ii) 長さ2以上の右辺を変数だけにする

iii) 右辺が長さ2になるように長さ3以上の規則を分割

• 以下では、ii), iii) を先に説明する

7-22

Page 23: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 長さ2以上の右辺を変数だけにする- 該当する終端記号aを生成する規則

A → a

を導入。(Aは新しい変数)

• 右辺が長さ2になるように長さ3以上の規則を分割- 該当する規則

A → B1B2 · · ·Bk

を次の規則群に変換(各Ciは新しい変数)A → B1C1C1 → B2C2...Ck−3 → Bk−2Ck−2Ck−2 → Bk−1Bk

7-23

Page 24: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例:長さ2以上の右辺を変数だけにする

7-24

Page 25: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例(続き):右辺が長さ2になるように長さ3以上の規則を分割

7-25

Page 26: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

無用な記号の除去

• 記号Xが文法G = (V, T, P, S)で有用:次のような導出が存在 注意:教科書P284の記述には誤りがある

S ∗⇒αXβ ∗⇒ w (∈ T ∗)

• 記号XがGで無用:記号XがGで有用でない

• 記号Xが生成的:あるw ∈ T ∗に対して、X ∗⇒ w

• 記号Xが到達可能:あるα, β ∈ (V ∪ T )∗に対して、S ∗⇒ αXβ

• 生成的でない記号(とそれを含む規則)を除いてから、到達可能でない記号(とそれを含む規則)を除くと、有用な記号だけが残る

7-26

Page 27: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例:文法 S → AB | a, A → b を考える

• 生成的でない記号の除去後、到達可能でない記号を除去- 生成的でない記号Bを除去

S → a, A → b

- 到達可能でない記号Aとbを除去S → a

• 到達可能でない記号の除去後、生成的でない記号を除去- 到達可能でない記号はない

S → AB | a, A → b

- 生成的でない記号Bを除去S → a, A → b

7-27

Page 28: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 定理7.2:G = (V, T, P, S)をL(G) 6= ∅を満たすCFGとする。

(1) 生成的でない記号とそれを含む規則を除く

(2) (1)の後、到達可能でない記号とそれを含む規則を除く(2)で得られるCFGをG1 = (V1, T1, P1, S)とするとき、G1は無用な規則を持たず、L(G1) = L(G)。

7-28

Page 29: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 定理7.2の証明:(1)で得られたCFGをG′とする。

• G1は無用な規則を持たないことを示す- (2)の操作よりG1の記号はすべて到達可能

- G1の記号はすべて生成的であることを示そう。X ∈

V1とする。XはG′で生成的、すなわち、X ∗⇒

G′w

XはG1で到達可能、すなわち、S ∗⇒G1

αXβ

よって、X ∗⇒G′

w の系列中に出現する記号はすべて到達可能であるから、G1でも導出できる。すなわち、X ∗⇒

G1w

7-29

Page 30: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 定理7.2の証明(続き)

• L(G1) = L(G)を示す。- L(G1) ⊆ L(G)は明らか

- S ∗⇒G

wとすると、この系列に現れるどの記号も、到達可能、かつ、生成的なので、除去されない。よって、S ∗⇒

G1w

7-30

Page 31: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• G = (T, V, P, S)の生成的な記号の計算- 基礎:GS:=T

- 帰納:αの記号がすべてGSの要素となる規則A → α

が存在するとき、GS:=GS∪{A}。注意:A → εの規則があれば、A ∈GS

• 定理7.3:構成されるGSはGの生成的な記号をすべてもつ集合である

• 略証:X ∈GSならばXはGで生成的であることは、GS

の構成に関する帰納法。逆は、「X ∗⇒ w ∈ T ∗ならばX ∈GSである」ことが導出の回数に関する帰納法で示せる

7-31

Page 32: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• G = (T, V, P, S)の到達可能な記号の計算。- 基礎:RS:={S}

- 帰納:A ∈RSである規則A → α が存在するとき、α

に現れる記号をすべてRSに加える

• 定理7.4:構成されるRSはGの到達可能な記号をすべてもつ集合である

• 略証:X ∈RSならばXがGで到達可能であることは、RSの構成に関する帰納法。逆は、「S ∗⇒ αXβならばX ∈RSである」ことが導出の回数に関する帰納法で示せる

7-32

Page 33: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• ε-規則の除去

• Aが消去可能:A ∗⇒ ε

• 文脈自由言語Lに対して、L−{ε}を生成しε-規則を持たないCFGがあることを示そう

7-33

Page 34: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• ε-規則の除去例:S → ABA → aAA | εB → bBB | ε

- 消去可能な変数は、S,A,B。

- S → ABをS → AB | A | Bで置き換える

- A → aAA | εをA → aAA | aA | a で置き換える

- B → bBB | εをB → bBB | bB | b で置き換えるS → AB | A | BA → aAA | aA | aB → bBB | bB | b

7-34

Page 35: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 消去可能な変数の計算- 基礎:NS:={A | A → ε ∈ P}

- 帰納:B1B2 · · ·BkがすべてNSの要素である規則A →

B1B2 · · ·Bkが存在するなら、NS:=NS∪{A}

• 定理7.7:構成されるNSは消去可能な変数をすべてもつ集合である

• 略証:A ∈NSならばAが消去可能であることは、NS

の構成に関する帰納法。逆は、「A ∗⇒ εならばA ∈NS

である」ことが導出の回数に関する帰納法で示せる

7-35

Page 36: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• ε-規則の除去- すべて規則A → αに対して、αから消去可能な変数を0個以上あらゆる組合せで取り除いて得られる規則を追加する

- すべてのε-規則を取り除く

• 定理7.9:Gから上の方法で得られたG1について、L(G1) =

L(G)− {ε}

• 略証:任意の変数Aについて、「A ∗⇒G1

wならばA ∗⇒G

w

かつw 6= ε」であることがA ∗⇒G1

w のステップ数に関する帰納法で示せる。逆も同様。

7-36

Page 37: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 単位規則の除去

• 単位規則:A → Bの形式の規則(A,Bは変数)

• 除去の直観的説明- A → BかつB → α1 | · · · | αk なら、単位規則をA → α1 | · · · | αkで置き換えることを繰り返すただし、このままではA → B, B → C, C → Aのような規則のサイクルがあると置き換えが終了しない

• 単位対:単位規則だけを使ってA ∗⇒ Bとなる変数の対(A,B)

• 単位対をあらかじめ求めておいて、上の置き換えを一発で済ませることで、上記問題点を解決する

7-37

Page 38: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 単位対の計算- 基礎:US:={(A,A) | A ∈ V }

- 帰納:(A,B) ∈US、かつ、B → C ∈ Pならば、US:=US∪{(A,C)}も単位対

• 定理7.11:USは単位対をすべてもつ集合

• 証明:略

7-38

Page 39: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 単位規則の除去法

• G = (T, V, P, S)の単位規則の除去したCFG G1 =

(T, V, P1, S)を構成P1 = {A → α | (A,B) ∈ US, B → α ∈ P,

α 6∈ V }

• 定理7.13:Gから単位規則の除去で得れたG1について、L(G1) = L(G)

• 証明:略

7-39

Page 40: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例:

7-40

Page 41: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 単純化のまとめ

• 定理7.14:G = (V, T, P, S)をL(G)−{ε} 6= ∅ を満たすCFGとするとき、L(G1) = L(G) − {ε}で、ε-

規則、単位規則、無用な記号を持たない文法G1が存在する

• 略証:ε-規則の除去、単位規則の除去、無用な記号の除去をこの順で行えばよい。

7-41

Page 42: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

反復補題

例題による直観的説明

• Labc = {anbncn | n ≥ 1}が文脈自由言語でないことの証明- 背理法による。Lが文脈自由言語と仮定しチョムスキー標準形Gで生成されるとする。

- Gの変数の種類数をkとし、a2kb2

kc2

kの構文木Tを考

える。

7-42

Page 43: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• Labcが文脈自由言語でないことの証明(続き)

- T中の変数の出現は2kより多いので、Tはkより長い経路を持ち、図の性質を持つ。

- vwxの長さが2k以下なので、a,b,cをすべて含むことはない。

- 成果がLに含まれないT ′も存在するので、矛盾する

7-43

Page 44: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

文脈自由言語に関する決定可能な問題

• 空問題 (L = ∅?)

• 所属性判定 (w ∈ L?)

• 等価性判定 (L(A) = L(A′))? は、決定不能

7-44

Page 45: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

チューリング機械

• 計算機の単純な数学的モデル

• PDAより広いクラスの言語を表現可能

7-45

Page 46: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• チューリング機械- テープの記号と状態により動作を(非決定的に)決める

- 動作は、次の状態・テープに書き込む記号・ヘッドの移動

7-46

Page 47: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• チューリング機械(TM):M = (Q,Σ,Γ, δ, q0, B, F )

- Q: 状態の有限集合

- Γ: テープ記号の有限集合

- B: 空白記号 (B ∈ Γ)

- Σ: 入力記号の集合 (Σ ⊆ Γ− {B})

- δ: 遷移規則 Q× Γ → Q× Γ× {L,R}

- q0: 初期状態

- F : 受理状態の集合

7-47

Page 48: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 状態がqでヘッドの位置が以下のとき、

a1qa2 · · · anと書く

• M = (Q,Σ,Γ, δ, q0, B, F )が認識する言語の定義L(M) = {w | q0w ⊢ αqβ, q ∈ F}

7-48

Page 49: プッシュダウン・オートマトン€¢ 定理7.2:G = (V,T,P,S) をL(G) 6= ∅を満たす CFGとする。(1)生成的でない記号とそれを含む規則を除く (2)(1)の後、到達可能でない記号とそれを含む規則を

• 例:{0n1n | n ≥ 1}を受理するTM

• 入力0011に対する動作q00011 ⊢ Xq1011 ⊢ X0q111 ⊢ Xq20Y 1 ⊢q2X0Y 1 ⊢ Xq00Y 1 ⊢ XXq1Y 1 ⊢ XXY q11 ⊢XXq2Y Y ⊢ Xq2XY Y ⊢ XXq0Y Y ⊢ XXY q3Y ⊢XXY Y q3 ⊢ XXY Y Bq4

7-49