• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

シェア "第2章「有限オートマトン」第2章「有限オートマトン」"

Copied!
40
0
0

読み込み中.... (全文を見る)

全文

(1)

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

(2)

第2章の内容

2.1 定義

2.2 正規集合の演算 2.3 Nerode の定理

2.4 非決定性の有限オートマトン 2.5 正規表現と正規集合

2.6 順序機械と状態最小化

(3)

2.1 定義

a

1

a

2

a

i

q q

ヘッド テープ

有限オートマトン 

M = (K, Σ, δ, q0, F)

K = {q0, q1, …, qn} : 状態の集合

Σ= {a, b, …, c} : 文字の集合(アルファベット)

q0 : 初期状態

δ : 遷移関数 K×Σ→ K

F :  受理状態の集合( K の部分集合)

(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)

a b

b a

a,b

q0 q1

q2 δ(q0, aba) = δ(δ(q0, a), ba)

= δ(q1, ba)

= δ(d(q1, b), a) = δ(q0, a)

= q1 F

状態遷移図(図2)

状態遷移

L(M) = {a(ba)n | n 0}

 オートマトンの例( p8 )

(6)

2.2 正規集合の演算

アルファベット

Σ

上の正規集合の族

R (Σ) = {L | L

は正規言語

}

は集合演算∪

, , ∩

 ̄のもとでブール代数をなす

R (Σ)

L1 L2

(7)

 補題 2.1

L

を受理するオートマトンを

M=(K, Σ, δ, q0,F)

とするとき,

M=(K, Σ, δ, q0, K-F)

とすると 

L(M) = L(M)

となる

.

補題

2.1

正規集合

L

の補集合

L =Σ*

L

は正規集合

証明

(8)

L1, L2 Σ * ⊆

を正規集合とする。

(1) L1∪ L2

は正規集合である。

(2) L1∩ L2

は正規集合である。

L1 = L(M1)M1 = (K1, Σ, δ1, q01, F1) とし、 L2 に対し ても M2 を定義する。 M1, M2 から次の遷移関数 d と 受理状態 F をつくる。

δ = ((q1, q2), a) = (δ1(q1, a), δ2(q2, a))

(q1K1, q2K2, a Σ) F = F1×K2K1×F2

 補題 2.2

補題

2.2

証明

(1) について証明する。

(9)

δ = ((q1, q2), e) = (δ1(q1, e), δ2(q2, e)) = (q1, q2) 任意の q1K1, q2K2 に対して,

数学的帰納法のベースステップ

δ = ((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)

= (δ11(q1, a), x), δ22(q2, a), x))

= (δ1(q1, ax), δ2(q2, ax))

定義より

帰納法の仮定 帰納法の仮定 定義より

 証明つづき

(10)

x L(M) δ((q 01, q02), x) F

1(q01, x), δ2(q02, x)) F 1×K2K1×F2

δ1(q01, x) F 1  または  δ2(q02, x) F 2

x L(M 1) L(M 2) (2) の証明は省略

 証明つづき

(1) のときと、終状態の条件が違うだけ。

(11)

2.3 Nerode の定理

Σ* 上の関係 R は、

xRy ⇒ 任意の z Σ* ∈ に対して xzRyz を満たすとき右不変であるという。

関係 R は、 R による同値類の数が有限で

あるとき、有限指数であるという。

(12)

次の3つは同等である

.

 

(1)

集合

L Σ* ⊆

は正規である。

 

(2) L

はある有限指数で右不変な同値関係

R

による同値類の和として表される。

 

(3)

関係 ≡ は有限指数である。ただし≡

x y ≡ ⇔

任意の

z Σ* ∈

に対して

xz, yz L ∈

であるか

xz, yz L ∈

である

 定理 2.4 ( Nerode の定理)

定理

2.4

L

L L

xz L yz L が同等である」の意

(13)

L = L(M)M=(K, Σ, δ, q0, F) とし、関係 R xRy δ(q 0, x) =δ(q0, y)

と定義すると、明らかに R は有限指数の同値関係である。

L R の同値類の和として表されることもほとんど自明)

任意の x, y に対して δ(q, xy)=δ(δ(q, x), y) であるので xRy δ(q 0, x)= δ(q0, y)

δ(δ(q0, x), z) = δ(δ(q0, y), z)

δ(q0, xz)= δ(q0, yz)

xzRyz より、 R は右不変である。

 証明 (1) (2) ⇒

あとはRが右不変であることをいえばよろしい

(14)

