形式言語とオートマトン 2013 ー第 6&7 日目ー
DESCRIPTION
形式言語とオートマトン 2013 ー第 6&7 日目ー. 東京工科大学 コンピュータサイエンス学部 亀田弘之. 前回までの確認. 有限オートマトン (FA) FA の定義と記述法 テープ上を一方向に動くヘッド (テープ上の記号を読みながら、内部状態を変えていく) M = 状態遷移図 FA の種類 決定性 FA ( DFA ) 非決定性 FA ( ε 遷移のあるものとないもの) 言語認識能力はどの FA でも同じ。 正規言語(正規表現)を認識可能。. 前回までの確認(2). 正規表現を認識する FA の存在とその構成法 - PowerPoint PPT PresentationTRANSCRIPT
形式言語とオートマトン2013
ー第 6&7 日目ー東京工科大学
コンピュータサイエンス学部亀田弘之
前回までの確認
• 有限オートマトン (FA)– FA の定義と記述法
テープ上を一方向に動くヘッド(テープ上の記号を読みながら、内部状態を変えていく)
M = <K, Σ, δ, q0, F> 状態遷移図
– FA の種類決定性 FA ( DFA )非決定性 FA ( ε 遷移のあるものとないもの)
– 言語認識能力はどの FA でも同じ。正規言語(正規表現)を認識可能。 2
前回までの確認(2)
• 正規表現を認識する FA の存在とその構成法
1. 正規表現 α が与えられる。2. 正規表現 α に対して、 ε-NFA を構成する。3. ε-NFA を DFA に書き換える。4. DFA を状態数最少の DFA に書き換える。5. Min-DFA をシミュレートするプログラムを作
成する。
3
確認問題集
• (少しずつこなしていってください。)
4
確認問題1
• (オートマトンの定義)次の状態遷移図で与えられるオートマトンを、 M= < K,Σ,δ,q0, F > の5つ組で記述しなさい。
p q r
a
a
a
b
b
b
5
確認問題
• 前問のオートマトンの動作のトレース– 次の文字列のうち、前問のオートマトンM
が受理するのはどれとどれですか?① aabba
② bababbb
③ aaaa
④ bbba
6
確認問題
• 下図の ε-NFA を DFA に書き換えなさい。
1 2 3
4
56 7 8
b
a
ε aε
b b
cc
ε
ε
7
確認問題
• DFA から min-DFA を求める手順について述べなさい。(理論的根拠は、後日お話します。 Myhill-Nerode の定理がポイントになりす。)
8
確認問題
• (正規表現を受理する min-DFA を求める)
次の正規表現を受理する min-DFA を求めよ。
1. (ab|bc)*a(b|c)
2. (a|b|ε)(ab|b)*bc
3. (a|b)*a(a|b)
9
さて、…
10
今日の話題
1. FA の様相 (configuration)( 第 2 章の補足 )
2. プッシュダウンオートマトン( pushdown automaton )(第 3 章の話)
11
FA の様相
• FA の動作の様子・状況を様相(configuration) という。
• 動作開始時の様相を特に、初期様相という。
12
様相の表現
入力文字列の末尾入力文字列の末尾
入力文字列入力文字列
13
様相表現の例
• (具体例で理解しよう)教科書 p.36 問 2.1
14
FA M = <K, Σ, δ, q0, F>
0
1
p
1
0
q0
1
r
15
FA M = <K, Σ, δ, q0, F>
0
1
p
1
0
q0
1
r
様相 (p, 11010) |- (q,1010) |- (q,010) |- (q,10) |- (q, 0) |- (q, ε)
(p,11010) |*- (q,ε) <= M は入力文字列 11010 を受理 16
• 様相 (configuration) という用語は、本を読んでいると時々出てきます。
• オートマトンの動作状況を表現する単なる1つの方法にすぎません。でも、便利ですよね。
17
自主練習
教科書 p.58 の【演習問題】にチャレンジしてください。
18
ここから新しい話し
• (第3章に入ります) Let’s get down to today’s
topics.
19
プッシュダウンオートマトン
• 有限オートマトンにプッシュダウンスタックメモリを追加装備したもの。
• Pushdown automaton (PDA)
20
プッシュダウンスタック
• 歴史的 view:– 初期の頃:プッシュダウン型スタックメモリ
(特殊なハードウェアと考えていた)– 現在:「スタック」は基本的なデータ構造の
1つと考えられている。プッシュダウンスタックとは言わず、スタックと呼ぶことが多い。
データ構造:
・配列(またはアレイ)
・リスト
・スタック
・キュー など
続きは「データ構造とアルゴリズム」で。
21
プッシュダウンスタックのイメージ
Push down Pop up
LIFO (Last In First Out)
最後に入れたものが最初に取り出される。22
PDA の種類
• 決定性プッシュダウンオートマトンDeterministic pushdown automaton (DPDA)
• 非決定性プッシュダウンオートマトンNondeterministic pushdown automaton (NPDA)
23
DPDA M の定義
• M = <K, Σ, Γ, δ, q0, Z0, F>– K: 内部状態の集合 ( #K < ∞ )– Σ :入力アルファベット ( #Σ < ∞ )– Γ :プッシュダウンアルファベット( #Γ < ∞ )– δ :状態遷移関数
K×(Σ {ε})×Γ → K×Γ*∪– q0 :初期状態 (q0 K )∈– Z0 :ボトムマーカ ( Z0 Γ)∈– F :最終状態 ( F K )⊂
24
DPDA M の定義
• M = <K, Σ, Γ, δ, q0, Z0, F>– K: 内部状態の集合 ( #K < ∞ )– Σ :入力アルファベット ( #Σ < ∞ )– Γ :プッシュダウンアルファベット( #Γ < ∞ )– δ :状態遷移関数
K×(Σ {ε})×Γ → K×Γ*∪– q0 :初期状態 (q0 K )∈– Z0 :ボトムマーカ ( Z0 Γ)∈– F :最終状態 ( F K )⊂
25
ハードウェア構成でのイメージ
26
DFA と DPDA
類似点と相違点
類似点: 相違点:
・入力テープ ・プッシュダウンスタックメモリ
(左から右へ読み込むだけ)
・ヘッドとその内部状態 27
ハードウェア構成でのイメージ
なぜ、プッシュダウンスタック?なぜ、プッシュダウンスタック?
研究
28
研究テーマ
29
入力
記号
列
内部処理装置
内部処理装置
記憶装置記憶装置
参考図書
• J. ライバー,認知科学への招待 チューリングとウィトゲンシュタインを道しるべに,新曜社,今井邦彦訳 (1994).
30
研究課題: 脳の設計図を記述せよ。1.事実を言葉で表現し,列挙せよ。2.UML で表記せよ。3.SysML で表記せよ。4.プログラミング言語で表現せよ。
難しいことはさておいて…
• ( 例を見てみましょう )教科書 p.68 例 3.1
31
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⊂
32
δ :状態遷移関数
K×(Σ {ε})×Γ∪ K×Γ*
δ( q0, a, Z0 ) ( q0, AZ0 )
δ( q0, a, A ) ( q0, AA )
δ( q0, b, A ) ( q1, ε )
δ( q1, b, A ) ( q1, ε )
δ( q1, ε, Z0 ) ( q2, Z0 )
33
DPDA M の例
• M = <K,Σ,Γ,δ,q0,Z0, F>
– K = { q0, q1, q2 }
– Σ = { a, b }
– Γ = { A, Z0 }
– δ :状態遷移関数– q0 :初期期状態
– Z0 :ボトムマーカ
– F = { q2 } K⊂
K×(Σ {ε})×Γ∪ K×Γ*
δ( q0, a, Z0 ) ( q0, AZ0 )
δ( q0, a, A ) ( q0, AA )
δ( q0, b, A ) ( q1, ε )
δ( q1, b, A ) ( q1, ε )
δ( q1, ε, Z0 ) ( q2, Z0 )
34
動作のトレース• (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)
K×(Σ {ε})×Γ∪ K×Γ*
δ( q0, a, Z0 ) ( q0, AZ0 )
δ( q0, a, A ) ( q0, AA )
δ( q0, b, A ) ( q1, ε )
δ( q1, b, A ) ( q1, ε )
δ( q1, ε, Z0 ) ( q2, Z0 )
受理
拒否35
状態遷移図
36
動作のトレース• (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)|- (q 1 , ε, AZ0)
K×(Σ {ε})×Γ∪ K×Γ*
δ( q0, a, Z0 ) ( q0, AZ0 )
δ( q0, a, A ) ( q0, AA )
δ( q0, b, A ) ( q1, ε )
δ( q1, b, A ) ( q1, ε )
δ( q1, ε, Z0 ) ( q2, Z0 )受理
拒否
自分で確認しよう
37
練習
• 教科書の p.71 問題 3.1 の DPDA の動作をいろいろな入力に対して調べてみよう。
38
非決定性プッシュダウンオートマトン
• DPDA での状態遷移関数部分が1対多の写像になる。
39
DPDA M の定義(再)
• M = <K, Σ, Γ, δ, q0, Z0, F>– K: 内部状態の集合 ( #K < ∞ )– Σ :入力アルファベット ( #Σ < ∞ )– Γ :プッシュダウンアルファベット( #Γ < ∞ )– δ :状態遷移関数
K×(Σ {ε})×Γ → ∪ K×Γ*– q0 :初期状態 (q0 K )∈– Z0 :ボトムマーカ ( Z0 Γ)∈– F :最終状態 ( F K )⊂
40
NPDA M の定義(再)
• M = <K, Σ, Γ, δ, q0, Z0, F>– K: 内部状態の集合 ( #K < ∞ )– Σ :入力アルファベット ( #Σ < ∞ )– Γ :プッシュダウンアルファベット( #Γ < ∞ )– δ :状態遷移関数
K×(Σ {ε})×Γ → ∪ 2 K×Γ*
– q0 :初期状態 (q0 K )∈– Z0 :ボトムマーカ ( Z0 Γ)∈– F :最終状態 ( F K )⊂
41
DPDA M の例
• M = <K, Σ, Γ, δ, q0, Z0, F>
(教科書 p.73 の例 3.2 )
42
NPDA M の例
• M = <K,Σ,Γ,δ,q0,Z0, F>
– K = {q0,q1,q2, q3, q4, qf }
– Σ = { a, b, c }
– Γ = { A, Z0 }
– δ :状態遷移関数– q0 :初期状態
– Z0 :ボトムマーカ
– F = { qf } K⊂
K×(Σ {ε})×Γ∪ K×Γ*
δ( q0, a, Z0 ) ( q0, A Z0 )
δ( q0, a, A ) ( q0, AA )
δ( q0, b, A ) (q1,ε), (q3,A)
δ( q1, b, A) ( q1,ε)
δ( q1, c, Z0) ( q2, Z0 )
δ( q2, c, Z0) ( q2, Z0 )
δ( q2,ε, Z0) ( qf, Z0 )
δ( q3, b, A ) ( q3,A )
δ( q3, c, A ) ( q4,ε)
δ( q4, c, A ) ( q4,ε)
δ( q4,ε, Z0) ( qf, Z0 )43
状態遷移図
44
今日の設問(1番だけ提出)
1. (q0, aaabbbcc, Z0) |*- ?
2. aaabbbcc は受理されるか?される場合は、その動作の様子を様相表現で示しなさい。
3. aabbbccc は受理されるか?
45
ここまでのまとめ
• プッシュダウンスタック• プッシュダウンオートマトン
– 決定性– 非決定性
• PDA は FA を含む( PDA は FA よりも文字列認識能力は高い。) <=( Why? )
• DPDA は NPDA よりも能力は低い。(証明はしませんが、事実です。)
46
次回は、チューリングマシンです。
• チューリングマシンは、アルゴリズムや計算に関する理論の基礎を与えてくれます。
• チューリングマシンと、認識可能な言語との対応(チョムスキー階層)の話しもやがて出てきます(第5章)。
• 線形拘束オートマトン(線形有界オートマトン)も今後導入します。
• 計算量・計算の複雑さなどの話題にも触れましょう。 お楽しみに!
47
ここまで積み残してきているもの
• Myhill-Nerode の定理• ( DFA における)ポンピング補題 など
48