29
1 オートマトンと言語 12回目 625NFA DFA 教科書107ページから112ページ

オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

1

オートマトンと言語 12回目 6月25日 NFA DFA→

教科書107ページから112ページ

Page 2: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

2

本の紹介

書籍名「あなたはコンピュータを理解していますか?」

副題:10年後,20年後まで必ず役立つ根っこの部分がきっちりわかる!

著者:梅津信幸

出版社:ソフトバンククリエイティブ

手軽に読めます.

新たな発見があるかも

Page 3: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

3

授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日 形式言語,BNF記法 03回目 4月23日 BNF記法 04回目 4月30日 離散グラフ 05回目 5月07日 連結グラフ 06回目 5月14日 木グラフ 07回目 5月21日 有限オートマトン1 08回目 5月28日 有限オートマトン2 09回目 6月04日 有限オートマトン3,中間試験 10回目 6月11日 正規表現 11回目 6月18日 正規表現,非決定性有限オートマトン 12回目 6月25日 正規表現→DFA 13回目 7月02日 有限オートマトンの最小化 14回目 7月09日  PDA,チューリング機械,文脈自由文法 15回目 7月16日 期末試験

Page 4: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

4

今日のメニュー

非決定性有限オートマトン→決定性有限オートマトン(NFA DFA→ )

ε動作を含むNFA ε→ 動作を含まないNFA 正規表現→ ε動作を含むNFA

Page 5: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

5

4.4.2 非決定性FAの決定性FAへの変換(p.107)

あるDFAで受理できる言語を受理するNFAは簡単に構成できる(DFA NFA→ は簡単)

NFA DFA→ は可能か? 可能(変換方法は後で説明)

εq0

0

1 1

q1ε

q00

1 1

q1

1

q20

DFA NFA

Page 6: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

6

例題4.33 例題4.30のNFAの受理する言語を受理するDFAを構成せよ(NFA DFA)→

{q1}{q0}q2

{q2}{q0}q1

{q0}{q1,q2}q0

10δN

[q1,q2][q0][q1,q2]

[q0][q1,q2][q0]

10δDq0

q1

q2

1

11

0

0

0

0

ε

S1S0S1

S0S1S0

10δD

DFA化

状態ラベルの付換え [q1,q2][q0]ε

11

0

0

[ ]: 状態集合ラベル

S1S0ε

1 1

0

0

Page 7: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

7

例題4.35 (例題4.29)

S0 S1

0,1

0

1

{S0}φS1

{S1}{S0,S1}S0

10δ

ε

NFA DFA→

Page 8: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

8

例題4.35 (例題4.29)の答え

[s0]----[s1][s0,s1][s0,s1][s0,s1][s1][s0,s1][s0]10δDFA

{S0}φS1

{S1}{S0,S1}S0

10δNFA

S0 S1

0,1

0

1

[s1][s0]

[s0,s1]0

1

0/11

ε

ε

初期状態からの

遷移を調べる

各遷移先からの

遷移を調べる

新しい遷移先が

無ければ終了

重要!

初期状態 初期状態

Page 9: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

9

練習問題1 例題4.36 a, f

S0

S3

εS1

S2

1

11

10

0

0,1

q0 q1

0 1

ε0,1

1

a f

Page 10: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

10

練習問題1 例題4.36 aの答え

[s0,s1,s2,s3][s0,s2][s0,s1,s2,s3][s0,s1,s2,s3][s2][s0,s2][s2][s0][s1,s3][s0,s2][s2][s2][s1,s3][s2][s0]10δDFAa

φφS3{S0,S2}{S2}S2{S2}{S0}S1{S1,S3}{S2}S010δNFAa

S0

S3

εS1

S2

1

11

10

0

0,1

a 初期状態

初期状態

Page 11: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

11

練習問題1例題4.36 aの答え

[s0,s1,s2,s3][s0,s2][s0,s1,s2,s3][s0,s1,s2,s3][s2][s0,s2][s2][s0][s1,s3][s0,s2][s2][s2][s1,s3][s2][s0]10δDFAa

[s0]

[s1,s3]

[s0,s1,s2,s3]

[s2]

[s0,s2]

01

1

0

10

1

01

0

ε

Page 12: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

12

練習問題1 例題4.36  fの答え

[q0,q1][q0,q1][q0,q1][q0,q1]-----[q1][q1][q0,q1][q0]10δDFAf

{q0,q1}φq1{q1}{q0,q1}q010δNFAf

q0 q1

0 1

ε0,1

1

Page 13: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

13

練習問題1例題4.36 fの答え

[q0,q1][q0,q1][q0,q1][q0,q1]-----[q1][q1][q0,q1][q0]10δDFAf

[q0] [q1]

[q0,q1]

0

1

1

0,1

ε

Page 14: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

14

4.4.3 ε- 動作を含むNFA

空語入力による遷移  → ε-遷移

