形式言語とオートマトン Formal Languages and Automata 第4日目 Tokyo University of Technology School of Computer Science Hiroyuki KAMEDA 今日の内容 • 前回の復習 • 最簡型DFAの求め方とその練習 • 正規表現を最簡型オートマトンで表現 など 確認問題: 1. 最簡型DFAとは何だったでしょうか? 2. 正規表現ってどんなものでしたでしょうか? 2 ©東京工科大学 2013年5月7日 亀田弘之 今日の学習目標 1. ε-NFAが与えられたとき,それと能力的に 等価なFAを構築できる。 2. 任意のFAが与えられたとき,それと能力的 に等価でかつ状態数が最小のFAを構築で きる。 3 ©東京工科大学 2013年5月7日 亀田弘之 今日の目標 これと同等なDFAを求める. 教科書p.59問題2.4より 4 ©東京工科大学 2013年5月7日 亀田弘之 今日の目標 これと同等なmin-FAを求める. 教科書p.59問題2.5より 5 ©東京工科大学 2013年5月7日 亀田弘之 今日の目標 課題:これ同等なDFAを求めよ. 6 ©東京工科大学 2013年5月7日 亀田弘之 まずは,復習から • (皆さんも一緒にやってみましょう!) 7 ©東京工科大学 2013年5月7日 亀田弘之 復習 DFA Md からmin-DFA Ms を求める 1. Md の状態を,Fの状態と非Fの状態との2 グループに分割する. 2. 各グループの各状態について,入力におけ る遷移先が同じグループに行くものとそうで ないものとに分割する. 3. どのグループもこれ以上分割することがで きなくなるまで2を繰り返す. 4. 最終的に得られる各グループそれぞれを新 たな状態とみなすことで得られるDFAがMs . 8 ©東京工科大学 2013年5月7日 亀田弘之 復習 DFA Md からmin-DFA Ms を求める 1. Md の状態を,Fの状態と非Fの状態との2 グループに分割する. 2. 各グループの各状態について,入力におけ る遷移先が同じグループに行くものとそうで ないものとに分割する. 3. どのグループもこれ以上分割することがで きなくなるまで2を繰り返す. 4. 最終的に得られる各グループそれぞれを新 たな状態とみなすことで得られるDFAがMs . 問 上記の青丸○の付いた用語の意味を 自分の言葉で説明しなさい。 ©東京工科大学 2013年5月7日 亀田弘之 9 例による解説 10 ©東京工科大学 2013年5月7日 亀田弘之 このオートマトンM=<Q,Σ,δ,q0, F> を詳しく分析してみよう • 状態の集合 Q • 入力アルファベット Σ • 初期状態: • 最終状態 F • 状態遷移関数δ: 11 ©東京工科大学 2013年5月7日 亀田弘之 このオートマトンM=<Q,Σ,δ,q0, F> を詳しく分析してみよう • 状態の集合 Q = { q0, q1, q2, q3, q4, q5 } • 入力アルファベット Σ = { 0, 1 } • 初期状態: q0 • 最終状態 F = { q3, q5 } • 状態遷移関数δ: 入力記号 0 1 q0 q4 q1 内 q1 部 q 2 状 q 3 態 q4 q2 q4 q1 q3 q5 q2 q0 q1 q5 q3 q2 ©東京工科大学 2013年5月7日 亀田弘之 12 状態集合Qを分割してみよう 1. QをFと非Fとに分割: Q = { q0, q1, q2, q3, q4, q5 } => Q1 = { { q0, q1, q2, q4 }, { q3, q5 } } 手順1はこれでおしまい. 13 ©東京工科大学 2013年5月7日 亀田弘之 手順2(1) • Q11 = { q0, q1, q2, q4 } と Q12= { q3, q5 } を調べ ていく. ©東京工科大学 2013年5月7日 亀田弘之 14 手順2(2) 内 部 状 態 q0 q1 q2 q3 q4 q5 入力記号 0 1 q4 q1 q2 q4 q1 q3 q5 q2 q0 q1 q3 q2 内 部 状 態 q0 q1 q2 q4 q3 q5 ©東京工科大学 2013年5月7日 亀田弘之 入力記号 0 1 q4 q1 q2 q4 q1 q3 q0 q1 q5 q2 q3 q2 15 手順2(3) 2. Q = { q0, q1, q2, q3, q4, q5 } => Q1 = { { q0, q1, q2, q4 }, { q3, q5 } } => Q2 = { { q0, q1, q4 }, { q2 }, { q3, q5 } } 16 ©東京工科大学 2013年5月7日 亀田弘之 手順2(4) 内 部 状 態 q0 q1 q2 q3 q4 q5 入力記号 0 1 q4 q1 q2 q4 q1 q3 q5 q2 q0 q1 q3 q2 内 部 状 態 q0 q1 q4 q2 q3 q5 ©東京工科大学 2013年5月7日 亀田弘之 入力記号 0 1 q4 q1 q2 q4 q0 q1 q1 q3 q5 q2 q3 q2 17 手順2(3) 2. Q = { q0, q1, q2, q3, q4, q5 } => Q1 = { { q0, q1, q2, q4 }, { q3, q5 } } => Q2 = { { q0, q1, q4 }, { q2 }, { q3, q5 } } => Q3 = { { q0, q4 }, { q1 }, { q2 }, { q3, q5 } } 18 ©東京工科大学 2013年5月7日 亀田弘之 手順2(5) 内 部 状 態 q0 q1 q2 q3 q4 q5 入力記号 0 1 q4 q1 q2 q4 q1 q3 q5 q2 q0 q1 q3 q2 内 部 状 態 q0 q4 q1 q2 q3 q5 入力記号 0 1 q4 q1 q0 q1 q2 q4 q1 q3 q5 q2 q3 q2 これで収束しました! 19 ©東京工科大学 2013年5月7日 亀田弘之 手順2(3) 2. Q = { q0, q1, q2, q3, q4, q5 } => Q1 = { { q0, q1, q2, q4 }, { q3, q5 } } => Q2 = { { q0, q1, q4 }, { q2 }, { q3, q5 } } => Q3 = { { q0, q4 }, { q1 }, { q2 }, { q3, q5 } } (4つに分けることができた!) 20 ©東京工科大学 2013年5月7日 亀田弘之 手順3(1) • min-DFAの内部状態は4つ. qA { q0, q4 } qB { q1 } qC { q2 } qD { q3, q5 } 21 ©東京工科大学 2013年5月7日 亀田弘之 手順3(2) • min-DFAの内部状態は4つ. qA { q0, q4 } 内 qB { q1 } 部 qC { q2 } qD { q3, q5 } 状 態 0 1 qA 1 q0 q4 q1 q2 q3 q5 入力記号 0 1 q4 q1 q0 q1 q2 q4 q1 q3 q5 q2 q3 q2 0 0 qC qB 0 1 1 qD 22 ©東京工科大学 2013年5月7日 亀田弘之 この内容は試験に 出やすい個所です! 一般のDFAから最簡形DFAを 求める方法わかりましたでしょうか? 0 1 qA 1 0 0 qC qB 0 ©東京工科大学 2013年5月7日 亀田弘之 1 1 qD 23 次の話題 • 次は、NFAと同等なDFAを求める方法につい て知ろう! 24 ©東京工科大学 2013年5月7日 亀田弘之 例えばこれと同等なDFAを求めたい. これはNFAです。 教科書p.59問題2.4より 25 ©東京工科大学 2013年5月7日 亀田弘之 例題:まずはこれから! これもNFAです。 26 ©東京工科大学 2013年5月7日 亀田弘之 アルゴリズム2.1(教科書p.47) • (ここだけを急に読んでもわかりませんよね。 順番にやって行きましょう!) • 黒板で説明します。メモを取ってください。 27 ©東京工科大学 2013年5月7日 亀田弘之 自習問題1:等価なDFAを求めよ。 28 ©東京工科大学 2013年5月7日 亀田弘之 自習問題2:等価なDFAを求めよ。 29 ©東京工科大学 2013年5月7日 亀田弘之 最後の話題 • 正規表現を最簡型オートマトンで表現する. 正規表現 α => NFA => min-DFA 例:α=a(a|b)*bb のNFA,min-DFAを求める. これは総合演習でもあるので、 次回話します! 30 ©東京工科大学 2013年5月7日 亀田弘之
© Copyright 2025 ExpyDoc