形式言語とオートマトン 2010 ー第 7 日目ー
DESCRIPTION
形式言語とオートマトン 2010 ー第 7 日目ー. 東京工科大学 コンピュータサイエンス学部 亀田弘之. 前回までの確認. 有限オートマトン (FA) FA の定義と記述法 テープ上を一方向に動くヘッド (テープ上の記号を順次読みながら内部状態を遷移) M = (5つ組) 状態遷移図 様相( configuration ) FA の種類 決定性 FA ( DFA ) 非決定性 FA ( ε 遷移のあるものとないもの) 言語認識能力はどの FA でも同じ。 正規言語(正規表現)を認識. 前回までの確認(2). - PowerPoint PPT PresentationTRANSCRIPT
形式言語とオートマトン2010
ー第 7 日目ー東京工科大学
コンピュータサイエンス学部亀田弘之
前回までの確認• 有限オートマトン (FA)
– FA の定義と記述法テープ上を一方向に動くヘッド
(テープ上の記号を順次読みながら内部状態を遷移)
M = <K, Σ, δ, q0, F> (5つ組)状態遷移図様相( configuration )
– FA の種類決定性 FA ( DFA )非決定性 FA ( ε 遷移のあるものとないもの)
– 言語認識能力はどの FA でも同じ。正規言語(正規表現)を認識
前回までの確認(2)
• 正規表現を認識する FA の存在とその構成法1. 正規表現 α が与えられる。2. 正規表現 α に対して、 ε-NFA を構成する。3. ε-NFA を DFA に書き換える。4. DFA を状態数が最も少ない最簡形の DFA
(Min-DFA) に書き換える。5. Min-DFA をシミュレートするプログラムを作
成する。(注)上記5の説明および、最簡形 DFA 存在とその求め方を 与える Myhill-Nerode の定理の説明はまだしていません。
前回までの確認(3)• Pushudown automaton(PDA)
– スタックの定義スタックの構造と動作( pop-up と push-down )LIFO (Last-In First-Out) 型のメモリ
– PDA の定義と記述法テープ上を一方向に動くヘッド+スタックメモリ
(テープの記号を順次読み、スタック上の記号を順次 読み書きしながら内部状態を遷移)
M = < K, Σ, Γ,δ, q0, Z0, F > (7つ組)状態遷移図様相( configuration )
データ構造:
・配列(またはアレイ)
・リスト
・スタック
・キュー など
スタックと PDA のイメージ図
Push down Pop up
LIFO (Last In First Out)
最後に入れたものが最初に取り出される。
前回までの確認(4)
前回までの確認• Pushdown automaton (PDA)
– PDA の種類決定性プッシュダウンオートマトン
Deterministic pushdown automaton (DPDA)非決定性プッシュダウンオートマトン
Nondeterministic pushdown automaton (NPDA)
– 言語認識能力は NPDA の方が高い。FA は正規言語(正規表現)を認識NPDA は文脈自由言語を認識DPDA よりも NPDA の方が言語認識能力大
(注)“言語”の話は後日お話します。
今日の内容
• チューリングマシン (Turing Machine)
授業ではこの形式のものを扱います
TM の定義
• TM M = < Q, Γ, Σ, δ, q0, B, F > (7 つ組 )– Q: 内部状態の集合– Γ :テープ記号の集合– Σ :入力記号の集合 ( Σ Γ )⊂– δ :状態遷移関数
Q×Γ → Q×Γ×{ L, R }– q0 :初期状態 ( q0 Q)∈– B: ブランク記号 ( B Γ – Σ)∈– F: 最終状態の集合 ( F Q )⊂
TM のイメージ図
TM の例• 例 4.1 (教科書 p.90 )• 例 4.2 (教科書 p.95 )• 例 4.3 (教科書 p.96 )• 例 4.4 (教科書 p.100 )• 例 4.5 (教科書 p.106 )
これらを順次確認していきましょう。
例 4.1 (教科書 p.90 )
入力文字列
• aa
• aabb
• bbaa
•aaaabbbb
様相 (Configuration) の導入
• (q0, a1 a2 a3 ・・・ ai-1 ↓ai ai+1 ・・・ an )
例 4.2 (教科書 p.95 )
M=<Q,Γ,Σ,δ,q0,B,F>
Q={ q0, q1, q2, q3, qf }
Σ={ a, b } Γ=Σ {a’,b’} {¢,$,B}∪ ∪ δ :
δ(q0,a)=(q1,a’,R)δ(q0,ab’=(q3,b’,R)δ(q1,a)=(q1,a,R)
δ(q1,b)=(q2,b’,L)
δ(q1,b’)=(q1,b’,R)δ(q2,a)=(q2,a,L)δ(q2,a’)=(q0,a’,R)δ(q2,b’)=(q2,b’,L)δ(q3,b’)=(q3,b’,R)δ(q3,$)=(qf,$,L)
例 4.3 (教科書 p.96 )
• 言語 { anbnan | n>=1 } を受理する TM
例 4.3 (教科書 p.96 )
例 4.4 (教科書 p.100 )
• { ww | w { a, b }∈ + } を受理する TM
例 4.5 (教科書 p.106 )
• 2 進数の和を計算する TM
今日はここまで
• 少しずつ復習をしてください。• 個々のものは決して難しくはありません。• 引き続き頑張りましょう。• 来週は少し難しいです。