html5-img
1 / 55

形式言語とオートマトン 2014 ー第 5&6 日目ー

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

kareem
Download Presentation

形式言語とオートマトン 2014 ー第 5&6 日目ー

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

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

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

  4. 前回の積み残し • 正規表現 α = a(a|b)*bb で定義される言語を受理するDFAを求める。 • まず、αと等価なε-NFAを書きだす。 • そのε-NFAと等価なDFAを作る。 • 得られたDFAをもとに、そのDFAと等価であり、かつ、状態数が最少となっているDFAを求める。 

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

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

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

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

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

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

  11. さて、…

  12. 今日からの話題 • FAの様相(configuration)(第2章の補足) • 演習  第5回はここまで。 • プッシュダウンオートマトン(pushdown automaton)(第3章の話)

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

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

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

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

  17. 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 を受理

  18. 様相(configuration)という用語は、本を読んでいると時々出てきます。例えば、「様相論理学」。この英語はModal Logic。混乱しないように! • オートマトンの動作状況を表現する単なる1つの方法にすぎません。でも、便利ですよね。

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

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

  21. でも、今年は復習をしましょう。 • まずは、議論をしましょう!

  22. 自分の課題を見つけよう。 • まずは、議論をする。 • 議題:この授業をうけ、ここまでに学んだことは何か? (単語だけでもいいので多く書き出すこと) • 成果物:自分が理解していない用語(概念)や事実(内容)のうち、最も重要だと思うものを1つ書きだす。

  23. 2.課題 次のε-NFAと等価な状態数最少のDFAを求めよ。2.課題 次のε-NFAと等価な状態数最少のDFAを求めよ。 M = { 状態の集合Q, 入力アルファベットS, 状態遷移関数δ,初期状態σ, 最終状態の集合F } ただし、  ・Q = { 1, 2, 3 }  ・S = { a, b }  ・σ = 1  ・F = { 1 }  ・δ: δ(1,b)={2}, δ(1,ε)={3}, δ(2,a)={2, 3}, δ(2,b)={3}, δ(3,a)={1}

  24. ヒント • 状態遷移図を書く。 • 等価なDFAを求める。 • 状態数最少のDFAを求める。

  25. 以上で有限オートマトンは終わり。

  26. 形式言語とオートマトン2014ー第6日目ー 東京工科大学 コンピュータサイエンス学部 亀田弘之

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

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

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

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

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

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

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

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

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

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

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

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

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

  40. δ:状態遷移関数

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

  42. 動作のトレース • (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) 受理 拒否

  43. 状態遷移図

  44. 動作のトレース 自分で確認しよう • (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) 受理 拒否

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

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

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

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

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

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

More Related