計算の理論 I 正則表現 月曜3校時 大月 美佳 平成15年6月9日 佐賀大学知能情報システム学科.

Slides:



Advertisements
Similar presentations
プログラミング言語論 第3回 BNF 記法について(演習付き) 篠埜 功. 構文の記述 プログラミング言語の構文はどのように定式化できるか? 例1 : for ループの中に for ループが書ける。 for (i=0; i
Advertisements

計算の理論 I -言語とオートマトン- 月曜3校時 大月 美佳.
計算の理論 I 文脈自由文法 月曜3校時 大月 美佳 平成15年6月30日 佐賀大学知能情報システム学科.
離散数学入門 (集合論、ベン図) 情報システム学科 中田豊久.
コンパイラ 2011年10月17日
計算の理論 II 帰納的関数(つづき) 月曜4校時 大月美佳.
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
計算の理論 I ー DFAとNFAの等価性 ー 月曜3校時 大月 美佳.
東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 II 文脈自由文法と プッシュダウンオートマトン
計算の理論 I -講義について+αー 月曜3校時 大月美佳.
コンパイラ 2012年10月15日
第2章 「有限オートマトン」.
形式言語とオートマトン2013 ー有限オートマトンー 第5日目
形式言語とオートマトン2008 ー有限オートマトンー
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
プログラミング言語論 第3回 BNF記法について(演習付き)
計算の理論 II NP完全 月曜5校時 大月美佳 平成17年1月17日 佐賀大学理工学部知能情報システム学科.
計算の理論 II Turing機械の合成 月曜5校時 大月美佳 2004/11/15 佐賀大学理工学部知能情報システム学科.
計算の理論 I -Myhill-Nerodeの定理 と最小化-
計算の理論 II 帰納的関数 月曜4校時 大月美佳.
計算の理論 II 帰納的関数2 月曜4校時 大月美佳.
計算の理論 I 正則表現 火曜3校時 大月 美佳 平成16年6月8日 佐賀大学知能情報システム学科.
計算の理論 I ー 正則表現(今度こそ) ー 月曜3校時 大月 美佳.
計算の理論 I ー 正則表現 ー 月曜3校時 大月 美佳.
計算の理論 II Turing機械 月曜4校時 大月美佳.
計算の理論 I -言語とオートマトン- 月曜3校時 大月 美佳.
計算の理論 I -Myhill-Nerodeの定理 と最小化-
計算の理論 II 時間量と領域量 月曜5校時 大月美佳 2019/4/10 佐賀大学理工学部知能情報システム学科.
計算の理論 II 計算量 月曜5校時 大月美佳 2019/4/10 佐賀大学理工学部知能情報システム学科.
平成20年10月5日(月) 東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I 文脈自由文法の標準形 月曜3校時 大月美佳.
計算の理論 II -講義内容説明と 基本事項確認ー
計算の理論 II 前期の復習 -有限オートマトン-
計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳.
計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳 平成15年6月2日 佐賀大学知能情報システム学科.
計算の理論 I 正則表現とFAとの等価性 月曜3校時 大月 美佳 平成15年6月16日 佐賀大学知能情報システム学科.
東京工科大学 コンピュータサイエンス学部 亀田弘之
2007年度 情報数理学.
プログラミング言語論 第9回 情報工学科 木村昌臣 篠埜 功.
計算の理論 I ー閉包性ー 月曜3校時 大月 美佳.
形式言語とオートマトン 中間試験解答例 2016年11月15実施 中島毅.
平成26年4月22日(火) 東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I ー正則表現とFAの等価性 その1ー
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
計算の理論 I 反復補題 月曜3校時 大月 美佳 平成15年7月14日 佐賀大学知能情報システム学科.
計算の理論 I 非決定性有限オートマトン(NFA)
計算の理論 I -数学的概念と記法- 火曜 12:50~14:20 大月 美佳 2004年4月20日.
計算の理論 I -プッシュダウンオートマトン-
計算の理論 I ー正則表現とFAの等価性ー 月曜3校時 大月 美佳.
計算の理論 I プッシュダウンオートマトン 火曜3校時 大月 美佳 平成16年7月6日 佐賀大学知能情報システム学科.
東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I -数学的概念と記法- 月曜3校時 大月 美佳.
形式言語とオートマトン 第14回 プッシュダウンオートマトンと全体のまとめ
計算の理論 I -講義について+αー 月曜3校時 大月美佳 平成31年5月18日 佐賀大学理工学部知能情報システム学科.
計算の理論 I NFAとDFAの等価性 火曜3校時 大月 美佳 平成16年5月18日 佐賀大学理工学部知能情報システム学科.
東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I 反復補題 火曜3校時 大月 美佳 平成16年7月13日 佐賀大学知能情報システム学科.
東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I ー 正則表現 ー 月曜3校時 大月 美佳.
コンパイラ 2012年10月11日
計算の理論 I ε-動作を含むNFAと等価なDFA
計算の理論 I ε-動作を含むNFA 火曜3校時 大月 美佳 平成16年5月25日 佐賀大学知能情報システム学科.
形式言語とオートマトン Formal Languages and Automata 第5日目
計算の理論 I -講義について+αー 火曜3校時 大月美佳 平成31年8月23日 佐賀大学理工学部知能情報システム学科.
計算の理論 I ー ε-動作を含むNFA ー 月曜3校時 大月 美佳.
計算の理論 I プッシュダウンオートマトン 月曜3校時 大月 美佳 平成15年7月7日 佐賀大学知能情報システム学科.
計算の理論 II 多テープTuring機械 月曜4校時 大月美佳 平成16年11月29日 佐賀大学知能情報システム学科.
計算の理論 II 時間量と領域量 月曜4校時 大月美佳 2019/9/13 佐賀大学理工学部知能情報システム学科.
計算の理論 I 最小化 月曜3校時 大月 美佳 平成15年6月23日 佐賀大学知能情報システム学科.
Presentation transcript:

計算の理論 I 正則表現 月曜3校時 大月 美佳 平成15年6月9日 佐賀大学知能情報システム学科

今日の講義内容 ε-動作なしNFA→DFA訂正 正規(正則)表現 ミニテスト 平成15年6月9日 佐賀大学知能情報システム学科

例1 ε-CLOSURE q ECLOSE(q) q0 q0, q1, q2 q1 q2 q1, q2 ε ε ε ε ε q0 q1 q2 開始 ε ε ε q ECLOSE(q) q0 q0, q1, q2 q1 q2 q1, q2 1 ε q0 q0, q1 - q2 q1 平成15年6月9日 佐賀大学知能情報システム学科

例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} 1 *→q0 {q0, q1, q2} q1 {q1, q2} *q2 平成15年6月9日 佐賀大学知能情報システム学科

