220 likes | 389 Views
計算の理論 I -CFL と PDA の等価性(つづき)-. 月曜3校時 大月美佳. 連絡事項. 前回の解答に誤りが! 以下が正解 δ(q0, 0, 0)={(q0, ε)} δ(q0, 1, 1)={(q0, ε)} δ(q0, Φ, Φ)={(q0, ε)} δ(q0, +, +)={(q0, ε)} δ(q0, *, *)={(q0, ε)} δ(q0, (, ()={(q0, ε)} δ(q0, ), ))={(q0, ε)}. 今日の講義内容. 本講義の評価方法 出席 レポート 定期試験 CFL と PDA の等価性 CFL⊆NPDA
E N D
計算の理論 I-CFLとPDAの等価性(つづき)- 月曜3校時 大月美佳
連絡事項 • 前回の解答に誤りが! 以下が正解 • δ(q0, 0, 0)={(q0, ε)} • δ(q0, 1, 1)={(q0, ε)} • δ(q0, Φ, Φ)={(q0, ε)} • δ(q0, +, +)={(q0, ε)} • δ(q0, *, *)={(q0, ε)} • δ(q0, (, ()={(q0, ε)} • δ(q0, ), ))={(q0, ε)}
今日の講義内容 • 本講義の評価方法 • 出席 • レポート • 定期試験 • CFLとPDAの等価性 • CFL⊆NPDA • NPDA⊆CFL • ミニテストとアンケート
本講義の評価方法(第1回目から改訂) • 出席 (20点配点) • 出席チェック兼用ミニテストを毎回実施。 • 2/3以上(14回中9回以上)出席しない場合は放棄とみなす。出席不足者について。 • 遅刻は20分まで。 • レポート (中×2、各20点配点) • 4/22出題5/13提出分、 6/24出題7/8提出分 • 提出しない場合には放棄とみなす。30までに出せ。 • 定期試験 (40点配点) • 連絡の無い欠席は放棄とみなす。
2番目のレポートについて 未提出者がいるためポイントのみ • 状態数は16程度になるはず • ε-CLOSUREがきちんと出てれば問題ない • 状態数は6個程度にまとまるはず 総当りでやるのはナンセンス • 3がDFAになっているか確認してから
CFLとNPDAの等価性 • 等価性を以下の手順で示す • CFL⊆NPDA CFLである言語Lがあるとき、 最終状態と空ストアで受理するようなNPDA を作れることを示す。 • NPDA⊆CFL 言語Lを最終状態と空ストアで受理する ようなNPDAがあるとき、 Lを生成する文脈自由文法が作れることを示す。
NPDA⊆CFLを示す • L∈NPDAとし、Lを最終状態と空ストアで受理するNPDAをM=(Q, T, Γ, δ, q0, Z0, F)とする。 • L⊆T*を生成する文脈自由文法 G=(N, T, P, S)が作れる。
作られたCFL CFL G=(N, T, P, S)を次のように定義する。 • N=Q×Γ×Q∪{S} • Pは次の生成規則よりなる。 • 各p∈Fに対して、S→[q0, Z0, p]は生成規則である。 • (p, Z1…Zk)∈δ(q, a, Z) (k≧1, a∈T∪{ε})のとき、任意のq1, q2, …, qk∈Qに対して [q, Z, qk]→a[p, Z1, q1][q1, Z2, q2]…[qk-1, Zk, qk] は生成規則である。 • (p, ε)∈δ(q, a, Z) (a∈T∪{ε})のとき [q, Z, p] →aは生成規則である。
作られたCFLの構文木 S [q0, Z0, p] a1 [q2, Z2, q3] … [qk, Zk, p] [q1, Z1, q2] a2 [r1, X1, r2] … [rk, Xk, q2] … [si, Yi, si+1] ai
N(M)=L(G)の証明 • 次の(a), (b)が同値であることを示せば良い。 • [q, Z, p]⇒x • (q, x, Z)├* (p, ε, ε) ここで、[q, Z, p]は非終端記号、x∈T* *
(a)⇒(b)の証明 導出の長さ(1以上)に関する帰納法 • 長さが1のとき つまり[q, x, p]⇒xのとき (iii)より、x∈T∪{ε}で(p, ε)∈δ(q, x, Z)となる。 したがって、(q, x, Z)├ (p, ε, ε)となる。 • 長さn以下の導出に対して成立することを仮定 このとき、長さn+1≧2の導出 [q, Z, p]⇒x をとる。 導出の長さが2以上だから一番初めに適用される生成規則は (ii)の形のものである。 n+1
(a)⇒(b)の証明つづき1 2のつづき このとき導出[q, Z, p]⇒xは以下のように書ける。 [q, Z, p]⇒a[q1, Z1, q2][q2, Z2, q3] …[qk, Zk, p] ⇒x と書ける。ただし、 (q1, Z1…Zk)∈δ(q, a, Z)。 すると、x=ax1…xkと書けて、各i(1≦i≦k)に対して 長さn以下の導出で [qi, Zi, qi+1]⇒xi となる。ただし、 qk+1⇒pとする。
(a)⇒(b)の証明つづき2 2のつづき 帰納法の仮定より (qi, xi, Zi)├ (qi+1, ε, ε) (1≦i≦k) となる。このとき、 (q, ax1…xk, Z)├ (q1, x1…xk, Z1…Zk) ├ (q2, x2…xk, Z2…Zk) … ├ (qk, xk, Zk) ├ (p, ε, ε) となる。 1と2より(a)⇒(b)は成立する。
(b)⇒(a)の証明 計算のステップ数についての帰納法 • ステップ数が1のとき (q, x, Z) ├ (p, ε, ε) p∈F, x∈T∪{ε} ならば、(p, ε)∈δ(q, x, Z)であるので、 (iii)より(q, Z, p)→x∈Pとなるので成立。 • ステップ数がnのとき成り立つと仮定 n+1≧2として、 (q, x, Z) ├n+1 (p, ε, ε) p∈F, x∈T* とする。
(b)⇒(a)の証明つづき1 2のつづき (q, x, Z) ├n+1 (p, ε, ε) p∈F, x∈T* を最初の1ステップと残りのnステップに分解する。 n≧1であるので第1ステップでZがポップされて εに置き換えられることはない。よって、 (q, x, Z) ├(r, y, Z1…Zk) ├n (p, ε, ε) となる。ここでx=ay, a∈T∪{ε}であり、 (r, y, Z1…Zk)∈δ(q, a, Z)である。
(b)⇒(a)の証明つづき2 2のつづき (r, y, Z1…Zk)の各Ziはいずれポップされるので、 分解y=y1…yk(yi∈T*, 1≦i≦k)と 状態q1, …, qkが存在して、 各i (1≦i≦k)に対して、n以下のステップ数で (qi, yi, Zi) ├(qi+1, ε, ε) となる。ただし、 q1=r, qk+1=pとする。 これは、帰納法の仮定より [qi, Zi, qi+1]⇒ yi (1≦i≦k) と同値である。 * *
(b)⇒(a)の証明つづき3 2のつづき (ii)より[q, Z, p]⇒ a[q1, Z1, q2]…[qk, Zk, p]だから [q, Z, p]⇒ a[q1, Z1, q2]…[qk, Zk, p] ⇒ ay1…yk となる。よって [q, Z, p]⇒x となる。 1, 2より(b)⇒(a)が言えた。 * *
N(M)=L(G)証明結論 • 以下の(a)と(b)の同値性が言えた。 • [q, Z, p]⇒x • (q, x, Z)├ (p, ε, ε) ここで、(q, Z, p)は非終端記号、x∈T* • x∈T*に対してS⇒xならば、 (i)によりある状態p∈Fが存在して S⇒[q0, Z0, p]⇒xとなる。したがって (q0, x, Z0)├ (p, ε, ε)となり、xはMにより受理される。 逆にxがMによって受理されば、 S⇒xとなる。 * * * * * *
NPDAをCFLに変換してみる • NPDA M=(Q, T, Γ, δ, q0, Z0, F)を Q={q0}, T={a, b}, Γ={A, a, b}, Z0 =A, F={q0} δ(q0, ε, A)={(q0, ab), (q0, aAb)} δ(q0, a, a)={(q0, ε)} δ(q0, b, b)={(q0, ε)} とする。
NPDAをCFLに変換してみる2 N=Q×Γ×Q∪{S} ={q0}×{A, a, b}×{q0}∪{S} ={[q0, A, q0], [q0, a, q0], [q0, b, q0], S} 生成規則 • S→ [q0, A, q0] • [q0, A, q0]→ε[q0, a, q0][q0, b, q0] [q0, A, q0]→ε[q0, a, q0][q0, A, q0][q0, b, q0] • [q0, a, q0]→a [q0, b, q0]→b
S [q0, A, q0] [q0, a, q0][q0, A, q0][q0, b, q0] a b [q0, a, q0][q0, b, q0] a b 変換結果 生成されたCFL G=(N, T, P, S) N={S, [q0, A, q0], [q0, a, q0], [q0, b, q0]} T={a, b} P={S→[q0, A, q0], [q0, A, q0] →[q0, a, q0][q0, b, q0], [q0, A, q0]→[q0, a, q0][q0, A, q0][q0, b, q0], [q0, a, q0]→a, [q0, b, q0]→ b}
今日のミニテスト • アンケート 出席調査に替えるので必ず提出して帰ること • ミニテスト 教科書・資料を見ても良い 交換採点後持ち帰る