形式言語 と オートマトン
DESCRIPTION
形式言語 と オートマトン. 第 4 回 鳥取大学工学研究科 情報エレクトロニクス 専攻 田中美栄子. 1. 本日の予定. 有限状態オートマトン の復習. 形式言語とオートマトン. 1. 本日の予定. “ 有限状態オートマトン ” は 最終評価の 6 割 を占めます。 もし、今までの授業で分かっていない人がいたら 今日 の 授業 で 追 いつきましょう !. 形式言語とオートマトン. 2. 小テスト解説. 問1. 下図のように状態遷移する偶奇判定機がある、このオートマトンを 5 字組み M= で定義せよ. - PowerPoint PPT PresentationTRANSCRIPT
形式言語 と オートマトン
第 3 回鳥取大学工学研究科
情報エレクトロニクス専攻田中美栄子
形式言語とオートマトン
本日の予定
• 有限状態オートマトンの復習• 空動作を許すオートマトン• DFAと NFAの同等性 (前篇 )
形式言語とオートマトン
有限状態オートマトンの復習
形式言語とオートマトン
“ 有限状態オートマトン”は
最終評価の6割を占めます。
もし、今までの授業で分かっていない人がいたら
今日の授業で追いつきましょう!
M= < Q, Σ , δ , q0 ,F >
形式言語とオートマトン
5 字組み表現
有限オートマトンの5字組み表現
Q⇒状態の有限集合 Σ ⇒ 入力記号の有限集合 δ ⇒ 動作関数 (δ: Q ×Σ→ Q ) q0⇒ 初期状態 (q0) F ⇒ 受理状態の集合
形式言語とオートマトン
すべての状態ですべての入力に対して、遷移先が唯一
a
決定性有限オートマトン
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
形式言語とオートマトン
abba を与えたときの一連の動作を下記のように簡潔に表す
(s,ε)(r,abba) (s,bba) (r,ba) (r,a)M M M M
様相
形式言語とオートマトン
一つの入力に対し、遷移先が唯一でない
a
a
非決定性有限オートマトン
形式言語とオートマトン
入力に対して、遷移先が無い
a
非決定性有限オートマトン
?
形式言語とオートマトン
非決定性有限オートマトン
a
aatsr
b}{tF
rq 0
),(,),(
,),(},{),(
},{),(},,{),(
btat
bstas
rbrsrar
QQ 2:
},,{ tsrQ},{ ba 違いは状態遷移だけ
遷移先がない
形式言語とオートマトン
非決定性有限オートマトンbaaを入力すると、三種類の遷移がある。
受理状態である t で遷移が終わっているので、 baa は受理される
aasr t
),(),(),(),(
),(),(),(),(
),(),(),(),(
tasaarbaar
saraarbaar
raraarbaar
MMM
MMM
MMM
𝑎 ,𝑏
××○
形式言語とオートマトン
aasr t
𝑎 ,𝑏
baaを入力すると、三種類の遷移がある。
○複数の遷移に対し,一つ
が出れば,受理される
形式言語とオートマトン
NEW 非決定性
空動作を許すオートマトン
形式言語とオートマトン
空動作とは?空動作( ε-move )とは入力記号を読まずに状態遷移できる行き先は状態の集合(空集合 Φ を含む)
Pε
ε
ε
S SQ
R
}P{),S( }R,Q{),S(
形式言語とオートマトン
空動作を許す、とは?0
p
1
ε
ε
入力無しでも二つの状態 q,r のどちらかに行ける
q
r
形式言語とオートマトン
空動作の五字組み
動作関数 QQ 2}){(:
FqQM ,,,, 0
Q 状態の有限集合
入力記号の有限集合
0q 初期状態 Qq 0F 受理状態の有限集合 QF
注意
),()0,(},{)1,(
,),()1,(},{)0,(
,)1,()0,(},,{),(
rrrr
qqqq
pprqp
QQ 2}){(:
形式言語とオートマトン
FqQM ,,,, 0},,{ rqpQ
}1,0{
pq 0},{ rqF
0
qp
1
r
空動作の五字組み
形式言語とオートマトン
空動作の動作例
$0 0 0
r
q
p
1
・入力 00 に対するMの動作
ε
ε
形式言語とオートマトン
空動作の動作例
0
r
q
p
1
・入力 00 に対するMの動作
入力記号を読まずに状態遷移
2通り存在する
εε
場合1
場合2
$0 0
形式言語とオートマトン
空動作の動作例
0
r
q
p
1
・入力 00 に対するMの動作
εε
場合1$0 0
受理できる
形式言語とオートマトン
空動作の動作例
0
r
q
p
1
・入力 00 に対するMの動作
εε
$0 0
これ以上遷移できない→受理できない
場合2
形式言語とオートマトン
空動作のまとめ
形式言語とオートマトン
空動作とは,入力記号を読まなくてもできる状態遷移
ε
εS
Q
R
}R,Q{),S(
状態遷移は様々な場合が存在する
形式言語とオートマトン
NEW
DFAと NFAの同等性
DFA(決定性 FSA) NFA(非決定性 FSA)
形式言語とオートマトン
これまで
NFA(非決定性 FSA)DFA(決定性 FSA) を学んだ
ε-NFA(空操作のある非決定性 FSA)
形式言語とオートマトン
ある言語を受理するNFA( (空操作のある )非決定性
FSA)
DFA(決定性FSA)
が存在するならば
DFA と NFA の同等性とは
同じ言語を受理する
が存在する𝑑𝑓𝑎𝑀𝑑
(𝜀)𝑛𝑓𝑎𝑀𝑛-
形式言語とオートマトン
NFA(非決定性 FSA)a
aasr
b
t
DFA(決定性 FSA)
𝑑𝑓𝑎𝑀𝑑から を構成する方法を学ぶ !!
a
{r,s}a ab
b
{r,s,t}{r}
b
(𝜀)𝑛𝑓𝑎𝑀𝑛-
形式言語とオートマトン
アルゴリズム 2.1
形式言語とオートマトン
教科書 P.47文字多いけど,簡単よ,諦めないで!!!
NFA(非決定性 FSA)a
aasr
b
t
DFA(決定性 FSA)a
{r,s}a ab
b
{r,s,t}{r}
b
形式言語とオートマトン
アルゴリズム 2.1
形式言語とオートマトン
a
aasr
b
t
𝑄𝑛={𝑟 ,𝑠 ,𝑡 }Σ𝑛={𝑎 ,𝑏}𝛿𝑛:𝑄𝑛×Σ𝑛→2
𝑄𝑛
𝛿𝑛 (𝑟 ,𝑎 )={𝑟 ,𝑠 } ,𝛿𝑛 (𝑟 ,𝑏)={𝑟 } ,𝛿𝑛 (𝑠 ,𝑎 )= {𝑡 } ,𝛿𝑛 (𝑡 ,𝑎)=,
𝛿𝑛 (𝑠 ,𝑏 )=,𝛿𝑛 (𝑡 ,𝑏 )=¿
𝑞0𝑛=𝑟𝐹 𝑛={𝑡 }
説明しやすいため,遷移図を 5 字組化
形式言語とオートマトン
1. の状態の集合の部分集合に全体で、の状態 () をつくる
の状態の集合
{{𝑟 ,𝑠 ,𝑡 } , {𝑟 ,𝑠 }, {𝑠 , 𝑡 }, {𝑡 ,𝑟 }, {𝑟 } , {𝑠 } , {𝑡 } , }
アルゴリズム 2.1 の 1
𝑄𝑑={{𝑟 ,𝑠 , 𝑡 } , {𝑟 ,𝑠 } , {𝑠 ,𝑡 } , {𝑡 ,𝑟 } , {𝑟 } , {𝑠} , {𝑡 }, }
形式言語とオートマトン
アルゴリズム 2.1 の 1𝑄𝑑={{𝑟 ,𝑠 , 𝑡 } , {𝑟 ,𝑠 } , {𝑠 ,𝑡 } , {𝑡 ,𝑟 } , {𝑟 } , {𝑠} , {𝑡 }, }
{r,s,t}
{r,s}
{s,t}
{t,r}
{r}
{s}
{t}
形式言語とオートマトン
𝑞0𝑑={𝑟 }
アルゴリズム 2.1 の 2
2. において入力を読まずに遷移できる状態の集合を 初期状態 () とする𝑞0𝑛=𝑟
形式言語とオートマトン
アルゴリズム 2.1 の 2𝑞0𝑑={𝑟 }
{r,s,t}
{r,s}
{s,t}
{t,r}
{r}
{s}
{t}
形式言語とオートマトン
3. の受理状態を 1 つでも含む部分集合に対する状態をの受理状態とする
𝐹 𝑛={𝑡 }
アルゴリズム 2.1 の 3
の受理状態 t を含む状態の部分集合
𝑄𝑑={{𝑟 ,𝑠 , 𝑡 } , {𝑟 ,𝑠 } , {𝑠 ,𝑡 } , {𝑡 ,𝑟 } , {𝑟 } , {𝑠} , {𝑡 }, }
𝐹 𝑑={{𝑟 ,𝑠 , 𝑡 }, {𝑠 , 𝑡 }, {𝑡 ,𝑟 }, {𝑡 }}
既知
形式言語とオートマトン
アルゴリズム 2.1 の 3
{r,s,t}
{r,s}
{s,t}
{t,r}
{r}
{s}
{t}
𝐹 𝑑={{𝑟 ,𝑠 , 𝑡 }, {𝑠 , 𝑡 }, {𝑡 ,𝑟 }, {𝑡 }}
形式言語とオートマトン
アルゴリズム 2.1 の 44. の動作関数 () を決める
Σ𝑛={𝑎 ,𝑏} まず,入力記号をΣ𝑑=Σ𝑛={𝑎 ,𝑏}
𝛿𝑑 :𝑄𝑑× Σ𝑑→2𝑄𝑑から
𝑄𝑑={{𝑟 ,𝑠 , 𝑡 } , {𝑟 ,𝑠 } , {𝑠 ,𝑡 } , {𝑡 ,𝑟 } , {𝑟 } , {𝑠} , {𝑡 }, }
𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑎)=¿ 𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑏)=¿𝛿𝑑 ({𝑟 ,𝑠},𝑎)=¿ 𝛿𝑑 ({𝑟 ,𝑠},𝑏)=¿𝛿𝑑 ({𝑠 ,𝑡 },𝑎 )=¿ 𝛿𝑑 ({𝑠 ,𝑡 },𝑏)=¿⋮ ⋮
𝛿𝑑 (𝜑 ,𝑎)=¿ 𝛿𝑑 (𝜑 ,𝑏)=¿
アルゴリズム 2.1 の 44. の動作関数 () を決める
例
𝛿𝑛:𝑄𝑛×Σ𝑛→2𝑄𝑛
𝛿𝑛 (𝑟 ,𝑎 )={𝑟 ,𝑠 } ,𝛿𝑛 (𝑟 ,𝑏)={𝑟 } ,𝛿𝑛 (𝑠 ,𝑎 )= {𝑡 } ,𝛿𝑛 (𝑡 ,𝑎)=,
𝛿𝑛 (𝑠 ,𝑏 )=,𝛿𝑛 (𝑡 ,𝑏 )=¿
𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑎)=¿ 𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑏)=¿{𝑟 ,𝑠 , 𝑡 } {𝑟 }
形式言語とオートマトン
アルゴリズム 2.1 の 4
{r,s,t}
{r,s}
{s,t}
{t,r}
{r}
{s}
{t}a
b
𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑎)=¿ 𝛿𝑑 ({𝑟 ,𝑠 , 𝑡 },𝑏)=¿{𝑟 ,𝑠 , 𝑡 } {𝑟 }
形式言語とオートマトン
アルゴリズム 2.1 の 4全ての動作関数を求める
形式言語とオートマトン
アルゴリズム 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
下図になる
形式言語とオートマトン
アルゴリズム 2.1 の 55. の初期状態から到達できない状態 ( 遷移 ) をすべて削除
{r,s,t}
{r,s} {r}
a
b
a
ba
b
a
{s,t}
{t,r}
{s}
{t}
∅
a a
𝑏𝑏
𝑏
𝑎 ,𝑏
𝑎 ,𝑏
形式言語とオートマトン
アルゴリズム 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
整理
形式言語とオートマトン
形式言語とオートマトン
NFA(非決定性 FSA)a
aasr
b
t
DFA(決定性 FSA)
する理由は?
a
{r,s}a ab
b
{r,s,t}{r}
b
NFA DFA
形式言語とオートマトン
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
形式言語とオートマトン
小テスト
以上ですお疲れ様でした