1 / 48

形式言語とオートマトン 2013 ー第 6&7 日目ー

形式言語とオートマトン 2013 ー第 6&7 日目ー. 東京工科大学 コンピュータサイエンス学部 亀田弘之. 前回までの確認. 有限オートマトン (FA) FA の定義と記述法 テープ上を一方向に動くヘッド (テープ上の記号を読みながら、内部状態を変えていく) M = <K, Σ, δ, q 0 , F> 状態遷移図 FA の種類 決定性 FA ( DFA ) 非決定性 FA ( ε 遷移のあるものとないもの) 言語認識能力はどの FA でも同じ。 正規言語(正規表現)を認識可能。. 前回までの確認(2). 正規表現を認識する FA の存在とその構成法

keala
Download Presentation

形式言語とオートマトン 2013 ー第 6&7 日目ー

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. 形式言語とオートマトン2013ー第6&7日目ー 東京工科大学 コンピュータサイエンス学部 亀田弘之

  2. 前回までの確認 • 有限オートマトン(FA) • FAの定義と記述法 • テープ上を一方向に動くヘッド(テープ上の記号を読みながら、内部状態を変えていく) • M = <K, Σ, δ, q0, F> • 状態遷移図 • FAの種類 • 決定性FA(DFA) • 非決定性FA(ε遷移のあるものとないもの) • 言語認識能力はどのFAでも同じ。 • 正規言語(正規表現)を認識可能。

  3. 前回までの確認(2) • 正規表現を認識するFAの存在とその構成法 • 正規表現αが与えられる。 • 正規表現αに対して、ε-NFA を構成する。 • ε-NFA をDFAに書き換える。 • DFAを状態数最少のDFAに書き換える。 • Min-DFAをシミュレートするプログラムを作成する。

  4. 確認問題集 • (少しずつこなしていってください。)

  5. a p a q b r a b b 確認問題1 • (オートマトンの定義)次の状態遷移図で与えられるオートマトンを、 M=<K,Σ,δ,q0, F> の5つ組で記述しなさい。

  6. 確認問題 • 前問のオートマトンの動作のトレース • 次の文字列のうち、前問のオートマトンMが受理するのはどれとどれですか? • aabba • bababbb • aaaa • bbba

  7. 確認問題 • 下図のε-NFAをDFAに書き換えなさい。 a 4 b b ε ε ε a 1 2 3 6 7 b 5 c c ε

  8. 確認問題 • DFAからmin-DFAを求める手順について述べなさい。(理論的根拠は、後日お話します。Myhill-Nerodeの定理がポイントになりす。)

  9. 確認問題 • (正規表現を受理するmin-DFAを求める)   次の正規表現を受理するmin-DFAを求めよ。 • (ab|bc)*a(b|c) • (a|b|ε)(ab|b)*bc • (a|b)*a(a|b)

  10. さて、…

  11. 今日の話題 • FAの様相(configuration)(第2章の補足) • プッシュダウンオートマトン(pushdown automaton)(第3章の話)

  12. FAの様相 • FAの動作の様子・状況を様相(configuration)という。 • 動作開始時の様相を特に、初期様相という。

  13. 様相の表現 入力文字列 入力文字列の末尾

  14. 様相表現の例 • (具体例で理解しよう)教科書p.36 問2.1

  15. 1 0 q 0 1 p 0 r 1 FA M = <K, Σ, δ, q0, F>

  16. 1 0 q 0 1 p 0 r 1 FA M = <K, Σ, δ, q0, F> 様相(p, 11010) |- (q,1010) |- (q,010) |- (q,10) |- (q, 0) |- (q, ε) (p,11010) |*- (q,ε) <= Mは入力文字列 11010 を受理

  17. 様相(configuration)という用語は、本を読んでいると時々出てきます。様相(configuration)という用語は、本を読んでいると時々出てきます。 • オートマトンの動作状況を表現する単なる1つの方法にすぎません。でも、便利ですよね。

  18. 自主練習 教科書p.58の【演習問題】にチャレンジしてください。

  19. ここから新しい話し Let’s get down to today’s topics. • (第3章に入ります)

  20. プッシュダウンオートマトン • 有限オートマトンにプッシュダウンスタックメモリを追加装備したもの。 • Pushdown automaton (PDA)

  21. プッシュダウンスタック • 歴史的view: • 初期の頃:プッシュダウン型スタックメモリ(特殊なハードウェアと考えていた) • 現在:「スタック」は基本的なデータ構造の1つと考えられている。プッシュダウンスタックとは言わず、スタックと呼ぶことが多い。 データ構造: ・配列(またはアレイ) ・リスト ・スタック ・キュー など 続きは「データ構造とアルゴリズム」で。

  22. プッシュダウンスタックのイメージ Pop up Push down LIFO (Last In First Out) 最後に入れたものが最初に取り出される。

  23. PDAの種類 • 決定性プッシュダウンオートマトン Deterministic pushdown automaton (DPDA) • 非決定性プッシュダウンオートマトン Nondeterministic pushdown automaton (NPDA)

  24. DPDA Mの定義 • M = <K, Σ, Γ, δ, q0, Z0, F> • K:内部状態の集合 (#K < ∞) • Σ:入力アルファベット (#Σ < ∞) • Γ:プッシュダウンアルファベット(#Γ < ∞) • δ:状態遷移関数 K×(Σ∪{ε})×Γ → K×Γ* • q0:初期状態 (q0 ∈K ) • Z0:ボトムマーカ ( Z0∈Γ) • F:最終状態 ( F ⊂ K )

  25. DPDA Mの定義 • M = <K, Σ, Γ, δ, q0, Z0, F> • K:内部状態の集合 (#K < ∞) • Σ:入力アルファベット (#Σ < ∞) • Γ:プッシュダウンアルファベット(#Γ < ∞) • δ:状態遷移関数 K×(Σ∪{ε})×Γ → K×Γ* • q0:初期状態 (q0 ∈K ) • Z0:ボトムマーカ( Z0∈Γ) • F:最終状態 ( F ⊂ K )

  26. ハードウェア構成でのイメージ

  27. DFA と DPDA 類似点と相違点 類似点: 相違点: ・入力テープ ・プッシュダウンスタックメモリ  (左から右へ読み込むだけ) ・ヘッドとその内部状態

  28. 研究   ハードウェア構成でのイメージ なぜ、プッシュダウンスタック?

  29. 研究テーマ 内部処理装置 記憶装置 入力記号列

  30. 参考図書 • J. ライバー,認知科学への招待 チューリングとウィトゲンシュタインを道しるべに,新曜社,今井邦彦訳(1994). 研究課題: 脳の設計図を記述せよ。 事実を言葉で表現し,列挙せよ。 UMLで表記せよ。 SysMLで表記せよ。 プログラミング言語で表現せよ。

  31. 難しいことはさておいて… • (例を見てみましょう)教科書p.68例3.1

  32. DPDA Mの例 • M = <K, Σ, Γ, δ, q0, Z0, F> • K内部状態の集合 = { q0, q1, q2 } (#K < ∞) • Σ入力アルファベット = { a, b } (#Σ < ∞) • Γプッシュダウンアルファベット = { A, Z0 }(#Γ< ∞) • δ:状態遷移関数 K×(Σ∪{ε})×Γ → K×Γ* • q0 初期状態 = q0 (q0 ∈K ) • Z0:ボトムマーカ ( Z0∈Γ) • F:最終状態 F = { q2 } ⊂ K

  33. δ:状態遷移関数

  34. DPDA Mの例 • M = <K,Σ,Γ,δ,q0,Z0, F> • K = { q0, q1, q2 } • Σ = { a, b } • Γ = { A, Z0 } • δ:状態遷移関数 • q0 :初期期状態 • Z0:ボトムマーカ • F = { q2 }⊂ K

  35. 動作のトレース • (q0, aaabbb, Z0)|- (q0, aabbb, AZ0) |- (q0, abbb, AAZ0)|- (q0, bbb, AAAZ0)|- (q1, bb, AAZ0)|- (q1, b, AZ0) |- (q1, ε, Z0)|- (q2, ε, Z0) • |- (q0, aab, Z0)|- (q0, ab, AZ0)|- (q0, b, AAZ0)|- (q0, ε, AZ0) 受理 拒否

  36. 状態遷移図

  37. 動作のトレース 自分で確認しよう • (q0, aaabbb, Z0)|- (q0, aabbb, AZ0) |- (q0, abbb, AAZ0)|- (q0, bbb, AAAZ0)|- (q1, bb, AAZ0)|- (q1, b, AZ0) |- (q1, ε, Z0)|- (q2, ε, Z0) • |- (q0, aab, Z0)|- (q0, ab, AZ0)|- (q0, b, AAZ0)|- (q1, ε, AZ0) 受理 拒否

  38. 練習 • 教科書のp.71 問題3.1の DPDA の動作をいろいろな入力に対して調べてみよう。

  39. 非決定性プッシュダウンオートマトン • DPDAでの状態遷移関数部分が1対多の写像になる。

  40. DPDA Mの定義(再) • M = <K, Σ, Γ, δ, q0, Z0, F> • K:内部状態の集合 (#K < ∞) • Σ:入力アルファベット (#Σ < ∞) • Γ:プッシュダウンアルファベット(#Γ < ∞) • δ:状態遷移関数 K×(Σ∪{ε})×Γ → K×Γ* • q0:初期状態 (q0 ∈K ) • Z0:ボトムマーカ ( Z0∈Γ) • F:最終状態 ( F ⊂ K )

  41. NPDA Mの定義(再) • M = <K, Σ, Γ, δ, q0, Z0, F> • K:内部状態の集合 (#K < ∞) • Σ:入力アルファベット (#Σ < ∞) • Γ:プッシュダウンアルファベット(#Γ < ∞) • δ:状態遷移関数 K×(Σ∪{ε})×Γ → 2K×Γ* • q0:初期状態 (q0 ∈K ) • Z0:ボトムマーカ ( Z0∈Γ) • F:最終状態 ( F ⊂ K )

  42. DPDA Mの例 • M = <K, Σ, Γ, δ, q0, Z0, F> (教科書p.73の例3.2)

  43. NPDA Mの例 • M = <K,Σ,Γ,δ,q0,Z0, F> • K = {q0,q1,q2,q3,q4,qf } • Σ = { a, b, c } • Γ = { A, Z0 } • δ:状態遷移関数 • q0 :初期状態 • Z0:ボトムマーカ • F = { qf }⊂ K

  44. 状態遷移図

  45. 今日の設問(1番だけ提出) • (q0, aaabbbcc, Z0) |*- ? • aaabbbcc は受理されるか?される場合は、その動作の様子を様相表現で示しなさい。 • aabbbccc は受理されるか?

  46. ここまでのまとめ • プッシュダウンスタック • プッシュダウンオートマトン • 決定性 • 非決定性 • PDAはFAを含む(PDAはFAよりも文字列認識能力は高い。) <=(Why?) • DPDA は NPDA よりも能力は低い。(証明はしませんが、事実です。)

  47. 次回は、チューリングマシンです。 • チューリングマシンは、アルゴリズムや計算に関する理論の基礎を与えてくれます。 • チューリングマシンと、認識可能な言語との対応(チョムスキー階層)の話しもやがて出てきます(第5章)。 • 線形拘束オートマトン(線形有界オートマトン)も今後導入します。 • 計算量・計算の複雑さなどの話題にも触れましょう。  お楽しみに!

  48. ここまで積み残してきているもの • Myhill-Nerodeの定理 • (DFAにおける)ポンピング補題 など

More Related