(2) (3)xRy xzRyz (z Σ*) xz L yz L ∈ ⇔

x y 。 よって≡は有限指数。

(3) (1)⇒ 同値関係≡の x を代表元とする同値類を [x] で表す。

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

 証明 (2) ⇒ (3) 、 (3) ⇒ (1)

L L

L

ゆえに L(M’) = L である。L は正規ってこと

(15)

Nerode

の定理は、ある言語

L

が正規で ない ことを示すときに有効な道具となる。

Nerode

の定理は、ある言語

L

が正規で ない ことを示すときに有効な道具となる。

Σ={a, b}

上の言語を

L={anbn | n 0} ≧

とする。

L

を正規と仮定すると、

ai≡aj

となる整数

i, j (i<j)

が存在し、≡は右不変であるので

aibi≡ajbi

となるはずである。

ところがこれは成立しないので矛盾である。

すなわち、

L

は正規でない。

 例 2.2

L

L L

(16)

非決定性のオートマトンとは

M=(K, Σ, δ, Q0, F)

のことである。ただし

Q0⊂K

δ

K×Σ

から

2K

への関数である。その他の要素は決定性と同 様。

2.4 非決定性の有限オートマトン

これまでのオートマトンは、文字

a

と状態

q

に対して

δ(q, a)

は一意に定まった。このような

オートマトンを決定性であるという。

非決定性のオートマトン

(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

によって受理されるとは、

δ(Q , x) F ≠Φ ∩

であることをいう。

 遷移関数と受理状態

(18)

b q1 q1

q0 b

a,b

例えば abb に対しては δ(q0, abb) = δ(q0, bb)

= δ(q0,b) δ(q 1,b)

= {q0} {q 1} {q 2}

= {q0, q1, q2} となり q2F であるから abb L(M) である。

 例 2.3

非決定性有限オートマトンの状態図

(19)

定義より、決定性の有限オートマトンは |δ(q, a)| = 1 であるような非決定性オートマトンの特別な場合 である。しかしながらこれらのオートマトンの能力には差は ないことが示される。

定義より、決定性の有限オートマトンは |δ(q, a)| = 1 であるような非決定性オートマトンの特別な場合 である。しかしながらこれらのオートマトンの能力には差は ないことが示される。

L Σ* が正規であるための必要十分条件は, L

非決定性の有限オートマトンによって受理されること である。

任意の非決定性の M に対して、 L(M) = L(M’) となる

 定理 2.5

定理

2.5

証明の方針

(20)

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’) が成立することはすぐに分かる。

 定理 2.5 の証明

非決定性の有限オートマトン M=(K, Σ, δ, Q0, F) を考える。

ポイント!

(21)

2.3 の非決定性オートマトン M に対して、証明 の方法に従って M’ を構成すると以下のようにな

K={Φ, {q. 0}, {q1}, {q2}, {q0, q1}, {q0, q2}, {q1, q2}, {q0, q1, q2}}

q’0={q0}

F={{q2},{q0, q2}, {q1, q2}, {q0, q1, q2}}

 例 2.4

b

a {q0} a

{q0, q1, q2} b {q0, q2} a

b a

b

{q0} a

{q2} a,b b

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)

正規表現を

Σ*

の部分集合に写像する

(i) ||φ||

(ii) a Σ に対して ||a|| = {a}

(iii) 正規表現 α,β に対して ||(αβ)|| = ||α||||β||

(iv) 正規表現 α,β に対して ||(α+β)|| = ||α||+||β||

(v) 正規表現 α に対して ||α*|| = ||α||*

例:

||(a(a+b)*)||

= {ax | x {a,b}*}

 正規表現の意味づけ

a q

q0 1

b

a,b

(26)

定理 2.10  (正規表現→正規集合)

補題

2.2(1) 2.2

節より、和

L1L2

は正規集 合)

補題

2.6

(空集合は正規集合)

補題

2.7

(任意の一文字は正規集合)

補題

2.8

(積

L1 L2

は正規集合)

補題

2.9

(閉包

L*

は正規集合)

定理 2.12  (正規集合→正規表現)

補題

2.11 ||αij(k)|| = Rij(k)

割と簡単

結構たいへん

2.5 節の構成(同等の証明)