例1 NFA→DFA サブセット構成法 1 *→q0 {q0, q1, q2} q1 {q1, q2} *q2 1 *→[q0 ] 1 *→q0 {q0, q1, q2} q1 {q1, q2} *q2 1 *→[q0 ] [q0, q1, q2] *[q0, q1, q2] 平成15年6月9日 佐賀大学知能情報システム学科

ε-動作を含むNFA→NFA 例2 ε-動作を含むNFA ({q0, q1, q2}, {0, 1}, δ, q0, {q2}) δは下表 1 ε q0 - q1 q0, q2 q2 平成15年6月9日 佐賀大学知能情報システム学科

例2 ε-CLOSURE q ECLOSE q0 q0, q1 q1 q2 q0, q1, q2 ε ε ε ε ε ε q0 q1 q2 開始 ε ε ε ε 1 ε q0 - q1 q0, q2 q2 q ECLOSE q0 q0, q1 q1 q2 q0, q1, q2 平成15年6月9日 佐賀大学知能情報システム学科

例2 NFA δ´(q0, 0)=EClOSE(δ(EClOSE( q0 ), 0))= 1 →q0 q1 *q2 平成15年6月9日 佐賀大学知能情報システム学科

例2 NFA→DFA サブセット構成法 1 →q0 q1 *q2 1 →[q0 ] 平成15年6月9日 佐賀大学知能情報システム学科

今日の新しいこと 正則表現 正則表現を使うと嬉しいこと 前準備 正則表現の定義 正則表現の例 平成15年6月9日 佐賀大学知能情報システム学科

正則表現を使えると嬉しいこと パターンマッチにしょっちゅう使う UNIXのシェル UNIXのコマンド、プログラミング言語 sh, csh, ksh, tcsh, bash ファイルの名前 UNIXのコマンド、プログラミング言語 egrep, awk, sed, perl ファイルの中の文字列の処理 平成15年6月9日 佐賀大学知能情報システム学科

Bash のファイル名展開 % ls aaa,aab,aac,aba,aca,ada,abc,bbb,bcb % echo a[abc]a 平成15年6月9日 佐賀大学知能情報システム学科

Perl での処理 Sun May 27 21:51:40 JST 2001 ↓ s/\w+ (\w+) (\d\d) \d\d:\d\d:\d\d \w+ (\d+)/Today is \1 \2, \3./; Today is May 27, 2001. 平成15年6月9日 佐賀大学知能情報システム学科

前準備 その1 (記号列の集合) アルファベット Σ Σ上の記号列 Σ* Σ*の部分集合 L, L1, L2 L L1 L2 ε, Σ* ab, bc, aba, bcca Σ* a, b, c L1 ε, a, b, c, ab, ac, ba, bc, ca, cb, aab, aba, …. a, bc, aca Σ ba, abc L2 平成15年6月9日 佐賀大学知能情報システム学科