ε-NFAの状態遷移関数の定義 δ:Q×(Σ+{ε})→P(Q)

q0 q1

1

ε

ε

φφq1

{q1}{q0}q0

ε1δ

Page 15: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

15

練習問題2 例題4.37

S3

0 1

S1 S2εε ε

0

W1: 0011W2: 01001

Page 16: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

16

練習問題2 例題4.37 w1 答え

w1 = 0011

受理

0 0 11

S1

S2

S1

S3

S1

S3 S3

S2 S2 S2

S3S3

×

S2

×w1:受理される

S3

0 1

S1 S2εε ε

0

{S3}φ{S1}0

{S3}{S2}S2φφS3

{S2}φS1ε1δ

Page 17: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

17

練習問題2 例題4.37 w2 答え

w2 = 01001 0 1 00

S1

S3

S1

S3 S3

S2 S2

S3S3

S2

×

1

×w2:受理されない

S3

0 1

S1 S2εε ε

0{S3}φ{S1}0

{S3}{S2}S2φφS3

{S2}φS1ε1δ

Page 18: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

18

例題4.38ε-動作の除去

------{S3}S3

{S3}{S2}---S2

{S2}---{S1}S1

ε10δε-NFA

S3

0 1

S1 S2ε ε ε

0

---{S3}S3

{S2,S3}{S3}S2

{S2,S3}{S1,S2,S3}S1

10δNFA

S1

S2

S3

0

0,1

0,1 0,1

0

1

ε

Page 19: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

19

練習問題3 例題4.40 a

q0 q1

0

1

ε

ε

{q0}{q1}--q1

----{q1}q0

ε10δε-NFA

Page 20: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

20

練習問題3 例題4.40 a 答え

0

q0 q1

0

0,1

0,1

ε

{q0,q1}{q0,q1}q1

--{q0,q1}q0

10δNFA

{q0}{q1}--q1

----{q1}q0

ε10δε-NFA

q0 q1

0

1

ε

ε

Page 21: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

21

例題4.41 (p.112) ε-NFA DFA→

S3

0 1

S1 S2ε ε ε

0

------{S3}S3

{S3}{S2}---S2

{S2}---{S1}S1

ε10δε-NFA

Page 22: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

22

例題4.41 1/2

[S2,S3][S3][S2,S3]

---[S3][S3]

[S2,S3][S1,S2,S3][S1,S2,S3]

[S2,S3][S1,S2,S3][S1]

10δDFA

0 1

S1 S2ε ε ε

0

------{S3}S3

{S3}{S2}---S2

{S2}---{S1}S1

ε10δε-NFA

---{S3}S3

{S2,S3}{S3}S2

{S2,S3}{S1,S2,S3}S1

10δNFA

S3

例題4.38

ε-NFA → NFA → DFA

Page 23: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

23

例題4.41 2/2

[S2,S3][S3][S2,S3]

---[S3][S3]

[S2,S3][S1,S2,S3][S1,S2,S3]

[S2,S3][S1,S2,S3][S1]

10δDFA 0 1

S1 S2ε ε ε

0

S3

ε-NFA → NFA → DFA

[S2,S3][S3][S2,S3]

---[S3][S3]

[S2,S3][S1,S2,S3][S1,S2,S3]

[S2,S3][S1,S2,S3][S1]

10δDFA

ε(S1)

ε(S2)

ε(S3)

S1のε-閉包

初期状態をε(S1)と考えると

[S1,S2,S3] [S2,S3] [S3]

0

1

1

0

0

Page 24: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

24

4.4.4 正規表現で表された言語を受理するε-NFA

(1) 正規言語の閉包性 正規言語:FAの受理する言語,あるいは正規表現

の表す言語のクラス 正規言語は言語の和,連接,クリーネ閉包(Σ*)につ

いて閉じている 正規言語は和,積,補の集合演算についても閉じて

いる

閉じている:教科書8ページ

クリーネ閉包:教科書33ページ

連接:教科書34ページ

Page 25: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

25

(2)正規表現からε-NFAへの変換

113ページ

正規表現 ε-NFA NFA DFA

P.114 P.108P.110

重要!

正規表現から直接DFAへの変換は難しい→ まずε-NFAに変換する.

Page 26: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

26

例題4.45 c :0*1正規表現 → ε-NFAの状態遷移図

0

0*1

Page 27: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

27

例題4.45 h :0*+1*正規表現 → ε-NFAの状態遷移図

0

εε

0*+1*

Page 28: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

28

練習問題4 例題4.47 a

1*(0*1)* 正規表現 → ε-NFAの状態遷移図

Page 29: オートマトンと言語 12回目 - 山梨大学ysuzuki/public/automaton/20080625.pdf · 3 授業の予定 01回目 4月09日 数学的準備,帰納的表現 02回目 4月16日

29

練習問題4 例題4.47 a 答え

1

1

ε

0

εε

1*(0*1)* 正規表現 → ε-NFAの状態遷移図