形式言語 と オートマトン

35
形形形形 形形形形形形 形4形 形形形形形形形形形 形形形形形形形形形形形形 形形形形形

description

形式言語 と オートマトン. 第 4 回 鳥取大学工学研究科 情報エレクトロニクス 専攻 田中美栄子. 1. 本日 の予定. ・空動作を許すオートマトン ・ DFA と NFA の同等性 の2点について学ぶ. 形式言語とオートマトン. 1. 本日 の予定1. 空動作を許す オートマトン. 形式言語とオートマトン. 1. 空動作 とは ?. 空動作( ε-move )とは. 入力記号を 読まずに 状態遷移できる ( つまりいつでも遷移してよい). Q. ε. S. S. P. ε. ε. R. 形式言語とオートマトン. 1. - PowerPoint PPT Presentation

Transcript of 形式言語 と オートマトン

Page 1: 形式言語  と オートマトン

形式言語 と オートマトン

第 4 回鳥取大学工学研究科

情報エレクトロニクス専攻田中美栄子

Page 2: 形式言語  と オートマトン

1

形式言語とオートマトン

本日の予定

・空動作を許すオートマトン

・ DFA と NFA の同等性

の2点について学ぶ

Page 3: 形式言語  と オートマトン

形式言語とオートマトン

本日の予定1

空動作を許すオートマトン

Page 4: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作とは?

空動作( ε-move )とは入力記号を読まずに状態遷移できる( つまりいつでも遷移してよい)

Pε ε

ε

S SQ

R