前準備 その2 (記号列の集合の演算) L1L2 ={xy | x∈L1, y∈L2 }←連接 L1 L1 L2 L2 a, bc, aca aba, bcba, acaba, aabc, bcabc, acaabc L2 ba, abc 平成15年6月9日 佐賀大学知能情報システム学科

前準備 その3 (記号列の集合の演算) baba, baabc, abcba, abcabc ε ba, abc 平成15年6月9日 佐賀大学知能情報システム学科

ε, ba, abc, …, ba…ba, ba…abc, …, abc…abc 前準備 その4 (Kleene閉包) closure closure ba…ba, ba…abc, … …, abc…abc ε ba, abc ∪ ∪…∪ ε, ba, abc, …, ba…ba, ba…abc, …, abc…abc 平成15年6月9日 佐賀大学知能情報システム学科

ba, abc, …, ba…ba, ba…abc, …, abc…abc 前準備 その5 (正閉包) positive closure ba…ba, ba…abc, … …, abc…abc ba, abc ∪…∪ ba, abc, …, ba…ba, ba…abc, …, abc…abc 平成15年6月9日 佐賀大学知能情報システム学科

例 平成15年6月9日 佐賀大学知能情報システム学科

正則表現の定義 φは正則表現で、その表す集合は空集合である。 εは正則表現で、その表す集合は{ε}である。 Σの各元aに対してaは正則表現で、その表す集合は{a}である。 rとsがそれぞれ言語RとSを表す正則表現のとき、(r+s)、(rs)、および(r*)は正則表現で、その表す集合はそれぞれ、R∪S、RS、R*である。 平成15年6月9日 佐賀大学知能情報システム学科

正則表現の例 間違いやすい φ、ε、a (φ+ε)=φ∪{ε}={ε} (φ+a)=φ∪{a}={a} (a+b)={a}∪{b}={a, b} φε={}{ε}={}=φ φa={}{a}={}=φ εa={ε}{a}={a} ab={a}{b}={ab} φ*={}*={ε} ε*={ε}*={ε} a*= {a}*={ε, a, aa, aaa, …} ((φ+ε)+a)=(ε+a)={ε} ∪{a}={ε, a} (φ(a+b))={}{a, b}={}=φ ((ab)+ε)={ab}∪{ε}={ε, ab} ((ab)*)={ab}*={ε, ab, abab, ababab, … } 間違いやすい 平成15年6月9日 佐賀大学知能情報システム学科

正規表現の演算の強さ * > 連接 > + ((0(1*))+0) → 01*+0 (1+(10))* → (1+10)* ((1(1(1*)))+(01)) → (111*+01) 平成15年6月9日 佐賀大学知能情報システム学科

正則表現と集合の例1 00={00} (0+1)*={0, 1}* ={ε, 0, 1, 00, 01, 10, 11, …} (1+10)*={1, 10}* ={ε, 1, 10, 11, 110, 101, 1010, … } (0+ε)(1+10)*={0, ε}{1, 10}* ={0, ε} {ε, 1, 10, 11, 110, 101, 1010, … } = {ε, 0, 1, 01, 10, 010, 11, 011, 110, 0110, 101, 0101, 1010, 01010, … } 平成15年6月9日 佐賀大学知能情報システム学科

正則表現と集合の例2 (0+1)*011={0, 1}*011 ={ε, 0, 1, 00, 01, 10, 11, …}{011} ={011, 0011, 1011, 00011, 01011, 10011, 11011, … } 0*1*2*={0}*{1}*{2}* ={ε, 0, 00, … }{ε, 1, 11, … } {ε, 2, 22, … } = {ε, 0, 1, 01, 012, 00, 001, 0011, 0012, 00112, 001122, 000, 0001, 00011, 00012, 000111, 000112, 0001112, 00011122, 000111222, … } 図2.8のNFA 平成15年6月9日 佐賀大学知能情報システム学科

(1+10)*の性質 1で始まり、連続した0を含まない列か空列から成る集合 →帰納法で示す。 平成15年6月9日 佐賀大学知能情報システム学科

帰納法での証明つづき 平成15年6月9日 佐賀大学知能情報システム学科

その他の演算について 証明できるかな? 平成15年6月9日 佐賀大学知能情報システム学科

ミニテストと次回内容 ミニテスト ミニテストを提出すること 次回(6/16)内容 教科書・資料を見ても、友達と相談しても良い 15分後に指名された人は板書 ミニテストを提出すること 出したら帰って良し 次回(6/16)内容 正則表現とFAとの等価性 平成15年6月9日 佐賀大学知能情報システム学科