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

ε-NFA から NFA への等価変換

ドキュメント内 _auto (ページ 56-61)

5

NFAからDFAへの等価変換が可能である(6.4節)のと同じく、ε-NFAからNFAへの等価変

6

換が可能です。

7

変換規則2 M = (Q,Σ,δ, q0, F) を任意のε-NFA とします。そのとき、M と同じ受理言語を持

1

つε-遷移を含まないNFA:M= (Q,Σ,δ, q0, F)を必ず作ることができます。すなわち記号列u

2

について、u∈L(M)ならばu∈L(M)であり、u /∈L(M)ならばu /∈L(M)であるような M

3

が存在し、そのようなM を実際に作ることができます。

4

まず、Q=Q、q0=q0とします。つまり変換の前後で同じ状態を用います。初期状態も同じです。

この点は変換規則1とは全く異なります(6.4節参照)。次にM の遷移関数δ:Q×(Σ∪{ε})→2Q を用いて、M の遷移関数δ :Q×Σ→2Q を以下のように定義します。

δ(q, a) = δ(q, a)ˆ

= %

qε-CLOSURE(q)

⎣ %

q′′δ(q,a)

ε-CLOSURE(q′′)

すなわち、M において状態q からaを読んで遷移する先は、M においてqから ε-遷移で遷移 し、さらにaを読んで遷移し、さらに ε-遷移で遷移する先を全て集めたものです。最終状態の集 合 F は以下の通りです。

F=F∪{q∈Q |ε-CLOSURE(q)∩F ̸=∅}

すなわち、ε-遷移だけで最終状態に到達可能な状態qは新たに

最終状態

に追加し

5

ます1。 "

6

変換規則2の内容を理解するための簡単な変換例をいくつか示します。ただし全ての例題につい

7

て Σ={a, b}と仮定します。

8

例1

9

図7.2 (1)左のε-NFA M16は初期状態q0から最終状態q1 へε-遷移が可能です。よって、変換

10

後のオートマトンでは、q0 も最終状態に加わります。変換後のオートマトンM16 にはq0 からq1

11

への有向枝がないことに注意してください。よって変換後のオートマトンでは状態q1は不要です。

12

変換前後のオートマトンの受理集合は共に{ε}です。

13

この例題を5項組を用いて議論してみましょう。M16 は({q0, q1},Σ,δ16,{q1})と表すことがで

14

きます。ここに

15

δ16(q0, a) =∅, δ16(q0, b) =∅, δ16(q0,ε) ={q1}, δ16(q1, a) =∅, δ16(q1, b) =∅, δ16(q1,ε) =∅.

16

1実際には、最終状態への追加は初期状態だけについて行えば十分です。よって

F=

! F{q0}, if ε-CLOSURE(q0)F ̸=

F, otherwise

と定義する教科書もあります。変換規則2の正当性の証明には上の関係式のみを用います。

q0 ϵ q1 q0 q1 (1)

M16 M16´

q0 q1

ϵ

q2 a

(2)

q0 q1

q2 a

a

M17´ M17

q0 q1

ϵ

q3 a

(3) q2

b

q0 q1

q3 a

q2 b a

b

M18 M18´

q0 ϵ q1

q2 a

(4) ϵ

b

q0 q1

q2 a

b a,b a,b

a,b a

a,b

b M19´ M19

図7.2: ε-NFAからNFAへの変換

よって、変換後のオートマトンM16 は({q0, q1},Σ,δ16 , F16 )という形になります。ここにδ16

1

F16 を具体的に決める必要があります。まず、δ16は以下の通りです。

2

δ16(q0, a) =∅, δ16(q0, b) =∅, δ16(q1, a) =∅, δ16(q1, b) =∅.

3

すなわち全ての関数値が空集合になります。次に最終状態の集合 F16 は {q0, q1} です。何故なら ば、変換規則2に従えば、

F16 = F16∪{q∈Q |ε-CLOSURE(q)∩F16̸=∅}

= {q1}∪{q∈Q |ε-CLOSURE(q)∩{q1}̸=∅}

