形式言語 と オートマトン

45
形形形形 形形形形形形 形3形 形形形形形形形形形 形形形形形形形形形形形形 形形形形形

Upload: coby-bolton

Post on 01-Jan-2016

32 views

Category:

Documents


3 download

DESCRIPTION

形式言語 と オートマトン. 第 4 回 鳥取大学工学研究科 情報エレクトロニクス 専攻 田中美栄子. 1. 本日の予定. 有限状態オートマトン の復習. 形式言語とオートマトン. 1. 本日の予定. “ 有限状態オートマトン ” は 最終評価の 6 割 を占めます。 もし、今までの授業で分かっていない人がいたら 今日 の 授業 で 追 いつきましょう !. 形式言語とオートマトン. 2. 小テスト解説. 問1. 下図のように状態遷移する偶奇判定機がある、このオートマトンを 5 字組み M= で定義せよ. - PowerPoint PPT Presentation

TRANSCRIPT

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

形式言語 と オートマトン

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

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

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

形式言語とオートマトン

本日の予定

• 有限状態オートマトンの復習• 空動作を許すオートマトン• DFAと NFAの同等性 (前篇 )

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

形式言語とオートマトン

有限状態オートマトンの復習

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

形式言語とオートマトン

“ 有限状態オートマトン”は

最終評価の6割を占めます。

もし、今までの授業で分かっていない人がいたら

今日の授業で追いつきましょう!

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

M= < Q, Σ , δ , q0 ,F >

形式言語とオートマトン

5 字組み表現

有限オートマトンの5字組み表現

 Q⇒状態の有限集合   Σ ⇒ 入力記号の有限集合  δ ⇒ 動作関数 (δ: Q ×Σ→ Q ) q0⇒ 初期状態 (q0)  F ⇒ 受理状態の集合

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

形式言語とオートマトン

すべての状態ですべての入力に対して、遷移先が唯一

a

決定性有限オートマトン

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

M= < Q, Σ , δ , q0 ,F > Q = {q1 , q2}    Σ = {a , b}  δ :Q ×Σ→ Q   δ (q1 , a) = q1

   δ (q1 , b) = q2

   δ (q2 , a) = q1

   δ (q2 , b) = q2

  q0 = q1  F = {q2}

形式言語とオートマトン

q1

q2bba

状態遷移図と5字組みが等価

5 字組み表現

有限オートマトンの5字組み表現

a

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

形式言語とオートマトン

abba を与えたときの一連の動作を下記のように簡潔に表す

(s,ε)(r,abba) (s,bba) (r,ba) (r,a)M M M M

様相

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

形式言語とオートマトン

一つの入力に対し、遷移先が唯一でない

a

a

非決定性有限オートマトン

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

形式言語とオートマトン

入力に対して、遷移先が無い

a

非決定性有限オートマトン

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

形式言語とオートマトン

非決定性有限オートマトン

a

aatsr

