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

55
形形形形形形形形形形形 2014 形形 5&6 形形形 形形形形形形 形形形形形形形形形形形形形 形形形形

description

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

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

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

形式言語とオートマトン2014

ー第 5&6 日目ー東京工科大学

コンピュータサイエンス学部亀田弘之

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

前回までの確認

• 有限オートマトン (FA)– FA の定義と記述法

テープ上を一方向に動くヘッド(テープ上の記号を読みながら、内部状態を変えていく)

M = <K, Σ, δ, q0, F> 状態遷移図

– FA の種類決定性 FA ( DFA )非決定性 FA ( ε 遷移のあるものとないもの)

– 言語認識能力はどの FA でも同じ。正規言語(正規表現)を認識可能。 2

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

前回までの確認(2)

• 正規表現を認識する FA の存在とその構成法

1. 正規表現 α が与えられる。2. 正規表現 α に対して、 ε-NFA を構成する。3. ε-NFA を DFA に書き換える。4. DFA を状態数最少の DFA に書き換える。5. Min-DFA をシミュレートするプログラムを作

成する。

3

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

前回の積み残し

• 正規表現 α = a(a|b)*bb で定義される言語を受理する DFA を求める。

1.まず、 α と等価な ε-NFA を書きだす。2.その ε-NFA と等価な DFA を作る。3.得られた DFA をもとに、その DFA と等

価であり、かつ、状態数が最少となっている DFA を求める。 

4

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

確認問題集

• (少しずつこなしていってください。)

5

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

確認問題1

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

p q r

a

a

a

b

b

b

6

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

確認問題

• 前問のオートマトンの動作のトレース– 次の文字列のうち、前問のオートマトンM

が受理するのはどれとどれですか?① aabba

② bababbb

③ aaaa

④ bbba

7

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

確認問題

• 下図の ε-NFA を DFA に書き換えなさい。

1 2 3

56 7 8

b

a

ε aε

b b

cc

ε

ε

8

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

確認問題

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

9

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

確認問題

• (正規表現を受理する min-DFA を求める)

  次の正規表現を受理する min-DFA を求めよ。

1. (ab|bc)*a(b|c)

2. (a|b|ε)(ab|b)*bc

3. (a|b)*a(a|b)

10

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

さて、…

11

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

今日からの話題

1. FA の様相 (configuration)( 第 2 章の補足 )

2. 演習  第5回はここまで。3. プッシュダウンオートマトン

( pushdown automaton )(第 3 章の話)

12

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

FA の様相

• FA の動作の様子・状況を様相(configuration) という。

• 動作開始時の様相を特に、初期様相という。

13

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

様相の表現

入力文字列の末尾入力文字列の末尾

入力文字列入力文字列

14

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

様相表現の例

• (具体例で理解しよう)教科書 p.36 問 2.1

15

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

FA M = <K, Σ, δ, q0, F>

0

1

p

1

0

q0

1

r

16

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

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

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

• 様相 (configuration) という用語は、本を読んでいると時々出てきます。例えば、「様相論理学」。この英語は Modal Logic 。混乱しないように!

• オートマトンの動作状況を表現する単なる1つの方法にすぎません。でも、便利ですよね。

18

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

自主練習

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

19

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

ここから新しい話し

• (第3章に入ります) Let’s get down to today’s

topics.

20

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

でも、今年は復習をしましょう。

1. まずは、議論をしましょう!

21

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

自分の課題を見つけよう。

1. まずは、議論をする。– 議題:

この授業をうけ、ここまでに学んだことは何か? (単語だけでもいいので多く書き出すこと)

– 成果物:自分が理解していない用語(概念)や事実(内容)のうち、最も重要だと思うものを1つ書きだす。

22

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

2.課題 次の ε-NFA と等価な状態数最少の DFA を求めよ。

23

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}

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}

a b ε

1 ー 2 3

2 2,3

3 ー

3 1 ー ー

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

ヒント

1. 状態遷移図を書く。2. 等価な DFA を求める。3. 状態数最少の DFA を求める。

24

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

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

25

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

形式言語とオートマトン2014

ー第 6 日目ー東京工科大学

コンピュータサイエンス学部亀田弘之

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

プッシュダウンオートマトン

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

• Pushdown automaton (PDA)

27

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

プッシュダウンスタック

• 歴史的 view:– 初期の頃:プッシュダウン型スタックメモリ

(特殊なハードウェアと考えていた)– 現在:「スタック」は基本的なデータ構造の

1つと考えられている。プッシュダウンスタックとは言わず、スタックと呼ぶことが多い。

データ構造:

・配列(またはアレイ)

・リスト

・スタック

・キュー など

続きは「データ構造とアルゴリズム」で。

28

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

プッシュダウンスタックのイメージ

Push down Pop up

LIFO (Last In First Out)

最後に入れたものが最初に取り出される。29

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

PDA の種類

• 決定性プッシュダウンオートマトンDeterministic pushdown automaton (DPDA)

• 非決定性プッシュダウンオートマトンNondeterministic pushdown automaton (NPDA)

