形式言語 と オートマトン

33
形形形形 形形形形形形 形4形 形形形形形形形形形 形形形形形形形形形形形形 形形形形形

description

形式言語 と オートマトン. 第 4 回 鳥取大学工学研究科 情報エレクトロニクス 専攻 田中美栄子. 本日 の予定. DFA と NFA の同等性 ( 後編 ). 最簡形の DFA. 形式言語とオートマトン. を 構成する方法 を学ぶ !!. から. -. DFA (決定性 FSA ). NFA (非決定性 FSA ). 形式言語とオートマトン. アルゴリズム  2.1 の 復習. 形式言語とオートマトン. アルゴリズム  2.1. 説明しやすいため, 遷移図を 5 字組化. 形式言語とオートマトン. - PowerPoint PPT Presentation

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

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

形式言語 と オートマトン

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

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

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

形式言語とオートマトン

本日の予定

• DFA と NFA の同等性 ( 後編 )

• 最簡形の DFA

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

形式言語とオートマトン

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

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

(𝜀)𝑛𝑓𝑎𝑀𝑛-

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

形式言語とオートマトン

アルゴリズム  2.1の

復習

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

形式言語とオートマトン

アルゴリズム  2.1

a

aasr

b

t

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

𝑄𝑛

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

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

𝑞0𝑛=𝑟𝐹 𝑛={𝑡 }

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

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

形式言語とオートマトン

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

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}

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

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

形式言語とオートマトン

𝑞0𝑑={𝑟 }

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}

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

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

形式言語とオートマトン

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}

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

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

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

形式言語とオートマトン

{r,s,t}

{r,s}

{s,t}

{t,r}

{r}

{s}

{t}a

b

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

4. の動作関数 () を決める

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

形式言語とオートマトン

アルゴリズム  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 11: 形式言語  と オートマトン

形式言語とオートマトン

{r,s,t}

{r,s} {r}

a

b

a

ba

b

a

{s,t}

{t,r}

{s}

{t}

a a

𝑏𝑏

𝑏

𝑎 ,𝑏

𝑎 ,𝑏

5. の初期状態から到達できない状態 ( 遷移 ) をすべて削除

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

形式言語とオートマトン

アルゴリズム  2.1

{r,s,t}

{r,s} {r}

a

b

a

ba

b

a

{r,s}a ab

b

{r,s,t}{r}

b

整理

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

形式言語とオートマトン

NFA (非決定性 FSA )a

aasr

b

t

DFA (決定性 FSA )

する理由は?

a

{r,s}a ab

b

{r,s,t}{r}

b

NFA DFA

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

形式言語とオートマトン

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 15: 形式言語  と オートマトン

形式言語とオートマトン

アルゴリズム  2.2  を学ぶ

NEW

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

形式言語とオートマトン

NEW

0

qp

1

r

アルゴリズム  2.2

{p,q,r}

{r}

{q}1

0,1

0

0

1

0

1

空動作がある

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

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

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

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

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

rrrr

qqqq

pprqp

nnn

nnn

nnn

nQnnn Q 2}){(:

形式言語とオートマトン

nnnnnn FqQM ,,,, 0},,{ rqpQn

}1,0{n

pq n 0

},{ rqFn

まず、 NFA を五字組化

0

qp

1

r

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

形式言語とオートマトン

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

1. において初期状態から入力を読まずに遷移できる状態の集合に対応して、  初期状態 () とする

0

p

1

εε

q

r

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

形式言語とオートマトン

{p,q,r}

 

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

形式言語とオートマトン

2. 初期状態 () について、各入力記号における状態遷移を決める

}1,0{

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

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

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

rrrr

qqqq

pprqp

nnn

nnn

nnn

さらに

から入力を読まずに遷移できる状態はない𝛿𝑑 ( {𝑝 ,𝑞 ,𝑟 } ,0 )={𝑞}

さらに

から入力を読まずに遷移できる状態はない𝛿𝑑 ( {𝑝 ,𝑞 ,𝑟 } ,1 )={𝑟 }

新状態

新状態

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

形式言語とオートマトン

{p,q,r}

{r}

{q}0

1

新状態つくり 𝛿𝑑 ( {𝑝 ,𝑞 ,𝑟 } ,0 )={𝑞}𝛿𝑑 ( {𝑝 ,𝑞 ,𝑟 } ,1 )={𝑟 }

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

形式言語とオートマトン

手順 2. をまた実行する、新状態の状態遷移を決める𝛿𝑑 ( {𝑞 } ,0 )=𝛿𝑛(𝑞 ,0)={𝑞}𝛿𝑑 ( {𝑞 } ,1 )=𝛿𝑛 (𝑞 ,1 )=∅

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

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

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

rrrr

qqqq

pprqp

nnn

nnn

nnn

新状態𝛿𝑑 ( {𝑟 } ,0 )=𝛿𝑛 (𝑟 ,0 )=∅𝛿𝑑 ( {𝑟 } ,1 )=𝛿𝑛 (𝑟 ,1 )={𝑟 }

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

形式言語とオートマトン

{p,q,r}

{r}

{q}1

0

0

1

0

1

新状態 つくり 

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

形式言語とオートマトン

手順 2. をまた実行する、新状態の状態遷移を決める𝛿𝑑 (∅ ,0 )=∅𝛿𝑑 (∅ ,1 )=∅

これ以上、新たに状態が作られなかったので、手順2. を終わる

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

形式言語とオートマトン

{p,q,r}

{r}

{q}1

0,1

0

0

1

0

1

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

形式言語とオートマトン

𝐹 𝑑={{𝑝 ,𝑞 ,𝑟 } , {𝑞 }, {𝑟 }}

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

},{ rqFn

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

形式言語とオートマトン

{q}1

0,1

0

0

1

0

1{p,q,r}

{r}

𝐹 𝑑={{𝑝 ,𝑞 ,𝑟 } , {𝑞 }, {𝑟 }}

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

形式言語とオートマトン

5 ステップ 3 ステップ

アルゴリズム 2.1  と アルゴリズム 2.2 の比較

使いやすい

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

DFA と NFA の同等性まとめ

形式言語とオートマトン

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

         同等(同じ仕事をする)

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

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

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

形式言語とオートマトン

• 最簡形の DFA

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

形式言語とオートマトン

定義

同じ言語を受理する DFAの中でも状態数の一番少ない DFA を最簡形の DFAという

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

形式言語とオートマトン

から最簡形の を構成する

アルゴリズム  2.3 を学ぶ

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

形式言語とオートマトン

お疲れ様

     小テストです