形式言語とオートマトン2011 -No.2平成23年4月26日(火) 東京工科大学 コンピュータサイエンス学部 亀田弘之 Copyright© 2011 School of Computer Science, Tokyo University of Technology 今日は有限オートマトンの話 • automaton (複数形は,automata) 敢えて訳せば「自動機械」でしたね。 • 内容は教科書の第2章です。 • 「計算の原理」を理解するための基礎ですの で、じっくりと学びましょう。 もっと詳しく学びたい人へ [1] 言語理論とオートマトン,ホップクロフト・ウルマン,サイエンス社 [2] 形式言語の理論,西野・石坂,丸善 など 2 Copyright© 2011 School of Computer Science, Tokyo University of Technology オートマトンとは • オートマトン = 自動機械 (automaton, pl. automata) • もっと具体的には… いったいどん なものなのか なぁ 3 Copyright© 2011 School of Computer Science, Tokyo University of Technology まずは有限オートマトンから • Finite Automaton(FA) – 何がfinite(有限)か? => 内部状態数が有限 もっと詳しく見ていき ましょう! 4 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンのイメージ • FAの概観 a1 a2 ・・・ ai-1 ai ・・・ ・・・ an qk 5 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンのイメージ • FAの概観 a1 a2 セル 入力記号 ・・・ ai-1 ai ・・・ ・・・ an qk 入力テープ 内部状態 ヘッド 6 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンのイメージ • FAの概観 a1 a2 セル 入力記号 ・・・ ai-1 ai ・・・ ・・・ an qk 入力テープ 内部状態 ヘッド 7 Copyright© 2011 School of Computer Science, Tokyo University of Technology • このようなハードウェアをもった自動機械が、 入力記号を読みながら内部状態を変化させ ていく、といったもの。 • 言葉で厳密に表現すると次のようになる。 8 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの定義 FA = ( K, Σ, δ, q0, F ) ただし、 K : 状態の集合( Kは有限集合) Σ : 入力アルファベット(Σは有限集合) δ : 状態遷移関数 δ: K×Σ∋( qi , a ) → qj ∈ K q0 : 初期状態 なるほど そうです か F : 最終状態の集合 ( F ⊆ K ) でも、よくわからないなぁ 9 Copyright© 2011 School of Computer Science, Tokyo University of Technology それでは、具体例をみてみましょう。 10 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの例 FA = ( K, Σ, δ, q0, F ) ただし、 K : 状態の集合( Kは有限集合) Σ : 入力アルファベット(Σは有限集合) δ : 状態遷移関数 δ: K×Σ∋( qi , a ) → qj ∈ K q0 : 初期状態 F : 最終状態の集合 ( F ⊆ K ) 11 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの例 FA = ( K, Σ, δ, q0, F ) ただし、 K : { r, s, t } 状態の集合 Σ : 入力アルファベット(Σは有限集合) δ : 状態遷移関数 δ: K×Σ∋( a, qi ) → qj ∈ K q0 : 初期状態 F : 最終状態の集合 ( F ⊆ K ) 12 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの例 FA = ( K, Σ, δ, q0, F ) ただし、 K : { r, s, t } 状態の集合 Σ : { a, b }入力アルファベット δ : 状態遷移関数 δ: K×Σ∋( a, qi ) → qj ∈ K q0 : 初期状態 F : 最終状態の集合 ( F ⊆ K ) 13 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの例 FA = ( K, Σ, δ, q0, F ) ただし、 K : { r, s, t } 状態の集合 Σ : { a, b }入力アルファベット δ : 状態遷移関数 δ: K×Σ∋( qi , a) → qj ∈ K q0 : 初期状態 F : 最終状態の集合 ( F ⊆ K ) 14 Copyright© 2011 School of Computer Science, Tokyo University of Technology δ : 状態遷移関数 δ(r, a)=s, δ(r, b)=r, δ(s, a)=t, δ(s, b)=r, δ(t, a)=t, δ(t, b)=r 状態 入力 次の状態 r a s r b r s a t s b r t a t t b r 15 Copyright© 2011 School of Computer Science, Tokyo University of Technology δ : 状態遷移関数 δ(r, a)=s, δ(r, b)=r, δ(s, a)=t, δ(s, b)=r, δ(t, a)=t, δ(t, b)=r 内部入力 状態 外部入力 入力 次の状態 r a s r b r s a t s b r t a t t b r 16 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの例 FA = ( K, Σ, δ, q0, F ) ただし、 K : { r, s, t } 状態の集合 Σ : { a, b }入力アルファベット δ : 状態遷移関数 δ: K×Σ∋( a, qi ) → qj ∈ K q0 : r 初期状態 F : 最終状態の集合 ( F ⊆ K ) 17 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの例 FA = ( K, Σ, δ, q0, F ) ただし、 K : { r, s, t } 状態の集合 Σ : { a, b }入力アルファベット δ : 状態遷移関数 δ: K×Σ∋( a, qi ) → qj ∈ K q0 : r 初期状態 F : { t } 最終状態の集合 ( F ⊆ K ) 18 Copyright© 2011 School of Computer Science, Tokyo University of Technology つまり 19 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの例 K = { r, s, t} , q0 = r, δ : 状態 r r s s t t Σ= { a, b }, F ={ t }, 入力 次の状態 a s b r a t b r a t b r 20 Copyright© 2011 School of Computer Science, Tokyo University of Technology このFAを動作させてみましょう • 入力文字列 1. abaa 2. bababa 3. aabbaabb 21 Copyright© 2011 School of Computer Science, Tokyo University of Technology 以上のFAは決定性FAともいう • 決定性有限オートマトン (Deterministic FA; DFA) ??? この後で、 非決定性オートマトン(Non-deterministic finite automaton; NFA) が出てきます。 22 Copyright© 2011 School of Computer Science, Tokyo University of Technology FAの視覚的表記法 • 言葉よりも図の方が分かりやすいこともある。 • 便利なので覚えましょう。簡単です! よかったぁ 23 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの定義 FA = ( K, Σ, δ, q0, F ) ただし、 K : 状態の集合( Kは有限集合) Σ : 入力アルファベット(Σは有限集合) δ : 状態遷移関数 δ: K×Σ∋( qi , a ) → qj ∈ K 理論的形式 q0 : 初期状態 的定義だとこ うなる F : 最終状態の集合 ( F ⊆ K ) 24 Copyright© 2011 School of Computer Science, Tokyo University of Technology これを視覚的に表記すると… 25 Copyright© 2011 School of Computer Science, Tokyo University of Technology 初めに内部状態ありき s r t 26 Copyright© 2011 School of Computer Science, Tokyo University of Technology δ:状態遷移関数をみながら… δ(r, a)=s, δ(r, b)=r, δ(s, a)=t, δ(s, b)=r, δ(t, a)=t, δ(t, b)=r 状態 入力 次の状態 r a s r b r s a t s b r t a t t b r 27 Copyright© 2011 School of Computer Science, Tokyo University of Technology 遷移の条件と行き先を記入 a r s t 28 Copyright© 2011 School of Computer Science, Tokyo University of Technology 遷移の条件と行き先を記入 a r b s t 29 Copyright© 2011 School of Computer Science, Tokyo University of Technology 遷移の条件と行き先を記入 a r b a s t 30 Copyright© 2011 School of Computer Science, Tokyo University of Technology 遷移の条件と行き先を記入 a r b a s b t 31 Copyright© 2011 School of Computer Science, Tokyo University of Technology 遷移の条件と行き先を記入 a r b a s b t a 32 Copyright© 2011 School of Computer Science, Tokyo University of Technology 遷移の条件と行き先を記入 a r b a s b b t a 33 Copyright© 2011 School of Computer Science, Tokyo University of Technology 初期状態と最終状態を記入 a r b a s b b t a 34 Copyright© 2011 School of Computer Science, Tokyo University of Technology もう一度動作させてみよう • 入力文字列 1. 2. 3. 4. abaa bababa aabbaabb bbaabbaa 35 Copyright© 2011 School of Computer Science, Tokyo University of Technology 練習問題 36 Copyright© 2011 School of Computer Science, Tokyo University of Technology 問題1 • 本パワーポイントの20ページのオートマトン に対して、入力文字列 abbaa を与えた場合 の一連の動作を、教科書34ページ下に書い てある記号 |- を用いて記述せよ。 37 Copyright© 2011 School of Computer Science, Tokyo University of Technology 問題2 • M = ( K, Σ, δ, q0, F ) の各記号は何か。 – K:________ – Σ:________ – δ:________ – q0:________ – F:________ 38 Copyright© 2011 School of Computer Science, Tokyo University of Technology 問題3 • M1 = ( K, Σ, δ, q0, F ) を遷移図表示せよ。 ただし、 – K = { q0, q1, q2, q3 } – Σ = { 0, 1 } – δ: δ(q0,0)=q2, δ(q0,1)=q1, δ(q1,0)=q3, δ(q1,1)=q0, δ(q2,0)=q0, δ(q2,1)=q3, δ(q3,0)=q1, δ(q3,1)=q2 – q0 – F = { q0 } 39 Copyright© 2011 School of Computer Science, Tokyo University of Technology 問題4 • 問題3で定義されるオートマトンM1が受理す る文字列および受理しない(拒否する)文字 列をそれぞれ5つずつ例示しなさい。 (注)受理する:accept 拒絶する:reject これらは専門用語です。 40 Copyright© 2011 School of Computer Science, Tokyo University of Technology 以上のFAは決定性FAという • 決定性有限オートマトン (Deterministic FA; DFA) • 次に、非決定性有限オートマトン (Non-deterministic Finite Automaton; NFA) 41 Copyright© 2011 School of Computer Science, Tokyo University of Technology 非決定性有限オートマトンの定義 FA = ( K, Σ, δ, q0, F ) ただし、 K : 状態の集合( Kは有限集合) Σ : 入力アルファベット(Σは有限集合) δ : 状態遷移関数 K×Σ∋( qi, a ) → (qk, ql,…,qm)∈ 2K q0 : 初期状態 F : 最終状態の集合 ( F ⊆ K ) 42 Copyright© 2011 School of Computer Science, Tokyo University of Technology 例 • (教科書p.40 例2.4) 43 Copyright© 2011 School of Computer Science, Tokyo University of Technology ε非決定性有限オートマトン • 空動作を許容する非決定性有限オートマトン (non-deterministic FA with ε; ε-NFA) 44 Copyright© 2011 School of Computer Science, Tokyo University of Technology ε非決定性有限オートマトンの定義 FA = ( K, Σ, δ, q0, F ) ただし、 K : 状態の集合( Kは有限集合) Σ : 入力アルファベット(Σは有限集合) δ : 状態遷移関数 K×(Σ∪{ε})∋ → 2K q0 : 初期状態 F : 最終状態の集合 ( F ⊆ K ) 45 Copyright© 2011 School of Computer Science, Tokyo University of Technology ε-NFAの例 FA = ( K, Σ, δ, q0, F ) ただし、 K : { p, q, r} 状態の集合 Σ : { 0, 1 }入力アルファベット δ : 状態遷移関数 δ: K×(Σ∪{ε})∋ → 2K q0 : p 初期状態 F : { q, r } 最終状態の集合 46 Copyright© 2011 School of Computer Science, Tokyo University of Technology δ:状態遷移関数 • δ(p,ε)={ q, r } • δ(q,0)={ q } • δ(r,1)={ r }, 47 Copyright© 2011 School of Computer Science, Tokyo University of Technology 状態遷移図にすると… (自分で書いてみよう) 検討:このオートマトンはどんな文字列を 受理するのだろうか? 48 Copyright© 2011 School of Computer Science, Tokyo University of Technology 練習問題 • (今回はなし。次回授業でやりましょう。) 49 Copyright© 2011 School of Computer Science, Tokyo University of Technology 注意事項 • DFA -> NFA -> ε-NFA 「条件を順次緩めた」 ということは、より多くの文字列を受理できる? つまり、より大きな言語・より多様な言語を 受理することができる? 50 Copyright© 2011 School of Computer Science, Tokyo University of Technology No! 本当なの?! でも、なぜ? 51 Copyright© 2011 School of Computer Science, Tokyo University of Technology • DFA, NFA, ε-NFA は同等の能力 (言語の生成・受理の能力として) • DFAの方が簡潔だよね! • ε-NFAをDFAに、それも状態数が最小のFAに変換 する方法について学ぼう! (教科書のp.51あたりに書いてあります。) • 次回は、復習をしながら正規表現との関係を話しま す。 52 Copyright© 2011 School of Computer Science, Tokyo University of Technology 宿題(提出不要) • 教科書の例題等を確認しておくこと。 – 例2.1 – 問2.1 – 問2.2 – 問2.3 – 例2.4 – 例2.5 – 問2.5 53 Copyright© 2011 School of Computer Science, Tokyo University of Technology 付録 • オートマトンの動作イメージ – 動作の初めの部分のみ – 興味のある人は続きを自分で作ってみてください。 54 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの動作 • FAの概観 a1 a2 ・・・ ai-1 ai ・・・ ・・・ an qk 55 Copyright© 2011 School of Computer Science, Tokyo University of Technology 有限オートマトンの動作 • FAの概観 a b r s a a q X q’ r a s r b r s a t s b r t a t t b r 56 Copyright© 2011 School of Computer Science, Tokyo University of Technology
© Copyright 2024 ExpyDoc