計算の理論 i 決定性有限オートマトン( dfa) と 非決定性有限オートマトン(...
DESCRIPTION
計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA). 月曜3校時 大月 美佳. 今日の講義内容. 前回のおさらい 記号列、遷移関数、 FA 今日の新しいこと DFA と NFA DFA と NFA の等価性 時間があれば ミニテストとレポート提出. 記号列の復習. 以下の定義を思い出せ 記号列、記号列 w の長さ| w|、 空列 ε 連接、連接の単位元 定義から、 空列 ε の長さ| ε |=0 w ε = w 長さ0の文字列(= ε ) を 0 とように. DFA の遷移関数の復習. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/1.jpg)
計算の理論 計算の理論 II決定性有限オートマトン決定性有限オートマトン ((DFA)DFA)
とと非決定性有限オートマトン非決定性有限オートマトン ((NFA) NFA)
月曜3校時大月 美佳
![Page 2: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/2.jpg)
今日の講義内容
1. 前回のおさらい記号列、遷移関数、 FA
2. 今日の新しいこと1. DFA と NFA
2. DFA と NFA の等価性時間があれば
3. ミニテストとレポート提出
![Page 3: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/3.jpg)
記号列の復習
以下の定義を思い出せ– 記号列、記号列 w の長さ |w| 、空列 ε– 連接、連接の単位元
定義から、– 空列 ε の長さ |ε|=0– wε= w
長さ 0 の文字列 (=ε) を 0 とように
![Page 4: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/4.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/5.jpg)
遷移関数と帰納法
この定義での w– 長さ 0(ε) から– 右向きに任意の記号 a を1つずつ増加さ
せて– 無限の長さまで
⇒w の長さ |w| に関しての段階的な定義⇒ 帰納法と親和性が高い
![Page 6: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/6.jpg)
FA の復習
有限状態系のモデル⇒ 有限オートマトン (FA)
例:自動販売機、エレベータ、渡船 FA の定義
M = (Q, Σ, δ, q0, F)
![Page 7: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/7.jpg)
FA の定義式
M = (Q, Σ, δ, q0, F)– 有限個の状態の集合 Q– (有限の)入力アルファベット Σ– 入力記号によって引き起こされる状態遷
移• 遷移関数 δ : Q×Σ から Q への写像
– 初期状態 q0 Q∈– 最終状態の集合 F Q⊆
![Page 8: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/8.jpg)
有限状態系
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/9.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/10.jpg)
受理について
入力列 x を有限オートマトン M で受理する→ M = (Q, Σ, δ, q0, F) のとき δ(q0, x) F∈⇒ 要するに、 x のとおり遷移すると最終状
態になるということ 受理言語=正則集合(正則)
受理される入力記号列の集合正則=正規
![Page 11: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/11.jpg)
今日の新しいこと
非決定性有限オートマトン (nondeterministic finite automaton, NFA)1 つの入力記号について状態遷移が 0 個以上
⇔ 決定性有限オートマトン (deterministic finite automaton, DFA)
1 つの入力記号について状態遷移が 1 つずつ前回上げた例は DFA
![Page 12: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/12.jpg)
決定性と非決定性
q 次の状態へ
入力a
1 対 1⇒ ある記号列に対して 道がひとつ決まる=決定性 (deterministic)
q 次の状態へ
入力 a1 対 n
⇒ ある記号列に対して 道が複数あって 決まらない=非決定性 (nondeterministic)
![Page 13: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/13.jpg)
NFA の例 (p.26 図 2.5)
q0
01
q1 q2
q3
0
1
q4
0 1
1
0 0
1
このへん
![Page 14: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/14.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/15.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/16.jpg)
有限制御機としての 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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/17.jpg)
NFA の定義式
M = (Q, Σ, δ, q0, F)– DFA と同じ?→遷移関数 δ が違う– δ : Q×Σ から Q のベキ集合( )への
関数
– Q :状態の集合– Σ :入力アルファベット– q0 :初期状態– F : 最終状態の集合
Q2= Q の部分集合の集合
![Page 18: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/18.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/19.jpg)
δ の拡張
DFA の時と同様に δ を拡張δ : Q×Σ から Q のベキ集合への関数→δ : Q×Σ* から Q のベキ集合への関数要するに、入力記号だったのを入力列に拡張
最終的な δ : Q のベキ集合 ×Σ* から Q のベキ集合への関数
ここで、 P は Q の任意の部分集合
Pq
wqwP
),(),( δδ
![Page 20: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/20.jpg)
受理集合
受理集合 L(M) を以下のように定義L(M)={w|δ(q0, w) が F の状態を少なくとも
一つ含む }
ここで、 M=NFA(Q, Σ, δ, q0, F) とする
![Page 21: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/21.jpg)
等価性
等価 (equivalent) である= 受理集合が同じ受理集合=受理言語=正則集合
DFA と NFA は実は等価ホント?
NFA
正則表現
ε- 動作を含むNFA
DFA
![Page 22: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/22.jpg)
DFA と NFA の等価性
DFA と NFA が等価1. DFA で受理できる集合はすべて何らか
の NFA で受理できる ⇒ DFA は特殊な NFA ( 簡単 )
2. NFA で受理できる集合はすべて何らかの DFA で受理できる
⇒ NFA が DFA で模倣できることを示さなくてはいけない ( 難しい !)
![Page 23: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/23.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/24.jpg)
DFA と NFA の等価性 2
NFA を DFA で模倣する⇒ 定理 2.1 (p.29)
L を非決定性有限オートマトンで受理される集合とする。そのとき、 L を受理する決定性の有限オートマトンが存在する。
![Page 25: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/25.jpg)
定理 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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/26.jpg)
定理 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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/27.jpg)
定理 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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/28.jpg)
定理 2.1 の証明 帰納法 1
}{),(][),(
0||)1
},...,,{),(],...,,[),(
00000
210210
qqqqq
xx
x
qqqxqqqqxq
x
jj
であるとき、つまり
で示す。の長さに関する帰納法であることを
に対して、入力列
![Page 29: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/29.jpg)
定理 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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/30.jpg)
定理 2.1 の証明 受理
)()(
),(},...,,{
],...,,[),(
},...,,{),(],...,,[),(
),(:
021
210
210210
0
MLML
FxqFppp
FpppFxq
F
pppxqpppxq
Fxq
j
j
jj
を含むがを含む=が
に含まれるがに含まれる=がの定義より、ここで
先ほどの証明から、に含まれるが=受理
![Page 31: 計算の理論 I 決定性有限オートマトン( DFA) と 非決定性有限オートマトン( NFA)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/31.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/32.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/33.jpg)
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)](https://reader033.vdocuments.mx/reader033/viewer/2022061419/56815a93550346895dc80d07/html5/thumbnails/34.jpg)
ミニテストとレポート
ミニテスト– 演習問題 2.4– 教科書・資料を見ても良い– 15 分後採点
ミニテストとレポートを提出すること
出したら帰って良し