P=)ε,S(δ Q=)ε,S(δ R=)ε,S(δ

Page 5: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作を許す、とは?0

p

1

ε

ε

入力無しでも二つの状態 q,r のどちらかに行ける

q

r

Page 6: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作を許す場合も動作関数を拡張して五字組で表す

動作関数 QQ 2}){(:

FqQM ,,,, 0

Q 状態の有限集合

入力記号の有限集合

0q 初期状態 Qq 0F 受理状態の有限集合 QF

注意

Page 7: 形式言語  と オートマトン

),()0,(},{)1,(

,),()1,(},{)0,(

,)1,()0,(},,{),(

rrrr

qqqq

pprqp

QQ 2}){(:

1

形式言語とオートマトン

FqQM ,,,, 0},,{ rqpQ

}1,0{

pq 0},{ rqF

0

qp

1

r

空動作を許す場合の五字組

Page 8: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作を許す場合の動作例

$0 0 0

r

q

p

1

・入力 00 に対するMの動作

ε

ε

Page 9: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作の動作例

0

r

q

p

1

・入力 00 に対するMの動作

入力記号を読まずに状態遷移

2通り存在する

εε

場合1

場合2

$0 0

Page 10: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作の動作例

0

r

q

p

1

・入力 00 に対するMの動作

εε

場合1$0 0

受理できる

Page 11: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作の動作例

0

r

q

p

1

・入力 00 に対するMの動作

εε

$0 0

これ以上遷移できない

→受理できない

場合2

Page 12: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作の動作例

0

r

q

p

1

・入力 00 に対するMの動作

ε

ε

$0 0

入力語を読み終えたとき受理状態に到達する遷移が可能なので

入力語 00 は受理される。

Page 13: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作の動作例

0

r

q

p

1

・入力 110 に対するMの動作

ε

ε$1 1 0

入力語を読み終えたとき受理状態に到達する遷移が不可能なので

入力語 110 は拒否される。

Page 14: 形式言語  と オートマトン

1

形式言語とオートマトン

空動作のまとめ

形式言語とオートマトン

空動作とは,入力記号を読まなくてもできる状態遷移

ε

εS

Q

R

}R,Q{),S(

状態遷移は様々な場合が存在する

Page 15: 形式言語  と オートマトン

形式言語とオートマトン

本日の予定2

DFA と NFA の同等性

Page 16: 形式言語  と オートマトン

2

形式言語とオートマトン

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

(DFA)NFA (非決定性 FSA )

a

aasr

b

t

DFA (決定性 FSA )

b

b

b

a a{r,s}{r} {p,q,r}

a

a b

{r} {r,s} {r}

{r,s} {r,s,t} {r}

{r,s,t} {r,s,t} {r}

a b

r r, s r

s t --

t -- --

Page 17: 形式言語  と オートマトン

2

形式言語とオートマトン

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

(DFA)NFA (非決定性 FSA )DFA (決定性 FSA )

0

qp

1

r{∅}

0

1

1

0

0

1

0,1

{q}

{r}

{p,q,r}

Page 18: 形式言語  と オートマトン

2 DFA と NFA の同等性

形式言語とオートマトン

教科書 P.47 【例 2.6 】を読みましょう。実際に図 2.9 を図 2.13 に変換してみよう。

※ アルゴリズム 2.1 をじっくり読めば理解できます。

Page 19: 形式言語  と オートマトン

2 DFA と NFA の同等性

形式言語とオートマトン

1. の状態の集合に応じての状態をつくるa

aasr

b

t 𝑴 𝒅= {{𝒓 , 𝒔 ,𝒕 } , {𝒓 , 𝒔 }, {𝒔 ,𝒕 } , {𝒕 ,𝒓 } , {𝒓 } , {𝒔 }, {𝒕 } ,∅ }

2. において入力を読まずに遷移できる状態を  初期状態とする

3. の受理状態を含む状態をの受理状態とする

4. 教科書を読んでもわかりにくい・・・

Page 20: 形式言語  と オートマトン

2 DFA と NFA の同等性

形式言語とオートマトン

1. の状態の集合に応じての状態をつくるa

aasr

b

t 𝑴 𝒅= {{𝒓 , 𝒔 ,𝒕 } , {𝒓 , 𝒔 }, {𝒔 ,𝒕 } , {𝒕 ,𝒓 } , {𝒓 } , {𝒔 }, {𝒕 } ,∅ }

2. において入力を読まずに遷移できる状態を  初期状態とする

3. の受理状態を含む状態をの受理状態とする

4. 教科書を読んでもわかりにくい・・・

Page 21: 形式言語  と オートマトン

a b

{r} {r,s} {r}

{r,s} {r,s,t} {r}

{r,s,t} {r,s,t} {r}

2 DFA と NFA の同等性

形式言語とオートマトン

t

a

aasr

b

t

要は入力によって何処に遷移するかを見るだけ !!r に a が入力された場合 r 又は s に遷移する

⇒ {r,s} という名前を持つ状態に遷移

すると考える

Page 22: 形式言語  と オートマトン

a b

{r} {r,s} {r}

{r,s} {r,s,t} {r}

{r,s,t} {r,s,t} {r}

t

a

aasr

b

2 DFA と NFA の同等性

形式言語とオートマトン

要は入力によって何処に遷移するかを見るだけ !!r に a が入力された場合 r 又は s に遷移する

t

t

a

aasr

b

t

⇒ {r,s} という名前を持つ状態に遷移

すると考える

Page 23: 形式言語  と オートマトン

2 DFA と NFA の同等性

形式言語とオートマトン

a b

{r} {r,s} {r}

{r,s} {r,s,t} {r}

{r,s,t} {r,s,t} {r}

要は入力によって何処に遷移するかを見るだけ !!{r,s} に a が入力された場合 r 又は s 又は t に

遷移する

t

a

aasr

b

t

⇒ {r,s,t} という名前の状態に遷移すると考える

t

a

aasr

b

t

初期状態から到達できる状態だけで良い

Page 24: 形式言語  と オートマトン

2

形式言語とオートマトン

NFA→DFA遷移先がない場合も複数ある場合もあるa

aasr

b

t

遷移先が一意に決定

b

b

b

a a{r,s}{r} {p,q,r}

a

a b

{r} {r,s} {r}

{r,s} {r,s,t} {r}

{r,s,t} {r,s,t} {r}

a b

r r, s r

s t --

t -- --

Page 25: 形式言語  と オートマトン

2 NFA を同等な DFA に書き換えるアルゴリズム

形式言語とオートマトン

教科書 P.50 【例 2.7 】を読みましょう。実際に図 2.11 を図 2.14 に変換してみよう。

※ アルゴリズム 2.2 をじっくり読めば理解できます。

Page 26: 形式言語  と オートマトン

0

qp

1

r

2 空動作のある場合

形式言語とオートマトン

1. 初期状態の構成

{p,q,r}

入力を読まなくても q, r に遷移可能    初期状態  

Page 27: 形式言語  と オートマトン

0

qp

1

r

2 空動作のある場合

形式言語とオートマトン

1. 初期状態の構成

{p,q,r}

DFA の初期状態は{p.q.r}  となる

NFA の初期状態 p から入力なしで  q  または  r  に遷移できる

Page 28: 形式言語  と オートマトン

0

qp

1

r

2 空動作のある場合

形式言語とオートマトン

1. 初期状態の構成NFA の初期状態 p から入力なしで  q  または  r  に遷移できる

DFA の初期状態は{p.q.r}  となる

{p,q,r}

Page 29: 形式言語  と オートマトン

0

qp

1

r

形式言語とオートマトン

2. アルゴリズム 2.1 と同様に状態遷移をつくる

空動作のある場合

{p,q,r}

Page 30: 形式言語  と オートマトン

0

qp

1

r

形式言語とオートマトン

2. アルゴリズム 2.1 と同様に状態遷移をつくる

0

1

1

0

0

1

0,1

{q}

{r}

{p,q,r}

空動作のある場合

Page 31: 形式言語  と オートマトン

0

qp

1

r

形式言語とオートマトン

3. 受理状態を含む部分集合に対応する状態を    受理状態とする

0

1

1

0

0

1

0,1

{q}

{r}

{p,q,r}

空動作のある場合

Page 32: 形式言語  と オートマトン

0

qp

1

r

形式言語とオートマトン

3. 受理状態を含む部分集合に対応する状態を    受理状態とする

0

1

1

0

0

1

0,1

{q}

{r}

{p,q,r}

空動作のある場合

Page 33: 形式言語  と オートマトン

0 1

{p,q,r} {q} {r}

{q} {q} Φ

{r} Φ [r]

Φ Φ Φ

ε 0 1

p q,r

q r

p -- q --

r -- -- r

2

形式言語とオートマトン

NFA→DFA遷移先が不確定 遷移先が一意に決

0

qp

1

r∅

0

1

1

0

0

1

0,1

{q}

{r}

{p,q,r}

Page 34: 形式言語  と オートマトン

2 DFA と NFA の同等性まとめ

形式言語とオートマトン

 ・決定性有限オートマトン (DFA)

         同等(同じ仕事をする)

 ・非決定性有限オートマトン (NFA) ・空動作を許す非決定性有限オートマトン( NFA)

 アルゴリズム 2.1 や 2.2 を使って書き換えられる

Page 35: 形式言語  と オートマトン

3

形式言語とオートマトン

頭の整理のために

小テストを行いましょう。