計算の理論 i 決定性有限オートマトン( dfa) と 非決定性有限オートマトン(...

34
計計計計計 計計計計計 I I 計計計計計計計計計計計 計計計計計計計計計計計 ( ( DFA) DFA) 計計計計計計計計計計計計 計計計計計計計計計計計計 ( ( NFA) NFA) 計計 計計 計計 計計

Upload: mea

Post on 06-Feb-2016

136 views

Category:

Documents


0 download

DESCRIPTION

計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA). 月曜3校時 大月 美佳. 今日の講義内容. 前回のおさらい 記号列、遷移関数、 FA 今日の新しいこと DFA と NFA DFA と NFA の等価性 時間があれば ミニテストとレポート提出. 記号列の復習. 以下の定義を思い出せ 記号列、記号列 w の長さ| w|、 空列 ε 連接、連接の単位元 定義から、 空列 ε の長さ| ε |=0 w ε = w 長さ0の文字列(= ε ) を 0 とように. DFA の遷移関数の復習. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

計算の理論 計算の理論 II決定性有限オートマトン決定性有限オートマトン ((DFA)DFA)

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

月曜3校時大月 美佳

Page 2: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

今日の講義内容

1. 前回のおさらい記号列、遷移関数、 FA

2. 今日の新しいこと1. DFA と NFA

2. DFA と NFA の等価性時間があれば

3. ミニテストとレポート提出

Page 3: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

記号列の復習

以下の定義を思い出せ– 記号列、記号列 w の長さ |w| 、空列 ε– 連接、連接の単位元

定義から、– 空列 ε の長さ |ε|=0– wε= w

長さ 0 の文字列 (=ε) を 0 とように

Page 4: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

DFA の遷移関数の復習

P. 23 の δ の拡張定義に注意1.

