1 / 40

第2章 「有限オートマトン」

第2章 「有限オートマトン」. 2.1 定義 2.2 正規集合の演算 2.3 Nerode の定理 2.4 非決定性の有限オートマトン 2.5 正規表現と正規集合 2.6 順序機械と状態最小化. 第2章の内容. 有限オートマトン  M = (K, Σ, δ, q 0 , F) K = {q 0 , q 1 , …, q n } : 状態の集合 Σ= {a, b, …, c} : 文字の集合(アルファベット) q 0 : 初期状態 δ : 遷移関数 K×Σ→ K F :  受理状態の集合( K の部分集合).

raleigh
Download Presentation

第2章 「有限オートマトン」

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章「有限オートマトン」

  2. 2.1 定義 2.2 正規集合の演算 2.3 Nerodeの定理 2.4 非決定性の有限オートマトン 2.5 正規表現と正規集合 2.6 順序機械と状態最小化 第2章の内容

  3. 有限オートマトン M = (K, Σ, δ, q0, F) K = {q0, q1, …, qn} :状態の集合 Σ= {a, b, …, c} :文字の集合(アルファベット) q0 : 初期状態 δ : 遷移関数 K×Σ→ K F : 受理状態の集合(K の部分集合) 2.1 定義 q ヘッド a1 a2 ai テープ

  4.  定義つづき 遷移関数を次のように拡張する。 (1) δ(q, e) = q (q ∈ K) (2) δ(q, ax) =δ(δ(q, a), x) (q∈K, a∈Σ, x∈Σ*) 文字列wに対してδ(q0, w)は,その文字列を読んだときの オートマトンの状態を表す。 δ(q0, w) = p ∈ F であるとき,M はwを受理するという。 Mが受理する文字列全体:L(M) ={w | δ(q0, w) ∈ F} オートマトンによって受理される集合を正規言語という。

  5.  オートマトンの例(p8) 状態遷移 状態遷移図(図2) a δ(q0, aba) = δ(δ(q0, a), ba) = δ(q1, ba) = δ(d(q1, b), a) = δ(q0, a) = q1∈ F q0 q1 b b a q2 a,b L(M) = {a(ba)n | n≧0}

  6. アルファベットΣ上の正規集合の族R (Σ) = {L | Lは正規言語}は集合演算∪, ∩,  ̄のもとでブール代数をなす 2.2 正規集合の演算 R (Σ) L1 L2

  7.  補題 2.1 補題2.1 正規集合 L の補集合 L =Σ*-L は正規集合 証明 Lを受理するオートマトンをM=(K, Σ, δ, q0,F)とするとき,M=(K, Σ, δ, q0, K-F)とすると L(M) = L(M) となる.

  8.  補題 2.2 補題2.2 L1, L2 ⊆ Σ * を正規集合とする。 (1) L1∪ L2は正規集合である。 (2) L1∩ L2は正規集合である。 証明 (1)について証明する。 L1 = L(M1)、M1 = (K1, Σ, δ1, q01, F1) とし、L2に対してもM2を定義する。M1, M2から次の遷移関数 d と受理状態Fをつくる。 δ = ((q1, q2), a) = (δ1(q1, a), δ2(q2, a)) (q1∈K1, q2∈K2, a∈Σ) F = F1×K2∪K1×F2

  9.  証明つづき 任意の q1∈K1, q2∈K2 に対して, δ = ((q1, q2), e) = (δ1(q1, e), δ2(q2, e)) = (q1, q2) 数学的帰納法のベースステップ δ = ((q1, q2), x) = (δ1(q1, x), δ2(q2, x)) (仮定 |x|≦k) 定義より δ((q1, q2), ax) = δ(δ((q1, q2), a), x) = δ((δ1(q1, a), δ2(q2, a)), x) 帰納法の仮定 = (δ1(δ1(q1, a), x), δ2(δ2(q2, a), x)) 帰納法の仮定 = (δ1(q1, ax), δ2(q2, ax)) 定義より

  10.  証明つづき x ∈ L(M) ⇔ δ((q01, q02), x) ∈ F ⇔ (δ1(q01, x), δ2(q02, x)) ∈ F1×K2∪K1×F2 ⇔ δ1(q01, x) ∈ F1または  δ2(q02, x) ∈ F2 ⇔ x ∈ L(M1)∪L(M2) (2)の証明は省略 (1)のときと、終状態の条件が違うだけ。

  11. Σ*上の関係 R は、 xRy ⇒ 任意の z∈Σ* に対して xzRyzを満たすとき右不変であるという。 関係 R は、R による同値類の数が有限であるとき、有限指数であるという。 2.3 Nerode の定理

  12.  定理2.4 (Nerodeの定理) 定理2.4 次の3つは同等である.  (1) 集合 L⊆Σ* は正規である。  (2) L はある有限指数で右不変な同値関係 Rによる同値類の和として表される。  (3) 関係 ≡ は有限指数である。ただし≡はx≡y ⇔ 任意の z∈Σ* に対してxz, yz∈L であるか xz, yz∈L である。 L L L 「xz∈L と yz∈L が同等である」の意

  13.  証明 (1)⇒(2) L = L(M)、 M=(K, Σ, δ, q0, F) とし、関係 R を xRy ⇔ δ(q0, x) =δ(q0, y)と定義すると、明らかに R は有限指数の同値関係である。 (L が R の同値類の和として表されることもほとんど自明) あとはRが右不変であることをいえばよろしい 任意のx, y に対してδ(q, xy)=δ(δ(q, x), y) であるので xRy ⇒ δ(q0, x)= δ(q0, y) ⇒ δ(δ(q0, x), z) = δ(δ(q0, y), z) ⇒ δ(q0, xz)= δ(q0, yz) ⇒ xzRyz より、R は右不変である。

  14.  証明 (2)⇒(3)、(3)⇒(1) (2)⇒(3) xRy ⇒ xzRyz (z∈Σ*) ⇒ xz∈L ⇔ yz∈L ⇒x≡y 。 よって≡は有限指数。 L L (3)⇒(1) 同値関係≡のxを代表元とする同値類を[x]で表す。 L K’={[x] | x∈Σ*} δ’([x], a) = [xa] q’0 = [ε] F’ = {[x] | x∈L} とするとδ’(q’0, x) =δ’([ε], x) = [εx] = [x] であるので x∈L(M’) ⇔ [x]∈F’ ⇔ x∈L ゆえに L(M’) = L である。 L は正規ってこと

  15.  例2.2 Nerodeの定理は、ある言語 L が正規でないことを示すときに有効な道具となる。 Σ={a, b}上の言語を L={anbn | n≧0} とする。 L を正規と仮定すると、ai≡ajとなる整数 i, j (i<j)が存在し、≡は右不変であるので aibi≡ajbi となるはずである。 ところがこれは成立しないので矛盾である。 すなわち、L は正規でない。 L L L

  16. これまでのオートマトンは、文字 a と状態 q に対してδ(q, a)は一意に定まった。このようなオートマトンを決定性であるという。 2.4 非決定性の有限オートマトン 非決定性のオートマトン 非決定性のオートマトンとは M=(K, Σ, δ, Q0, F)のことである。ただし Q0⊂K でδは K×Σから 2K への関数である。その他の要素は決定性と同様。

  17.  遷移関数と受理状態 非決定性の遷移関数の定義域を次のようにして K×Σから K×Σ*へ拡張する。 δ(q, e) = {q} δ(q, ax) = ∪ δ(p, x) (q∈K, a∈Σ, x∈Σ*) p∈δ(q, a) これはさらに 2K×Σ* に拡張される。 δ(S, x) = ∪ δ(q, x) q ∈S そして, x∈Σ* が M によって受理されるとは、 δ(Q0, x)∩F ≠Φ であることをいう。

  18.  例2.3 b b q0 q1 q1 a,b 非決定性有限オートマトンの状態図 例えば abb に対しては δ(q0, abb) = δ(q0, bb) = δ(q0,b)∪δ(q1,b) = {q0}∪{q1}∪{q2} = {q0, q1, q2} となり q2∈F であるから abb∈L(M) である。

  19.  定理2.5 定義より、決定性の有限オートマトンは |δ(q, a)| = 1 であるような非決定性オートマトンの特別な場合である。 しかしながらこれらのオートマトンの能力には差はないことが示される。 定理2.5 L⊆Σ* が正規であるための必要十分条件は,L が非決定性の有限オートマトンによって受理されることである。 証明の方針 任意の非決定性のM に対して、L(M) = L(M’) となる決定性のM’ を構成できることを示せば十分である。

  20.  定理2.5の証明 非決定性の有限オートマトン M=(K, Σ, δ, Q0, F) を考える。 Kの任意の部分集合に1つの状態を割り当て、 それらに対して次の決定性のM’をつくる。 ポイント! K’ = 2K δ’(S, a) = ∪ δ(q, a) q ∈S q’0 = Q0 F’ ={R | R ∈ K’ かつ R∩F≠Φ} このオートマトンは M の状態の集合を1つの状態とみなして( {q1, q2,…, qk} = p という具合に) 書き直しただけであり、 L(M) = L(M’) が成立することはすぐに分かる。

  21.  例2.4 例2.3 の非決定性オートマトンMに対して、証明の方法に従って M’ を構成すると以下のようになる. K={Φ, {q0}, {q1}, {q2}, {q0, q1}, {q0, q2}, {q1, q2}, {q0, q1, q2}} q’0={q0} F={{q2},{q0, q2}, {q1, q2}, {q0, q1, q2}} a b {q0} {q0} {q2} a a a,b {q0, q1, q2} {q0, q2} a b a b b b b {q1, q2} φ {q0, q1} a a,b

  22. 2.5 正規表現と正規集合 • この節で分かること • 正規表現の(数学的な)定義と意味づけ • 正規表現は文字列処理において重要な概念 • UNIXシステムやプログラミング言語(Perl、Ruby等)で用いられる正規表現は(実用的に)拡張されている • 有限オートマトンと正規表現とが、言語を定義する能力において同等である • 正規表現で定義される言語Lを受理する有限オートマトンが存在する • その逆もいえる

  23. Unix等における正規表現 • ファイル名の正規表現 • > rm *.txt • > cp Important[0-9].doc • 検索ツールGrepの正規表現 • > grep –E “for.+(256|CHAR_SIZE)” *.c • プログラミング言語Perlの正規表現 • $line = m|^http://.+\.jp/.+$|

  24.  正規表現の定義 • アルファベットΣ上の正規表現とはA={), (, f, ・, +, *}を用いて次のように定義される。 • (1) φとΣの要素は正規表現である • (2) αとβが正規表現ならば (α・β)も正規表現である • (3) αとβが正規表現ならば (α+β)も正規表現である • (4) αが正規表現ならば α* も正規表現である • (5) 上から導かれるものだけが正規表現である • 例: (a・(a+b)*)

  25. q0 q2 q1 a a,b b a,b  正規表現の意味づけ • 正規表現をΣ*の部分集合に写像する • (i)||φ|| =φ • (ii) a∈Σに対して ||a|| = {a} • (iii)正規表現α,βに対して ||(α・β)|| = ||α||・||β|| • (iv)正規表現α,βに対して ||(α+β)|| = ||α||+||β|| • (v)正規表現αに対して ||α*|| = ||α||* • 例: • ||(a・(a+b)*)|| = {ax | x∈{a,b}*}

  26. 2.5節の構成(同等の証明) • 定理2.10 (正規表現→正規集合) • 補題2.2(1) (2.2節より、和L1∪L2は正規集合) • 補題2.6 (空集合は正規集合) • 補題2.7 (任意の一文字は正規集合) • 補題2.8 (積L1・L2は正規集合) • 補題2.9 (閉包L*は正規集合) • 定理2.12 (正規集合→正規表現) • 補題2.11 (||αij(k)|| = Rij(k)) 割と簡単 結構たいへん

  27.  例2.7 • 図2.9の有限オートマトンに対する正規表現 • γ=α11(3) + α13(3)α11(3) = α11(2) + α13(2)・(α33(2))*・α31(2) α11(2) = α11(1) + α12(1)・(α22(1))*・α21(1) α11(1) = α11(0) + α11(0)・(α11(0))*・α11(0) =(a+φ*)+(a+φ*)・(a+φ*)*・(a+φ*) =a*α12(1) = α12(0) + α11(0)・(α11(0))*・α12(0) = b+(a*・b)α22(1) = α22(0) + α21(0)・(α11(0))*・α12(0) = a・a*・bα21(1) = α21(0) + α21(0)・(α11(0))*・α11(0) = a・a*・・・ • γ= a*+a*(baa*)*+a*(baa*)*bbb*+・・・

  28. 2.6 順序機械と状態最小化 順序機械とは atcgaatccg... atcgaatccg... 有限オートマトン 順序機械 00101100010... Yes No or

  29.  順序機械の概念図 a1 a2 ai 入力テープ q ヘッド b1 b2 bi 出力テープ

  30.  順序機械の数学的定義 • 順序機械は、5つ組 S=(K,Σ,⊿,δ,λ) • K: 状態の(空でない)集合 • Σ: 入力アルファベット • ⊿: 出力アルファベット • δ: 遷移関数 K×Σ→K  (K×Σ*→K) • λ: 出力関数 K×Σ→⊿  (K×Σ*→⊿*) • (本当はスタート地点を表す q0もいる) λ(q,ε)=ε  (q∈K) λ(q,ax)=λ(q,a)λ(δ(q,a), x)(q∈K, a∈Σ, x∈Σ*)

  31. q0 1/1 0/0 q3 q5 q1 q2 q4 1/1 0/0 1/0 0/0 0/0 1/0 0/0 1/0 0/0 1/1  例2.8 (図2.11) λ(q0, 011) =λ(q0, 0)λ(δ(q0,0), 11) = 0λ(q4, 11) = 0λ(q4, 1)λ(δ(q4,1), 1) = 01λ(q5, 1) = 010

  32.  一般順序機械 • 一般順序機械とは • 順序機械の出力関数をK×Σ→⊿* に拡張したもの • 一般順序機械 S = (K,Σ,⊿,δ,λ) に対して S(x) =λ(q0, x) (x∈Σ*) • gsm写像 L⊆Σ*に対して S(L) = {λ(q0, x) | x∈L} 語 x の S による変換 Σ*上の言語から⊿*上の言語への翻訳を意味する

  33.  同値・等価・既約 • Si=(Ki,Σ,⊿,δi,λi) (i=1,2) について • 状態 p∈K1と q∈K2は、任意の x に対してλ1(p, x) =λ2(q, x) であるとき同値といいp≡qとかく (p≡q ならばδ1(p,x) =δ2(q,x)) • S1と S2は任意の p∈K1に対して p≡q となるq∈K2が存在し、その逆の場合も成り立つとき等価であるといい S1≡S2とかく • S=(K,Σ,⊿,δ,λ) は • 任意の p, q∈K に対して p≡q ならば p=q であるとき既約であるという 補題2.13

  34.  定理2.14 定理2.14 任意の順序機械 S に対して S≡S’ となる 既約な順序機械 S’ が存在する 証明 [p] を ≡ による p を含む同値類として、これを状態とする順序機械を構成する (略:教科書p25)

  35. p r q  定理2.15 定理2.15 既約な順序機械は、それと等価な順序機械のうちで、状態数が最小である 証明 ほぼ自明 |K|>|K’| p≡r, q≡r ⇒ p≡q S’ 既約なS 矛盾!

  36.  順序機械の状態を最小にする手順 • 等価で既約な S’ を作ればよい • 定理2.14 →既約なものが存在することを保証 • k同値 • λ(p,x)=λ(q,x)がすべての|x|≦kなるx∈Σ* に対して成り立つとき、p と q は k同値であるといいp≡qとかく • Ckを ≡ による K の同値類の集合とする k k

  37. 順序機械 S=(K,Σ,⊿,δ,λ) に対して次の関係が成立する • p ≡ q であるための必要十分条件は、p≡q かつ任意の a∈Σに対してδ(p,a)≡δ(q,a) となること • Ck+1=Ckならば j≧k なるすべての j に対して Ck=Cj • Ck+1=Ckであれば、p≡q となる必要十分条件は p≡q • |C1|=1 ならば、C2 = C1 • n=|K|≧2 ならば、Cn = Cn-1 k+1 k k k  定理2.16 定理2.16 k=1,2,…,n の順に Ckを計算していくと、必ず Ck+1 = Ckとなるk が求まり、このとき Ckは≡による同値類の集合に等しい

  38. 1/0 p1 q0 p2 p3 p0 1/1 1/1 0/0 0/0 0/0 q5 q1 q3 q4 q2 1/1 0/0 1/0 0/0 0/0 1/0 0/0 0/0 1/0 0/0 1/0 0/0 1/1 1/1  例2.9 変換

  39.  有限オートマトンの状態最小化のしかた • 有限オートマトン M に等価で、状態数が最小 • Nerodeの定理より、同値関係≡のもとで同値類を状態にもつ有限オートマトン M’ • 状態を最小化する手順 • 定理2.17 (定理2.16とほぼ同じ)による • 具体的には • 離れ小島になっている状態を削除 • 同値関係≡による同値類 Ckを計算するここで関係≡はp≡q ⇔ 任意の|x|≦k なる x∈Σ* に対してδ(p, x)∈F←→δ(q, x)∈F L k k k

  40. a a b q1 q3 q0 b b a b a a q5 q2 p0 p2 q4 a b b a p1 b a b a,b  例2.10 変換

More Related