(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*

・・・

(28)

2.6 順序機械と状態最小化

atcgaatccg...

atcgaatccg...

オートマトン有限 オートマトン有限

YesYes or NoNo

atcgaatccg...

atcgaatccg...

順序機械順序機械

00101100010...

00101100010...

順序機械とは

(29)

 順序機械の概念図

q q

ヘッド

a

1

a

2

a

i

入力テープ

b

1

b

2

b

i

出力テープ

(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)

 例 2.8 (図 2.11 )

q0

q3

q5

q1 q2

q4 0/0

1/1

1/1 0/0

0/0 0/0

0/0 1/0 0/0

1/0

1/0

1/1

λ(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,Σ, ,δ⊿ ii) (i=1,2)

について

状態

p K 1

q K 2

は、任意の

x

に対して

λ1(p, x) =λ2(q, x)

であるとき同値といい

p q

とかく 

p q ならば δ1(p,x) =δ2(q,x)

S1

S2

は任意の

p K 1

に対して

p q

となる

q K 2

が存在し、その逆の場合も成り立つとき

等価であるといい

S1S2

とかく

S=(K,Σ, ,δ,λ) ⊿

任意の

p, q K

に対して

p q

ならば

p=q

で あるとき既約であるという

補題 2.13

(34)

 定理 2.14

定理

2.14

[p]

を ≡ による

p

を含む同値類として、

これを状態とする順序機械を構成する

(略:教科書

p25

) 証明

任意の順序機械

S

に対して

S S’ ≡

なる 既約な順序機械

S’

が存在する

(35)

 定理 2.15

定理

2.15

証明

既約な順序機械は、それと等価な順序機械 のうちで、状態数が最小である

ほぼ自明

p

既約な

S q

r

S’

|K|

|K’|

p≡r, q≡r p≡q

(36)

 順序機械の状態を最小にする手順

等価で既約な S’ を作ればよい

定理

2.14 →

既約なものが存在することを保証

k 同値

λ(p,x)=λ(q,x)

がすべての

|x| k≦

なる

x Σ* ∈

に 対して成り立つとき、

p

q

k

同値であ るといい

p q≡

とかく

Ck

を ≡ による

K

の同値類の集合とする

k

k

(37)

 定理 2.16

定理

2.16

順序機械 S=(K,Σ, ,δ,λ) に対して次の関係が成立する 1. p q であるための必要十分条件は、 p q かつ

任意の a Σ に対して δ(p,a) δ(q,a) となること

2. Ck+1=Ck ならば j k なるすべての j に対して Ck=Cj 3. Ck+1=Ck であれば、 p q となる必要十分条件は p q 4. |C1|=1 ならば、 C2 = C1

5. n=|K| 2 ならば、 Cn = Cn-1

k+1 k

k

k

k=1,2,…,n の順に C を計算していくと、必ず C = C となる

k=1,2,…,n の順に C を計算していくと、必ず C = C となる

(38)

 例 2.9

q0

q3

q5

q1 q2

q4 0/0

1/1

1/1 0/0

0/0 0/0

0/0 1/0 0/0

1/0

1/0

1/1

p0 p2

p3 p1

0/0

0/0 0/0

0/0

1/1 1/1

1/0 1/0

変換

(39)

 有限オートマトンの状態最小化のし かた

有限オートマトン

M

に等価で、状態数が最 小

Nerode の定理より、同値関係≡のもとで同値類を

状態にもつ有限オートマトン M’

状態を最小化する手順

定理 2.17 (定理 2.16 とほぼ同じ)による

具体的には

離れ小島になっている状態を削除

同値関係≡による同値類 Ck を計算する ここで関係≡は

p q 任意の |x| k なる x Σ* に対して

L

k k k

(40)

 例 2.10

q0 q3

q5

q1 q2

q4

a

a

a

a

a b

b

b

b b

a b

a p

p0 1

p2

b a b

a,b

変換

参照

関連したドキュメント

緒 言  第圏節 第二節 第四章 第一節 第二節 第五章 第口節 第二節第六章第七章

2 前項の規定は、地方自治法(昭和 22 年法律第 67 号)第 252 条の 19 第1項の指定都 市及び同法第 252 条の

平成25年3月1日 東京都北区長.. 第1章 第2章 第3 章 第4章 第5章 第6章 第7 章

第二種・第三種特定有害物質 (指針 第3

→ 震災対策編 第2部 施策ごとの具体的計画 第9章 避難者対策【予防対策】(p272~). 2

第1章 生物多様性とは 第2章 東京における生物多様性の現状と課題 第3章 東京の将来像 ( 案 ) 資料編第4章 将来像の実現に向けた

ON Semiconductor及びONのロゴは、Semiconductor Components Industries, LLC

第6章