2. 任意の列 w と記号 a に対してqq ),(ˆ

)),,(ˆ(),(ˆ awqwaq

のことはこのの演習問題 ˆ4.2

qi+1qi

a1

11),( ii qaq

a2 ak-1

qi+kqi+k-1

ak

11),( ii qaq)),...,(ˆ()...,(ˆ 111 kkiki aaaqaaq

Page 5: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

遷移関数と帰納法

この定義での w– 長さ 0(ε) から– 右向きに任意の記号 a を1つずつ増加さ

せて– 無限の長さまで

⇒w の長さ |w| に関しての段階的な定義⇒ 帰納法と親和性が高い

Page 6: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

FA の復習

有限状態系のモデル⇒ 有限オートマトン (FA)

例:自動販売機、エレベータ、渡船 FA の定義

M = (Q, Σ, δ, q0, F)

Page 7: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

FA の定義式

M = (Q, Σ, δ, q0, F)– 有限個の状態の集合 Q– (有限の)入力アルファベット Σ– 入力記号によって引き起こされる状態遷

移• 遷移関数 δ : Q×Σ から Q への写像

– 初期状態 q0 Q∈– 最終状態の集合 F Q⊆

Page 8: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

有限状態系

qx

q0

qz

qy

qf

FA の模式図

0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0

有限制御部

テープ⇒ 記号列 Σ*(Σ 上のすべての記号列の集合 )

0, 1Σ

アルファベット

遷移関数 δ

q0, qx, qy, qz, qf

Q

F

状態の集合初期状態

最終状態の集合

Page 9: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

q1

q3q2

q0 1

1 0

01

1

0

0

even-even even-odd

odd-even odd-odd

FA の例 (p.21 図 2.2 の定義式 )

M=(Q, Σ, δ, q0, F)– Q = { q0, q1, q2, q3 }– Σ= { 0, 1 }– F = { q0 }– δ(q, a)→ 0 1

q0 q2 q1

q1 q3 q0

q2 q0 q3

q3 q1 q2

入力: a

状態: q

Page 10: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

受理について

入力列 x を有限オートマトン M で受理する→ M = (Q, Σ, δ, q0, F) のとき δ(q0, x) F∈⇒ 要するに、 x のとおり遷移すると最終状

態になるということ 受理言語=正則集合(正則)

受理される入力記号列の集合正則=正規

Page 11: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

今日の新しいこと

非決定性有限オートマトン (nondeterministic finite automaton, NFA)1 つの入力記号について状態遷移が 0 個以上

⇔ 決定性有限オートマトン (deterministic finite automaton, DFA)

1 つの入力記号について状態遷移が 1 つずつ前回上げた例は DFA

Page 12: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

決定性と非決定性

q 次の状態へ

入力a

1 対 1⇒ ある記号列に対して 道がひとつ決まる=決定性 (deterministic)

q 次の状態へ

入力 a1 対 n

⇒ ある記号列に対して 道が複数あって 決まらない=非決定性 (nondeterministic)

Page 13: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

NFA の例 (p.26 図 2.5)

q0

01

q1 q2

q3

0

1

q4

0 1

1

0 0

1

このへん

Page 14: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

NFA での受理

入力列に対して状態遷移がひとつでもあれば受理– 図 2.5 での受理される入力列の例: 01001

q0

0

1

q1 q2

q3

0

1

q4

0 1

1

0 0

1

q0, q0, q0, q3, q4, q4

注意:最終状態でとまらなければならないということはない

Page 15: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

NFA の取りうる状態

NFA は同時刻に複数の状態を取りうる

0 1 2 3 4 5

0 1 0 0 1

q0 q0 q0 q0 q0 q0

q3 q1 q3 q3 q1

q4 q4

Page 16: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

有限制御機としての NFA

qx

0 1 1 0 0 1

有限制御部

とりうる状態が複数に

qx

0 1 1 0 0 1

有限制御部

q y

q z

DFA NFA

Page 17: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

NFA の定義式

M = (Q, Σ, δ, q0, F)– DFA と同じ?→遷移関数 δ が違う– δ : Q×Σ から Q のベキ集合( )への

関数

– Q :状態の集合– Σ :入力アルファベット– q0 :初期状態– F : 最終状態の集合

Q2= Q の部分集合の集合

Page 18: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

NFA の遷移関数の例( p.27 図 2.7 )

図 2.5 の遷移関数 δ

0 1

q0 {q0, q3} {q0, q1}

q1 {q2}

q2 {q2} {q2}

q3 {q4}

q4 {q4} {q4}

入力

状態

Page 19: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

δ の拡張

DFA の時と同様に δ を拡張δ : Q×Σ から Q のベキ集合への関数→δ : Q×Σ* から Q のベキ集合への関数要するに、入力記号だったのを入力列に拡張

最終的な δ : Q のベキ集合 ×Σ* から Q のベキ集合への関数

ここで、 P は Q の任意の部分集合

Pq

wqwP

),(),( δδ

Page 20: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

受理集合

受理集合 L(M) を以下のように定義L(M)={w|δ(q0, w) が F の状態を少なくとも

一つ含む }

ここで、 M=NFA(Q, Σ, δ, q0, F) とする

Page 21: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

等価性

等価 (equivalent) である= 受理集合が同じ受理集合=受理言語=正則集合

DFA と NFA は実は等価ホント?

NFA

正則表現

ε- 動作を含むNFA

DFA

Page 22: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

DFA と NFA の等価性

DFA と NFA が等価1. DFA で受理できる集合はすべて何らか

の NFA で受理できる ⇒ DFA は特殊な NFA ( 簡単 )

2. NFA で受理できる集合はすべて何らかの DFA で受理できる

⇒ NFA が DFA で模倣できることを示さなくてはいけない ( 難しい !)

Page 23: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

DFA と NFA の等価性 1

DFA は NFA として書くことができる( 遷移関数だけの違い )

a0 … an

q0 qx … qz

: : :

qk q y … qw

a0 … an

q0 {qx } … {qz }

: : :

qk {qy }

… {qw }

DFA NFA

要素数 1 の集合

Page 24: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

DFA と NFA の等価性 2

NFA を DFA で模倣する⇒ 定理 2.1 (p.29)

L を非決定性有限オートマトンで受理される集合とする。そのとき、 L を受理する決定性の有限オートマトンが存在する。

Page 25: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

定理 2.1 の証明 前準備 1

M(Q, Σ, δ, q0, F)=言語 L を受理する NFA

M´(Q´, Σ, δ´, q´0, F´)M´ での一つの状態= M の状態の部分集合

an

{ qk , …,qn}

{q x , …, qy}

)(2 のベキ集合QQ Q一つの入力に対してM が取り得る状態の集合

q´ = M´ での一つの状態[qx, …, qy] と表記⇒ q´0 = [q0]

Page 26: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

定理 2.1 の証明前準備 2

M´(Q´, Σ, δ´, q´0, F´) の F´Q´ のうち M の最終状態を 1 個以上含むも

のa0 an

{q0 } {qk , qf1} … {qx}

: : :

{qk } {qy} … {q0 , qf1, qf2}

: : :

{q0, qk } {qv , qw, qx} … {qk , qf2}

例: F={qf1, qf2}

Page 27: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

定理 2.1 の証明前準備 3

M´(Q´, Σ, δ´, q´0, F´) の δ´

の和集合。を適用した結果にそれぞれの元

は、を適用した結果にの元とおく。すなわち、

に限り、のとき、かつそのとき

),(),...,,(),,(

,...,,

)],,...,,([],...,,[

],...,,[)],,...,,([

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

21

21

2121

2121

2121

aqaqaq

qqqQ

aqqqqqqQ

pppaqqq

pppaqqq

i

i

ii

ji

ji

Page 28: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

定理 2.1 の証明 帰納法 1

}{),(][),(

0||)1

},...,,{),(],...,,[),(

00000

210210

qqqqq

xx

x

qqqxqqqqxq

x

jj

であるとき、つまり

で示す。の長さに関する帰納法であることを

に対して、入力列

Page 29: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

定理 2.1 の証明 帰納法 2

。より、与式は成り立つ

、また帰納法の仮定から

の定義より、ここで

=とする。の長さの記号列をここで

立っているとする。であるとき与式は成り

)2)1

},...,,{),(],...,,[),(

},...,,{),(],...,,[),(

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

],...,,[)],,...,,([

)],,...,,([)),,((),(

)(1

||)2

210210

210210

2121

2121

2100

kk

jj

kj

kj

j

rrrxaqrrrxaq

pppxqpppxq

rrrappp

rrrappp

apppaxqxaq

axam

mx

Page 30: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

定理 2.1 の証明 受理

)()(

),(},...,,{

],...,,[),(

},...,,{),(],...,,[),(

),(:

021

210

210210

0

MLML

FxqFppp

FpppFxq

F

pppxqpppxq

Fxq

j

j

jj

を含むがを含む=が

に含まれるがに含まれる=がの定義より、ここで

先ほどの証明から、に含まれるが=受理

Page 31: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

NFA と等価な DFA の例(p. 31 例 2.5)

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

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

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

1011

10100

1010

qqqq

qqqqq

qqqqMNFA

は、とする。なお遷移関数

q1q0

0,10

1

1

Page 32: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

L(M) を受理する DFA

]},[],{[

)0,( )0,(

],[)1,()1,()1],,([

],[)0,()0,()0],,([

],[)1],([, )0],([

][)1],([],,[)0],([

2} ],,[],[],{[

)],[,},1,0{,(:

101

101010

101010

1011

10100

},{1010

0

10

qqqF

qqqqqq

qqqqqq

qqqq

qqqqq

qqqqQ

FqQMDFAqq

○○○

Page 33: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

M´ の遷移図

[q0]

0,1

0 1

[q1]

[q0, q1] ○

1

0

0,1

M で受理する記号列を M´ で受理できるか?(試してみよう)

○ 0, 1, 01, 010× 10, 100, 101

Page 34: 計算の理論  I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)

ミニテストとレポート

ミニテスト– 演習問題 2.4– 教科書・資料を見ても良い– 15 分後採点

ミニテストとレポートを提出すること

出したら帰って良し