計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳 平成15年6月2日 佐賀大学知能情報システム学科 1 今日の講義内容 1. ε-動作を含むNFA遷移関数と受理 復習・補足 2. ε-動作ありNFA→ε-動作なしNFA 3. ε-動作なしNFA→DFA 4. ミニテスト 平成15年6月2日 佐賀大学知能情報システム学科 2 ˆの定義 1) ˆ (q, ) CLOSURE(q) 2) ˆ (q, wa ) CLOSURE( P) ˆ(q, a) a q ε q´ a ( q, a ) ただし、 w *, q , P { p | ある ˆ (q, w)の元 rに対して p (r , a)} ˆ (q, a)は必ずしも (q, a)と等しくない。 qからaの辺で直接到達 できる状態の集合 qからaをラベルに持つ道(εを含む) を通って到達できる状態の集合 平成15年6月2日 佐賀大学知能情報システム学科 3 と ˆの拡張 1) ˆ (q, ) CLOSURE(q ) 2) ˆ (q, wa ) CLOSURE( P) ただし、 w *, q , P { p | ある ˆ (q, w)の元 rに対して r (r , a )} さらに、状態の集合 R( Q)に対して 3) (R , a) (q, a) qR 4) ˆ (R , w) ˆ (q, w) 平成15年6月2日 qR 佐賀大学知能情報システム学科 4 ε-動作ありNFAの受理言語 定義 M (Q, , , q0 , F )が受理する言語は {w | ˆ (q , w)はFの元を含む } 0 であり L( M )と書く。 平成15年6月2日 佐賀大学知能情報システム学科 5 受理の例 1. 0: ˆ(q0 ,0) CLOSURE( (ˆ(q0 , ),0)) CLOSURE( ({q0 , q1 , q2 },0)) CLOSURE( (q0 ,0) (q1 ,0) (q2 ,0)) CLOSURE({q0 } φφ) CLOSURE({q0 }) {q0 , q1 , q2 } 2. 01: ˆ(q0 ,01) CLOSURE( (ˆ(q0 ,0),1)) CLOSURE( ({q0 , q1 , q2 },1)) CLOSURE( (q0 ,1) (q1 ,1) (q2 ,1)) CLOSURE(φ {q1} φ) CLOSURE({q1}) {q1 , q2 } 平成15年6月2日 佐賀大学知能情報システム学科 6 ε-動作なしNFAと ε-動作ありNFAの等価性 ε-動作ありNFA: M (Q, Σ, δ, q0, F)が ε-動作なしNFA: M´(Q, Σ, δ´, q0, F´) で模倣できる(帰納法)。 - CLOSUREが Fの元を含むとき F {q0 } F そう でないとき F (q, a) ˆ (q, a) (q Q, a ) 平成15年6月2日 佐賀大学知能情報システム学科 7 ε-動作ありNFAを模倣する ε-動作なしNFAの例 δ δ´ q0 0 1 2 ε {q0 } φ φ {q 1} φ q1 φ q2 0 q0 ε φ {q1 } φ {q2 } 1 q1 ε {q 2} 0 1 2 q0 {q0, q1, q2 } {q1, q2 } {q2 } q1 φ {q1, q2 } {q2 } q2 φ φ {q2 } φ 2 0 q2 q0 0,1 1 q1 1,2 2 q2 0,1,2 開始 平成15年6月2日 開始 佐賀大学知能情報システム学科 8 ε-遷移無しNFAからDFAへ サブセット構成法 0 1 2 0 1 2 *→[q0 ] [q0, q1, q2 ] [q1, q2 ] [q2] *→q0 {q0, q1, q2 } {q1, q2 } {q2 } *[q0, q1, q2 ] [q0, q1, q2 ] [q1, q2] [q2] q1 φ {q1, q2 } {q2 } *[q1, q2 ] [φ] [q1, q2] [q2] *[q2] [φ] [φ] [q2] [φ] [φ] [φ] [φ] *q2 φ φ {q2 } 0 [q0 ] 0 [q0 , q1 , q2] 1 1 [q1 , q2] 2 2 0,1 [q0 ] 1 [φ] 0 2 開始 平成15年6月2日 0, 1, 2 佐賀大学知能情報システム学科 9 ε-動作を含むNFA 例1 ε-動作を含むNFA ({q0, q1, q2}, {0, 1}, δ, q0, {q2}) δは下表 q0 q1 q2 平成15年6月2日 0 1 ε q0, q1 q2 q2 q 0, q1 q0, q1 q1 佐賀大学知能情報システム学科 10 例1 ε-CLOSURE ε 開始 q1 q0 ε q2 ε 0 1 ε q0 q0, q1 - q2 q1 q2 q0, q1 - q2 q0, q1 - q1 平成15年6月2日 ε q q0 q1 q2 ε ECLOSE(q) q0, q1 , q2 q1 q1, q 2 佐賀大学知能情報システム学科 11 例1 NFA δ´(q0, 0)=EClOSE(δ(ECLOSE(q0 ), 0)) = EClOSE(δ({q0, q1, q2}, 0)) = EClOSE({q0, q1, q2})= {q0, q1, q2} δ´(q0, 1)=EClOSE(δ(ECLOSE(q0 ), 1)) = EClOSE(δ({q0, q1, q2}, 1)) = EClOSE({q0, q1})= {q0, q1, q2} δ´(q1, 0)=EClOSE(δ(ECLOSE(q1 ), 0)) = EClOSE(δ({q1}, 0)) =EClOSE({q2})={q1, q2} δ´(q1, 1)=EClOSE(δ(ECLOSE(q1 ), 1)) = EClOSE(δ({q1}, 1)) = EClOSE(δ({q0, q1}, 1))={q0, q1, q2} δ´(q2, 0)=EClOSE(δ(ECLOSE(q2 ), 0)) = EClOSE(δ({q1, q2}, 0)) = EClOSE({q0, q1, q2}) = {q0, q1, q2} δ´(q2, 1)=EClOSE(δ(ECLOSE(q2 ), 1)) = EClOSE(δ({q1, q2}, 1)) = EClOSE({q0, q1}) = {q0, q1, q2} 平成15年6月2日 0 1 *→q0 {q0, q1, q2} {q0, q1, q2} q1 {q1, q2} {q0, q1, q2} *q2 {q0, q1, q2} {q0, q1, q2} 佐賀大学知能情報システム学科 12 例1 NFA→DFA サブセット構成法 0 1 *→q0 {q0, q1, q2} {q0, q1, q2} q1 {q1, q2} {q0, q1, q2} *q2 {q0, q1, q2} {q0, q1, q2} 平成15年6月2日 0 1 *→[q0 ] [q0, q1, q2] [q0, q1, q2] *[q0, q1, q2] [q0, q1, q2] [q0, q1, q2] 佐賀大学知能情報システム学科 13 ε-動作を含むNFA→NFA 例2 ε-動作を含むNFA ({q0, q1, q2}, {0, 1}, δ, q0, {q2}) δは下表 q0 q1 q2 平成15年6月2日 0 q0 q1 1 q 0, q2 q2 佐賀大学知能情報システム学科 ε q1 q0 q0 14 例2 ε-CLOSURE ε ε 開始 q0 ε 0 1 ε q0 q0 - q1 q1 - q2 q1 q0, q2 q0 q2 平成15年6月2日 q0 ε q1 q2 ε q q0 q1 q2 ε ECLOSE q0, q 1 q0, q 1 q0, q1 , q2 佐賀大学知能情報システム学科 15 例2 NFA δ´(q0, 0)=EClOSE(δ(EClOSE( q0 ), 0))= δ´(q0, 1)=EClOSE(δ(EClOSE( q0 ), 1))= δ´(q1, 0)=EClOSE(δ(EClOSE( q1 ), 0))= δ´(q1, 1)=EClOSE(δ(EClOSE( q1 ), 1))= δ´(q2, 0)=EClOSE(δ(EClOSE( q2 ), 0))= δ´(q2, 1)=EClOSE(δ(EClOSE( q2 ), 1))= 0 1 →q0 q1 *q2 平成15年6月2日 佐賀大学知能情報システム学科 16 例2 NFA→DFA サブセット構成法 0 →q0 1 0 1 →[q0 ] q1 *q2 平成15年6月2日 佐賀大学知能情報システム学科 17 ミニテストと次回内容 ミニテスト 教科書・資料を見ても、友達と相談しても良い 15分後に指名された人は板書 ミニテストを提出すること 出したら帰って良し 次回(6/9)内容 正則(正規)表現 平成15年6月2日 佐賀大学知能情報システム学科 18
© Copyright 2024 ExpyDoc