1 / 22

計算の理論 I -CFL と PDA の等価性(つづき)-

計算の理論 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

xanto
Download Presentation

計算の理論 I -CFL と PDA の等価性(つづき)-

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. 計算の理論 I-CFLとPDAの等価性(つづき)- 月曜3校時 大月美佳

  2. 連絡事項 • 前回の解答に誤りが! 以下が正解 • δ(q0, 0, 0)={(q0, ε)} • δ(q0, 1, 1)={(q0, ε)} • δ(q0, Φ, Φ)={(q0, ε)} • δ(q0, +, +)={(q0, ε)} • δ(q0, *, *)={(q0, ε)} • δ(q0, (, ()={(q0, ε)} • δ(q0, ), ))={(q0, ε)}

  3. 今日の講義内容 • 本講義の評価方法 • 出席 • レポート • 定期試験 • CFLとPDAの等価性 • CFL⊆NPDA • NPDA⊆CFL • ミニテストとアンケート

  4. 本講義の評価方法(第1回目から改訂) • 出席 (20点配点) • 出席チェック兼用ミニテストを毎回実施。 • 2/3以上(14回中9回以上)出席しない場合は放棄とみなす。出席不足者について。 • 遅刻は20分まで。 • レポート (中×2、各20点配点) • 4/22出題5/13提出分、 6/24出題7/8提出分 • 提出しない場合には放棄とみなす。30までに出せ。 • 定期試験 (40点配点) • 連絡の無い欠席は放棄とみなす。

  5. 2番目のレポートについて 未提出者がいるためポイントのみ • 状態数は16程度になるはず • ε-CLOSUREがきちんと出てれば問題ない • 状態数は6個程度にまとまるはず 総当りでやるのはナンセンス • 3がDFAになっているか確認してから

  6. CFLとNPDAの等価性 • 等価性を以下の手順で示す • CFL⊆NPDA CFLである言語Lがあるとき、 最終状態と空ストアで受理するようなNPDA を作れることを示す。 • NPDA⊆CFL 言語Lを最終状態と空ストアで受理する ようなNPDAがあるとき、 Lを生成する文脈自由文法が作れることを示す。

  7. NPDA⊆CFLを示す • L∈NPDAとし、Lを最終状態と空ストアで受理するNPDAをM=(Q, T, Γ, δ, q0, Z0, F)とする。 • L⊆T*を生成する文脈自由文法 G=(N, T, P, S)が作れる。

  8. 作られた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は生成規則である。

  9. 作られた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

  10. N(M)=L(G)の証明 • 次の(a), (b)が同値であることを示せば良い。 • [q, Z, p]⇒x • (q, x, Z)├* (p, ε, ε) ここで、[q, Z, p]は非終端記号、x∈T* *

  11. (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

  12. (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とする。

  13. (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)は成立する。

  14. (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* とする。

  15. (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)である。

  16. (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) と同値である。 * *

  17. (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)が言えた。 * *

  18. 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となる。 * * * * * *

  19. 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, ε)} とする。

  20. 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

  21. 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}

  22. 今日のミニテスト • アンケート 出席調査に替えるので必ず提出して帰ること • ミニテスト 教科書・資料を見ても良い 交換採点後持ち帰る

More Related