30

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

DPDA M の定義

• M = <K, Σ, Γ, δ, q0, Z0, F>– K: 内部状態の集合 ( #K < ∞ )– Σ :入力アルファベット ( #Σ < ∞ )– Γ :プッシュダウンアルファベット( #Γ < ∞ )– δ :状態遷移関数

K×(Σ {ε})×Γ → K×Γ*∪– q0 :初期状態 (q0 K )∈– Z0 :ボトムマーカ ( Z0 Γ)∈– F :最終状態 ( F K )⊂

31

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

DPDA M の定義

• M = <K, Σ, Γ, δ, q0, Z0, F>– K: 内部状態の集合 ( #K < ∞ )– Σ :入力アルファベット ( #Σ < ∞ )– Γ :プッシュダウンアルファベット( #Γ < ∞ )– δ :状態遷移関数

K×(Σ {ε})×Γ → K×Γ*∪– q0 :初期状態 (q0 K )∈– Z0 :ボトムマーカ ( Z0 Γ)∈– F :最終状態 ( F K )⊂

32

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

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

33

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

DFA と DPDA

類似点と相違点

類似点: 相違点:

・入力テープ ・プッシュダウンスタックメモリ

 (左から右へ読み込むだけ)

・ヘッドとその内部状態 34

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

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

なぜ、プッシュダウンスタック?なぜ、プッシュダウンスタック?

研究

35

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

研究テーマ

36

入力

記号

内部処理装置

内部処理装置

記憶装置記憶装置

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

参考図書

• J. ライバー,認知科学への招待 チューリングとウィトゲンシュタインを道しるべに,新曜社,今井邦彦訳 (1994).

37

研究課題: 脳の設計図を記述せよ。1.事実を言葉で表現し,列挙せよ。2.UML で表記せよ。3.SysML で表記せよ。4.プログラミング言語で表現せよ。

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

難しいことはさておいて…

• ( 例を見てみましょう )教科書 p.68 例 3.1

38

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

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⊂

39

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

δ :状態遷移関数

K×(Σ {ε})×Γ∪ K×Γ*

δ( q0, a, Z0 ) ( q0, AZ0 )

δ( q0, a, A ) ( q0, AA )

δ( q0, b, A ) ( q1, ε )

δ( q1, b, A ) ( q1, ε )

δ( q1, ε, Z0 ) ( q2, Z0 )

40

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

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 )

41

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

動作のトレース• (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 )

受理

拒否42

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

状態遷移図

43

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

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

拒否

自分で確認しよう

44

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

練習

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

45

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

非決定性プッシュダウンオートマトン

• DPDA での状態遷移関数部分が1対多の写像になる。

46

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

DPDA M の定義(再)

• M = <K, Σ, Γ, δ, q0, Z0, F>– K: 内部状態の集合 ( #K < ∞ )– Σ :入力アルファベット ( #Σ < ∞ )– Γ :プッシュダウンアルファベット( #Γ < ∞ )– δ :状態遷移関数

K×(Σ {ε})×Γ → ∪ K×Γ*– q0 :初期状態 (q0 K )∈– Z0 :ボトムマーカ ( Z0 Γ)∈– F :最終状態 ( F K )⊂

47

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

NPDA M の定義(再)

• M = <K, Σ, Γ, δ, q0, Z0, F>– K: 内部状態の集合 ( #K < ∞ )– Σ :入力アルファベット ( #Σ < ∞ )– Γ :プッシュダウンアルファベット( #Γ < ∞ )– δ :状態遷移関数

K×(Σ {ε})×Γ → ∪ 2 K×Γ*

– q0 :初期状態 (q0 K )∈– Z0 :ボトムマーカ ( Z0 Γ)∈– F :最終状態 ( F K )⊂

48

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

DPDA M の例

• M = <K, Σ, Γ, δ, q0, Z0, F>

(教科書 p.73 の例 3.2 )

49

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

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 )50

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

状態遷移図

51

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

今日の設問(1番だけ提出)

1. (q0, aaabbbcc, Z0) |*- ?

2. aaabbbcc は受理されるか?される場合は、その動作の様子を様相表現で示しなさい。

3. aabbbccc は受理されるか?

52

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

ここまでのまとめ

• プッシュダウンスタック• プッシュダウンオートマトン

– 決定性– 非決定性

• PDA は FA を含む( PDA は FA よりも文字列認識能力は高い。) <=( Why? )

• DPDA は NPDA よりも能力は低い。(証明はしませんが、事実です。)

53

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

次回は、チューリングマシンです。

• チューリングマシンは、アルゴリズムや計算に関する理論の基礎を与えてくれます。

• チューリングマシンと、認識可能な言語との対応(チョムスキー階層)の話しもやがて出てきます(第5章)。

• 線形拘束オートマトン(線形有界オートマトン)も今後導入します。

• 計算量・計算の複雑さなどの話題にも触れましょう。  お楽しみに!

54

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

ここまで積み残してきているもの

• Myhill-Nerode の定理• ( DFA における)ポンピング補題 など

55