b}{tF

rq 0

),(,),(

,),(},{),(

},{),(},,{),(

btat

bstas

rbrsrar

QQ 2:

},,{ tsrQ},{ ba 違いは状態遷移だけ

 遷移先がない

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

形式言語とオートマトン

非決定性有限オートマトンbaaを入力すると、三種類の遷移がある。

受理状態である t で遷移が終わっているので、 baa は受理される

aasr t

),(),(),(),(

),(),(),(),(

),(),(),(),(

tasaarbaar

saraarbaar

raraarbaar

MMM

MMM

MMM

𝑎 ,𝑏

××○

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

形式言語とオートマトン

aasr t

𝑎 ,𝑏

baaを入力すると、三種類の遷移がある。

○複数の遷移に対し,一つ

が出れば,受理される

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

形式言語とオートマトン

NEW 非決定性

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

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

形式言語とオートマトン

空動作とは?空動作( ε-move )とは入力記号を読まずに状態遷移できる行き先は状態の集合(空集合 Φ を含む)

ε

ε

S SQ

R

}P{),S( }R,Q{),S(

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

形式言語とオートマトン

空動作を許す、とは?0

p

1

ε

ε

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

q

r

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

形式言語とオートマトン

空動作の五字組み

動作関数 QQ 2}){(:

FqQM ,,,, 0

Q 状態の有限集合

入力記号の有限集合

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

注意

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

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

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

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

rrrr

qqqq

pprqp

QQ 2}){(:

形式言語とオートマトン

FqQM ,,,, 0},,{ rqpQ

}1,0{

pq 0},{ rqF

0

qp

1

r

空動作の五字組み

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

形式言語とオートマトン

空動作の動作例

$0 0 0

r

q

p

1

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

ε

ε

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

形式言語とオートマトン

空動作の動作例

0

r

q

p

1

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

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

2通り存在する

εε

場合1

場合2

$0 0

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

形式言語とオートマトン

空動作の動作例

0

r

q

p

1

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

εε

場合1$0 0

受理できる

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

形式言語とオートマトン

空動作の動作例

0

r

q

p

1

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

εε

$0 0

これ以上遷移できない→受理できない

場合2

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

形式言語とオートマトン

空動作のまとめ

形式言語とオートマトン

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

ε

εS

Q

R

}R,Q{),S(

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

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

形式言語とオートマトン

NEW

DFAと NFAの同等性

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

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

形式言語とオートマトン

これまで

NFA(非決定性 FSA)DFA(決定性 FSA) を学んだ

ε-NFA(空操作のある非決定性 FSA)

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

形式言語とオートマトン

ある言語を受理するNFA( (空操作のある )非決定性

FSA)

DFA(決定性FSA)

が存在するならば

DFA と NFA の同等性とは

同じ言語を受理する

が存在する𝑑𝑓𝑎𝑀𝑑

(𝜀)𝑛𝑓𝑎𝑀𝑛-

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

形式言語とオートマトン

NFA(非決定性 FSA)a

aasr

b

t

DFA(決定性 FSA)

𝑑𝑓𝑎𝑀𝑑から を構成する方法を学ぶ !!

a

{r,s}a ab

b

{r,s,t}{r}

b

(𝜀)𝑛𝑓𝑎𝑀𝑛-

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

形式言語とオートマトン

アルゴリズム  2.1

形式言語とオートマトン

教科書 P.47文字多いけど,簡単よ,諦めないで!!!

NFA(非決定性 FSA)a

aasr

b

t

DFA(決定性 FSA)a

{r,s}a ab

b

{r,s,t}{r}

b

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

形式言語とオートマトン

アルゴリズム  2.1

形式言語とオートマトン

a

aasr

b

t

𝑄𝑛={𝑟 ,𝑠 ,𝑡 }Σ𝑛={𝑎 ,𝑏}𝛿𝑛:𝑄𝑛×Σ𝑛→2

𝑄𝑛

𝛿𝑛 (𝑟 ,𝑎 )={𝑟 ,𝑠 } ,𝛿𝑛 (𝑟 ,𝑏)={𝑟 } ,𝛿𝑛 (𝑠 ,𝑎 )= {𝑡 } ,𝛿𝑛 (𝑡 ,𝑎)=,

𝛿𝑛 (𝑠 ,𝑏 )=,𝛿𝑛 (𝑡 ,𝑏 )=¿

𝑞0𝑛=𝑟𝐹 𝑛={𝑡 }

説明しやすいため,遷移図を 5 字組化

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

形式言語とオートマトン

1. の状態の集合の部分集合に全体で、の状態 () をつくる

の状態の集合

{{𝑟 ,𝑠 ,𝑡 } , {𝑟 ,𝑠 }, {𝑠 , 𝑡 }, {𝑡 ,𝑟 }, {𝑟 } , {𝑠 } , {𝑡 } , }

アルゴリズム  2.1 の  1

𝑄𝑑={{𝑟 ,𝑠 , 𝑡 } , {𝑟 ,𝑠 } , {𝑠 ,𝑡 } , {𝑡 ,𝑟 } , {𝑟 } , {𝑠} , {𝑡 }, }

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

形式言語とオートマトン

アルゴリズム  2.1 の  1𝑄𝑑={{𝑟 ,𝑠 , 𝑡 } , {𝑟 ,𝑠 } , {𝑠 ,𝑡 } , {𝑡 ,𝑟 } , {𝑟 } , {𝑠} , {𝑡 }, }

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}

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

形式言語とオートマトン

𝑞0𝑑={𝑟 }

アルゴリズム  2.1 の  2

2. において入力を読まずに遷移できる状態の集合を  初期状態 () とする𝑞0𝑛=𝑟

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

形式言語とオートマトン

アルゴリズム  2.1 の  2𝑞0𝑑={𝑟 }

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}

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

形式言語とオートマトン