ですが、ε-CLOSURE(q0) ={q1}であるため、F16 はq0を含むことになるからです。

4

例2

5

図7.2 (2)左のε-NFA M17では、q0

a q1

ε q2 という遷移が可能です。よって、変換後の(2)

6

右のNFAM17 ではq0

a q2 を持っています。またM17 ではq1からε-遷移で最終状態q2へ到達

7

できますから、M17 ではq1 も最終状態です。変換前後のオートマトンの受理集合は{a} です。

8

例3

9

図7.2 (3)の例題は(2)の例題を少し複雑化したものです。右のオートマトンM18 が記号列ab

10

を読む遷移にはq0

a q1

b q3 とq0

a q2

b q3 の二種類があります。これに対して、左の変換前

11

のオートマトン M18 がabを読む遷移はq0 a

→q1 ε

→q2 b

→q3と一本道であって一見すると決定性

12

のようにも見えます。しかし、ε-遷移には遷移する/しないの非決定性があるため、それがM18

13

は二種類の遷移となって現れています。

14

例4

15

図7.2 (4)の例題は、(1)から(3)に比べると複雑です。状況を複雑にしている原因のひとつは、

16

左のもとのオートマトンM19 にq0 ε

→q1 a

→q0、q1 ε

→q2 b

→q1 というε-遷移を含む閉路がある点

17

です。このような場合には、変換後のオートマトンに思いのほか多くの枝が加わります。この変換

18

例では、M19 の枝の数は4ですが、M19 のそれは12です。人手で変換するときには落ち着いて丁

19

寧に変換しないと、何本かの枝を忘れがちです2。変換後のオートマトンではq0、q1 も最終状態

20

である点にも注意が必要です。

21

考察 図7.2の各オートマトン(M16 とM16 以外)を5項組で表しなさい。また、変換の妥当性

22

を、状態遷移図ではなく5項組を用いて示しなさい。

23

2期末試験ではケアレスミスをしないでください。

H,F,R

q0 q4

q 3

H F

F

H,F,R H,F

q1 q2

H,F,R H H

F H

F H,F

図7.3: ε-NFA(図7.1)からNFAへの変換

例5: 缶ジュースの自動販売機

1

図7.3は、図7.1をε-遷移を含まないNFAに変換したものです。

2

考察 図7.3の状態q0からHを読んでq1、q2、q4 へ遷移可能です。その理由をそれぞれ説明し

3

4 なさい。

考察 図7.3を変換規則1に基づいてDFAに変換しなさい。

5

変換規則2の正当性

6

変換規則2の ε-NFAM = (Q,Σ,δ, q0, F)とそれを変換したNFAM = (2Q,Σ,δ, q0, F)の受

7

理集合が等しいことを証明するには以下の二つを証明すれば十分です。

8

1. もしε-CLOSURE(q0)∩F ̸=∅が成り立つならば、そのときに限り、q0∈F が成り立つ。

9

2. 任意の記号列u(|u|≥1)について、以下の等式が成り立つ。

ˆδ(q0, u) = ˆδ(q0, u)

1.は変換規則の定義から明らかです。2.の証明にはuの長さに関する数学的帰納法を用います。具

10

体的な帰納法の用い方は前章の変換規則1の証明と類似していますから、省略します。

11

考察 余裕のある人は、任意の記号列u(|u|≥1)について、ˆδ(q0, u) = ˆδ(q0, u)が成り立つこと

12

を自力で証明してみなさい。

13

q0

M20 : a q1 q2

ϵ

b

?

q0

M21 : q1 q2

a

b

?

q0

M22 : q1 q2

b

?

ϵ

a ϵ

q0

M23 : q1 q2

b, ϵ ϵ

?

a ϵ

b c

q0

M24 : ϵa q1 ϵ q2

?

c

q0 b, ϵ

M25 : ϵ q1 ϵ q2

?

c

a, ϵ

図7.4: ε-NFAからNFAへの変換の練習問題

ドキュメント内 _auto (ページ 56-61)