3. の受理状態を 1 つでも含む部分集合に対する状態をの受理状態とする

𝐹 𝑛={𝑡 }

アルゴリズム  2.1 の  3

の受理状態 t を含む状態の部分集合

𝑄𝑑={{𝑟 ,𝑠 , 𝑡 } , {𝑟 ,𝑠 } , {𝑠 ,𝑡 } , {𝑡 ,𝑟 } , {𝑟 } , {𝑠} , {𝑡 }, }

𝐹 𝑑={{𝑟 ,𝑠 , 𝑡 }, {𝑠 , 𝑡 }, {𝑡 ,𝑟 }, {𝑡 }}

既知

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

形式言語とオートマトン

アルゴリズム  2.1 の  3

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}

𝐹 𝑑={{𝑟 ,𝑠 , 𝑡 }, {𝑠 , 𝑡 }, {𝑡 ,𝑟 }, {𝑡 }}

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

形式言語とオートマトン

アルゴリズム  2.1 の 44. の動作関数 () を決める

Σ𝑛={𝑎 ,𝑏} まず,入力記号をΣ𝑑=Σ𝑛={𝑎 ,𝑏}

𝛿𝑑 :𝑄𝑑× Σ𝑑→2𝑄𝑑から

𝑄𝑑={{𝑟 ,𝑠 , 𝑡 } , {𝑟 ,𝑠 } , {𝑠 ,𝑡 } , {𝑡 ,𝑟 } , {𝑟 } , {𝑠} , {𝑡 }, }

𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑎)=¿ 𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑏)=¿𝛿𝑑 ({𝑟 ,𝑠},𝑎)=¿ 𝛿𝑑 ({𝑟 ,𝑠},𝑏)=¿𝛿𝑑 ({𝑠 ,𝑡 },𝑎 )=¿ 𝛿𝑑 ({𝑠 ,𝑡 },𝑏)=¿⋮ ⋮

𝛿𝑑 (𝜑 ,𝑎)=¿ 𝛿𝑑 (𝜑 ,𝑏)=¿

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

アルゴリズム  2.1 の  44. の動作関数 () を決める

𝛿𝑛:𝑄𝑛×Σ𝑛→2𝑄𝑛

𝛿𝑛 (𝑟 ,𝑎 )={𝑟 ,𝑠 } ,𝛿𝑛 (𝑟 ,𝑏)={𝑟 } ,𝛿𝑛 (𝑠 ,𝑎 )= {𝑡 } ,𝛿𝑛 (𝑡 ,𝑎)=,

𝛿𝑛 (𝑠 ,𝑏 )=,𝛿𝑛 (𝑡 ,𝑏 )=¿

𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑎)=¿ 𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑏)=¿{𝑟 ,𝑠 , 𝑡 } {𝑟 }

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

形式言語とオートマトン

アルゴリズム  2.1 の  4

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}a

b

𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑎)=¿ 𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑏)=¿{𝑟 ,𝑠 , 𝑡 } {𝑟 }

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

形式言語とオートマトン

アルゴリズム  2.1 の  4全ての動作関数を求める

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

形式言語とオートマトン

アルゴリズム  2.1 の 4

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}a

b

a

ba

ba,b

b

a

a,baba

b

下図になる

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

形式言語とオートマトン

アルゴリズム  2.1 の  55. の初期状態から到達できない状態 ( 遷移 ) をすべて削除

{r,s,t}

{r,s} {r}

a

b

a

ba

b

a

{s,t}

{t,r}

{s}

{t}

a a

𝑏𝑏

𝑏

𝑎 ,𝑏

𝑎 ,𝑏

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

形式言語とオートマトン

アルゴリズム  2.1 の  5

{r,s,t}

{r,s} {r}

a

b

a

ba

b

a

{r,s}a ab

b

{r,s,t}{r}

b

整理

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

形式言語とオートマトン

形式言語とオートマトン

NFA(非決定性 FSA)a

aasr

b

t

DFA(決定性 FSA)

する理由は?

a

{r,s}a ab

b

{r,s,t}{r}

b

NFA DFA

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

形式言語とオートマトン

NFA DFA遷移先がなかったり複数あったり 遷移先が唯一

a b

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

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

a br r, s rs t --t -- --

a

aasr

b

t

a

{r,s}a ab

b

{r,s,t}{r}

b

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

形式言語とオートマトン

小テスト

以上ですお疲れ様でした