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

FRONT REAR BOTH

ドキュメント内 数理論理 (ページ 123-200)

2 . 有限オートマトン ( 1-8 )

自動ドアの制御部の状態遷移図:

OPEN CLOSED

2 . 有限オートマトン ( 1-9 )

自動ドアの制御部の状態遷移図:

入力:『REAR』:

OPENならOPENのまま、CLOSEDならCLOSEDのまま

OPEN CLOSED

NEITHER

FRONT, BOTH

NEITHER REAR

FRONT

REAR BOTH

2 . 有限オートマトン ( 1-10 )

自動ドアの制御部の状態遷移図:

入力:『BOTH』:

OPENならOPENのまま、CLOSEDなら、OPENにする

OPEN CLOSED

NEITHER

FRONT, BOTH

NEITHER REAR

FRONT

REAR BOTH

2 . 有限オートマトン ( 1-11 )

入力を頭文字のみ残して消す

OPEN CLOSED

NEITHER

FRONT, BOTH

NEITHER REAR

FRONT

REAR BOTH

2 . 有限オートマトン ( 1-12 )

4つの記号{F,R,B,N}を入力として受け取って状態を変える機械 今の状態と入力で、次の状態が決まる

⇔有限オートマトン

OPEN CLOSED

N

F , B

F ,R,B N,R

2 . 有限オートマトン ( 1-13 )

最後の状態を出力と考える。

初期状態:CLOSED

入力列: “F B R N N R B”

出力:OPEN

2 . 有限オートマトン ( 1-14 )

初期状態:CLOSED

入力列: “F B R N N R B”

出力:OPEN

出力がOPENである入力列が『受理される』と考える。

『受理される』列の集合を言語𝐿𝐿とする: e.g. FBRNNRB∈ 𝐿𝐿 𝐿𝐿はこのオートマトンで認識される言語と呼ばれる。

2 . 有限オートマトン ( 2 )

有限オートマトンの概念図

ヘッド テープ

・テープと有限制動部からなる

・ヘッドがテープを左から右にスキャンする

・テープはマス目に分かれていて、各マスには記号が書いてある つまり、テープ全体で“列”になっている。

・テープをスキャンした後で、列が言語に属しているかどうかを判 定する。

0 1 0 0 ・ ・ ・ ・ ・ ・ ・ ・ ・ 1

有限制動部

2 . 有限オートマトン ( 3 )

ヘッド テープ

定義: 有限オートマトン(fa)は𝑀𝑀 = 𝐾𝐾, Σ, 𝛿𝛿, 𝑠𝑠0, 𝐹𝐹 で与えられる。

𝐾𝐾, Σ, 𝐹𝐹 は有限集合

𝐾𝐾 : 状態の集合 (有限制動部の状態)

Σ :入力記号の集合 (テープに書かれている記号)

𝐹𝐹 ⊆ 𝐾𝐾 :受理状態の集合 (状態が𝐹𝐹で止まると入力を受理)

𝑠𝑠0 ∈ 𝐾𝐾 :初期状態 (状態は最初𝑠𝑠0である)

𝛿𝛿 :𝐾𝐾 × Σ → 𝐾𝐾 状態遷移関数

(𝑠𝑠 = 𝛿𝛿 𝑠𝑠, 𝑎𝑎 なら、状態𝑠𝑠で記号𝑎𝑎を読むと状態は𝑠𝑠𝑓に変わる)

0 1 0 0 ・ ・ ・ ・ ・ ・ ・ ・ ・ 1

有限制動部

2 . 有限オートマトン ( 4 )

定義: 有限オートマトン(fa)は𝑀𝑀 = 𝐾𝐾, Σ, 𝛿𝛿, 𝑠𝑠0, 𝐹𝐹 で与えられる。

𝐾𝐾 : 状態の集合、 Σ :入力記号の集合

𝐹𝐹 ⊆ 𝐾𝐾 :受理状態の集合、 𝑠𝑠0 ∈ 𝐾𝐾 :初期状態 𝛿𝛿 :𝐾𝐾 × Σ → 𝐾𝐾 状態遷移関数

(例) 𝐾𝐾 = OPEN, CLOSED , Σ = F, R, B, N , 𝐹𝐹 = {OPEN}

初期状態𝑠𝑠0 = CLOSED 𝛿𝛿 OPEN, F = OPEN, 𝛿𝛿 OPEN, N = CLOSED, 𝛿𝛿 CLOSED, F = OPEN , 𝛿𝛿 CLOSED, N = CLOSED,

… etc

2 . 有限オートマトン ( 5 )

定義: 有限オートマトン(fa)は𝑀𝑀 = 𝐾𝐾, Σ, 𝛿𝛿, 𝑠𝑠0, 𝐹𝐹 で与えられる。

𝐾𝐾 : 状態の集合、 Σ :入力記号の集合

𝐹𝐹 ⊆ 𝐾𝐾 :受理状態の集合、 𝑠𝑠0 ∈ 𝐾𝐾 :初期状態 𝛿𝛿 :𝐾𝐾 × Σ → 𝐾𝐾 状態遷移関数

(例) 𝐾𝐾 = 𝑠𝑠0, 𝑠𝑠1, 𝑠𝑠2, 𝑠𝑠3 , Σ = 0,1 , 𝐹𝐹 = {𝑠𝑠0}

状態遷移図

⇒ ・状態は丸で示す

・初期状態を”⇒”で示す

・受理状態は二重丸

・状態遷移は矢の形で示す e. g. 𝛿𝛿 𝑠𝑠0, 0 = 𝑠𝑠1, 𝛿𝛿 𝑠𝑠0, 1 = 𝑠𝑠2

𝑠𝑠

0

𝑠𝑠

1

𝑠𝑠

3

𝑠𝑠

2

0 0

1 1

1 1

0 0

2 . 有限オートマトン ( 6 )

110をこの順で読むと、𝑠𝑠0 → 𝑠𝑠2 → 𝑠𝑠0 → 𝑠𝑠1 となる。

写像 ̂𝛿𝛿を ̂𝛿𝛿 𝑠𝑠0, 110 = 𝑠𝑠1となるように(再帰的)定義をする:

定義( ̂𝛿𝛿:𝐾𝐾 × 𝛴𝛴 → 𝐾𝐾)

∀𝑠𝑠 ∈ 𝐾𝐾, ∀𝑎𝑎 ∈ 𝛴𝛴, ∀𝑥𝑥 ∈ 𝛴𝛴 に対して、

̂𝛿𝛿 𝑠𝑠, 𝜖𝜖 = 𝑠𝑠 かつ ̂𝛿𝛿 𝑠𝑠, 𝑥𝑥𝑎𝑎 = 𝛿𝛿 ̂𝛿𝛿 𝑠𝑠, 𝑥𝑥 , 𝑎𝑎

2 . 有限オートマトン ( 7 )

定義( ̂𝛿𝛿:𝐾𝐾 × 𝛴𝛴 → 𝐾𝐾)

∀𝑠𝑠 ∈ 𝐾𝐾, ∀𝑎𝑎 ∈ 𝛴𝛴, ∀𝑥𝑥 ∈ 𝛴𝛴 に対して、

̂𝛿𝛿 𝑠𝑠, 𝜖𝜖 = 𝑠𝑠 かつ ̂𝛿𝛿 𝑠𝑠, 𝑥𝑥𝑎𝑎 = 𝛿𝛿 ̂𝛿𝛿 𝑠𝑠, 𝑥𝑥 , 𝑎𝑎

(例)

110をこの順で読むと、𝑠𝑠0 → 𝑠𝑠2 → 𝑠𝑠0 → 𝑠𝑠1

̂𝛿𝛿 𝑠𝑠0, 𝜖𝜖 = 𝑠𝑠0,

̂𝛿𝛿 𝑠𝑠0, 1 = ̂𝛿𝛿 𝑠𝑠0, 𝜖𝜖1 = 𝛿𝛿 ̂𝛿𝛿 𝑠𝑠0, 𝜖𝜖 , 1 = 𝛿𝛿 𝑠𝑠0, 1 = 𝑠𝑠2,

̂𝛿𝛿 𝑠𝑠0, 11 = 𝛿𝛿 ̂𝛿𝛿 𝑠𝑠0, 1 , 1 = 𝛿𝛿 𝑠𝑠2, 1 = 𝑠𝑠0

̂𝛿𝛿 𝑠𝑠0, 110 = 𝛿𝛿 ̂𝛿𝛿 𝑠𝑠0, 11 , 0 = 𝛿𝛿 𝑠𝑠0, 0 = 𝑠𝑠1

2 . 有限オートマトン ( 8 )

定義( ̂𝛿𝛿:𝐾𝐾 × 𝛴𝛴 → 𝐾𝐾)

∀𝑠𝑠 ∈ 𝐾𝐾, ∀𝑎𝑎 ∈ 𝛴𝛴, ∀𝑥𝑥 ∈ 𝛴𝛴 に対して、

̂𝛿𝛿 𝑠𝑠, 𝜖𝜖 = 𝑠𝑠 かつ ̂𝛿𝛿 𝑠𝑠, 𝑥𝑥𝑎𝑎 = 𝛿𝛿 ̂𝛿𝛿 𝑠𝑠0, 𝑥𝑥 , 𝑎𝑎 記号𝑎𝑎 ∈ Σに対して、𝛿𝛿 𝑠𝑠, 𝑎𝑎 = ̂𝛿𝛿(𝑠𝑠, 𝑎𝑎)なので、

ハット”^”を省略しても混乱が生じない。

結局、𝛿𝛿の定義域が𝐾𝐾 × Σから𝐾𝐾 × Σに自然に拡張された。

定義 fa 𝑀𝑀 = 𝐾𝐾, 𝛴𝛴, 𝛿𝛿, 𝑠𝑠0, 𝐹𝐹 と𝑥𝑥 ∈ Σに対して、

𝛿𝛿 𝑠𝑠0, 𝑥𝑥 ∈ 𝐹𝐹のとき、𝑥𝑥は𝑀𝑀に受理されると呼ぶ。

𝑀𝑀が受理する列の全体を𝑀𝑀が認識する言語と呼ぶ。

2 . 有限オートマトン ( 9 )

fa 𝑀𝑀1の状態遷移図

例題2.4 𝑀𝑀1の認識する言語を求めよ。

(解答)

0の個数と1の個数がともに偶数となる{0,1}上の列となる。

「列𝑥𝑥 ∈ 0,1 に対し、𝛿𝛿 𝑠𝑠0, 𝑥𝑥 = 𝑠𝑠とすると、

𝑠𝑠 = 𝑠𝑠0であるなら、#0 𝑥𝑥 と#1 𝑥𝑥 はともに偶数。

𝑠𝑠 = 𝑠𝑠1なら、#0 𝑥𝑥 が奇数、#1 𝑥𝑥 は偶数、

𝑠𝑠 = 𝑠𝑠2なら、#0 𝑥𝑥 が偶数、 #1 𝑥𝑥 が奇数、

𝑠𝑠 = 𝑠𝑠3なら、 #0 𝑥𝑥 と#1 𝑥𝑥 はともに奇数」であることを証明する。

𝑠𝑠

0

𝑠𝑠

1

𝑠𝑠

3

𝑠𝑠

2

0 0

1 1

1 1

0 0

2 . 有限オートマトン ( 10 )

「列𝑥𝑥 ∈ 0,1 に対し、𝛿𝛿 𝑠𝑠0, 𝑥𝑥 = 𝑠𝑠とすると、

𝑠𝑠 = 𝑠𝑠0であるなら、#0 𝑥𝑥 と#1 𝑥𝑥 はともに偶数。

𝑠𝑠 = 𝑠𝑠1なら、#0 𝑥𝑥 が奇数、#1 𝑥𝑥 は偶数、

𝑠𝑠 = 𝑠𝑠2なら、#0 𝑥𝑥 が偶数、 #1 𝑥𝑥 が奇数、

𝑠𝑠 = 𝑠𝑠3なら、 #0 𝑥𝑥 と#1 𝑥𝑥 はともに奇数」

(証明)

i) 列𝑥𝑥の長さが0のとき、定義より𝛿𝛿 𝑠𝑠0, 𝜖𝜖 = 𝑠𝑠0となりOK ii) 列𝑥𝑥の長さが𝑛𝑛のとき成立していると仮定する。

長さ𝑛𝑛 + 1の列𝑦𝑦は𝑦𝑦 = 𝑥𝑥𝑎𝑎と書ける。

#0 𝑥𝑥 が偶数、#1 𝑥𝑥 が奇数で、𝑎𝑎 = 0のときを考える。

仮定より𝑥𝑥を読み終わった後の状態は𝑠𝑠2.

状態遷移図より𝑎𝑎 = 0を読むと𝑠𝑠2 → 𝑠𝑠3となる。

𝑦𝑦は #0 𝑥𝑥 と#1 𝑥𝑥 がともに奇数なのでOK。

他もすべて調べると証明が終わる。 (以下省略)

2 . 有限オートマトン ( 11 )

例題 言語𝐿𝐿1: = 𝑥𝑥 𝑥𝑥 ∈ 0,1 かつ𝑥𝑥の任意のプレフィックス𝑦𝑦

に対して、0 ≤ #1 𝑦𝑦 − #0 𝑦𝑦 ≤ 2}

を認識するfaを与えよ。

解答:

𝑡𝑡3 に行くとかえって来れない。

𝑡𝑡

0

𝑡𝑡

3

1 0

0 1

0,1

𝑡𝑡

1 10

𝑡𝑡

2

2 . 有限オートマトン ( 12 )

例題

言語𝐿𝐿2: = 𝑥𝑥 𝑥𝑥 ∈ 𝑎𝑎, 𝑏𝑏, 𝑐𝑐 かつ𝑥𝑥は部分列𝑎𝑎𝑐𝑐を含まない} を認識するfaを与えよ。

解答

𝑠𝑠1は、直前に𝑎𝑎を読んだことを記憶するための状態。

𝑠𝑠0と𝑠𝑠1で𝑎𝑎を読むと𝑠𝑠1に行く。その次に𝑐𝑐を読むと𝑠𝑠2に行き受理されな くなる。

𝑠𝑠

0 𝑎𝑎𝑏𝑏

𝑠𝑠

1 𝑐𝑐

𝑠𝑠

2

𝑏𝑏, 𝑐𝑐 𝑎𝑎 𝑎𝑎, 𝑏𝑏, 𝑐𝑐

問題

以下の言語に認識する dfa の状態遷移図を書け。た だし、アルファベットは {0,1} とする。

( つまり 𝑤𝑤 ∈ 0,1

) :

① 𝑤𝑤 | 𝑤𝑤 は 1 で始まり 0 で終わる

② 𝑤𝑤 | 𝑤𝑤 は少なくとも三つの 1 を含む

③ 𝑤𝑤 | 𝑤𝑤 は部分列 0101 を含む

④ 𝑤𝑤 | 3 ≤ 𝑤𝑤 かつ 𝑤𝑤 の 3 番目の文字が 0

⑤ 𝑤𝑤 𝑤𝑤 は 0 で始まり長さが奇数、

もしくは、 1 で始まり長さが偶数 }

⑥ 𝑤𝑤 𝑤𝑤 は部分列 110 を含まない }

⑦ 𝑤𝑤 | 𝑤𝑤 ≤ 5

問題 ( 前ページの続き )

⑧ 𝑤𝑤 | 𝑤𝑤 ≠ 11 かつ 𝑤𝑤 ≠ 111

⑨ 𝑤𝑤 | 𝑤𝑤 の全ての奇数番目は 1

⑩ 𝑤𝑤 | #

1

𝑤𝑤 ≥ 2 かつ #

0

𝑤𝑤 ≥ 1

⑪ 0, 𝜖𝜖

⑫ 𝑤𝑤 #

0

𝑤𝑤 が偶数、もしくは #

1

𝑤𝑤 = 2}

⑬ ∅

⑭ 𝑤𝑤 | 𝑤𝑤 ≠ 𝜖𝜖

⑮ 𝑤𝑤 |𝑤𝑤| が偶数、もしくは |𝑤𝑤 | が3の倍数 }

2 . 有限オートマトン ( 13 )

直積オートマトン(直積fa)

入力アルファベットが等しい二つのfa

𝑀𝑀1 = 𝐾𝐾1, Σ, 𝛿𝛿1, 𝑠𝑠01, 𝐹𝐹1 と𝑀𝑀2 = 𝐾𝐾2, Σ, 𝛿𝛿2, 𝑠𝑠02, 𝐹𝐹2 に対して、

状態: 𝑠𝑠1, 𝑠𝑠2 ∈ 𝐾𝐾1 × 𝐾𝐾2

状態遷移関数:𝛿𝛿 𝑠𝑠1, 𝑠𝑠2 , 𝑎𝑎 ↦ 𝛿𝛿1 𝑠𝑠1, 𝑎𝑎 , 𝛿𝛿2 𝑠𝑠2, 𝑎𝑎

直積オートマトンの初期状態と受理状態は、利用目的によって異 なったものを指定する。

2 . 有限オートマトン ( 14 )

定理2.2 言語𝐿𝐿1と𝐿𝐿2がfaで認識できるなら、𝐿𝐿1 ∩ 𝐿𝐿2もfaで認識できる。

証明 𝐿𝐿1と𝐿𝐿2を認識するfaをそれぞれ

𝑀𝑀1 = 𝐾𝐾1, Σ, 𝛿𝛿1, 𝑠𝑠01, 𝐹𝐹1 と𝑀𝑀2 = 𝐾𝐾2, Σ, 𝛿𝛿2, 𝑠𝑠02, 𝐹𝐹2 とする。

それらの直積faを以下の初期状態と受理状態集合で作る:

初期状態: 𝑠𝑠01, 𝑠𝑠02

受理状態集合: 𝐹𝐹 ≔ 𝑠𝑠1, 𝑠𝑠2 | 𝑠𝑠1 ∈ 𝐹𝐹1, 𝑠𝑠2 ∈ 𝐹𝐹2

𝑥𝑥 ∈ 𝐿𝐿1 ∩ 𝐿𝐿2なら、𝛿𝛿1 𝑠𝑠01, 𝑥𝑥 ∈ 𝐹𝐹1かつ𝛿𝛿2 𝑠𝑠02, 𝑥𝑥 ∈ 𝐹𝐹2.

⟹ 𝛿𝛿 𝑠𝑠01, 𝑠𝑠02 , 𝑥𝑥 = 𝛿𝛿1 𝑠𝑠01, 𝑥𝑥 , 𝛿𝛿2 𝑠𝑠02, 𝑥𝑥 ∈ 𝐹𝐹

⟹ 直積オートマトンは𝑥𝑥を受理

2 . 有限オートマトン ( 15 )

𝑥𝑥 ∉ 𝐿𝐿1 ∩ 𝐿𝐿2なら、𝛿𝛿1 𝑠𝑠01, 𝑥𝑥 ∉ 𝐹𝐹1もしくは𝛿𝛿2 𝑠𝑠02, 𝑥𝑥 ∉ 𝐹𝐹2.

⟹ 𝛿𝛿 𝑠𝑠01, 𝑠𝑠02 , 𝑥𝑥 = 𝛿𝛿1 𝑠𝑠01, 𝑥𝑥 , 𝛿𝛿2 𝑠𝑠02, 𝑥𝑥 ∉ 𝐹𝐹

⟹ 直積オートマトンは𝑥𝑥を受理しない。

よって、直積オートマトンは、𝐿𝐿1 ∩ 𝐿𝐿2を認識する。 ■

2 . 有限オートマトン ( 16 )

直積オートマトンの例:

以前の2つのオートマトン

で表現される言語𝐿𝐿1と𝐿𝐿2に対して、

𝐿𝐿1 ∩ 𝐿𝐿2を認識するオートマトンを直積オートマトンで与える:

状態の数は、 𝑠𝑠0, 𝑡𝑡0 , ⋯ , (𝑠𝑠3, 𝑡𝑡3)の16個

初期状態は (𝑠𝑠0, 𝑡𝑡0)、受理状態は 𝑠𝑠0, 𝑡𝑡0 , 𝑠𝑠0, 𝑡𝑡1 , (𝑠𝑠0, 𝑡𝑡2)

𝑠𝑠

0

𝑠𝑠

1

𝑠𝑠

3

𝑠𝑠

2

0 0

1 1

1 1

0 0

𝑠𝑠0,𝑡𝑡1

2 . 有限オートマトン ( 17 )

𝑠𝑠0, 𝑡𝑡3 𝑠𝑠1,𝑡𝑡3

𝑠𝑠3,𝑡𝑡3 𝑠𝑠2,𝑡𝑡3

0 0

1 1

1 1

0 0

𝑠𝑠0, t0 𝑠𝑠2,𝑡𝑡1 𝑠𝑠0,𝑡𝑡2

𝑠𝑠1,𝑡𝑡1 𝑠𝑠3,𝑡𝑡0

1 0 0

1 𝑠𝑠3,𝑡𝑡2

𝑠𝑠2, 𝑡𝑡2

𝑠𝑠3, 𝑡𝑡1 𝑠𝑠1,𝑡𝑡0

1

0 1

0 1 0

𝑠𝑠1,𝑡𝑡2 𝑠𝑠2,𝑡𝑡0

0 0

1 0 1

1 0 0

1

1

0 1 1

0 0

2 . 有限オートマトン ( 18 )

faの記憶容量 = 状態の個数

同じ言語を認識する限り、より状態の少ないfaが効率の良いfa.

初期状態から到達できない状態は排除しても認識する言語は変わ らない。(冗長な状態)

先ほどの直積オートマトンの例では、

(𝑠𝑠0, 𝑡𝑡1)は初期状態から到達できないので、

削除しても認識する言語は変わらない。

2 . 有限オートマトン ( 19 )

練習問題: (𝑠𝑠0, 𝑡𝑡1)以外にも、初期状態から到達できない状態が5つ 存在するので探してみよ。

𝑠𝑠2, 𝑡𝑡2 𝑠𝑠0,𝑡𝑡1

2 . 有限オートマトン ( 20 )

𝑠𝑠0, 𝑡𝑡3 𝑠𝑠1,𝑡𝑡3

𝑠𝑠3,𝑡𝑡3 𝑠𝑠2,𝑡𝑡3

0 0

1 1

1 1

0 0

𝑠𝑠0, t0 𝑠𝑠2,𝑡𝑡1 𝑠𝑠0,𝑡𝑡2

𝑠𝑠1,𝑡𝑡1 𝑠𝑠3,𝑡𝑡0

1 0 0

1 𝑠𝑠3,𝑡𝑡2

𝑠𝑠3, 𝑡𝑡1 𝑠𝑠1,𝑡𝑡0

1 0

1 1

0 1 0

𝑠𝑠1,𝑡𝑡2 𝑠𝑠2,𝑡𝑡0

0 0

1 0 1

1 0 0

1

1

0 1 1

0 0

解答例

2 . 有限オートマトン ( 21 )

𝑠𝑠0, 𝑡𝑡3 𝑠𝑠1,𝑡𝑡3

𝑠𝑠3,𝑡𝑡3 𝑠𝑠2,𝑡𝑡3

0 0

1 1

1 1

0 0

𝑠𝑠0, t0 𝑠𝑠2,𝑡𝑡1 𝑠𝑠0,𝑡𝑡2

𝑠𝑠1,𝑡𝑡1 𝑠𝑠3,𝑡𝑡0

1 0 0

1 𝑠𝑠3,𝑡𝑡2

0 0

1 1 0 0

1

1

0

状態を 6 つ削除したオートマトン 削除前の直積オートマトンと

同じ言語を認識する。

2 . 有限オートマトン ( 22 )

今後、faは初期状態から到達できない状態は含まないと仮定する。

しかし、それでもなお冗長な状態が存在する可能性がある。

定義(状態の等価性)

fa 𝑀𝑀 = 𝐾𝐾, Σ, 𝛿𝛿, 𝑠𝑠0, 𝐹𝐹 の二つの状態𝑠𝑠1と𝑠𝑠2は、

『全ての列𝑥𝑥 ∈ Σに対して、

𝛿𝛿 𝑠𝑠1, 𝑥𝑥 ∈ 𝐹𝐹 ⟺ 𝛿𝛿 𝑠𝑠2, 𝑥𝑥 ∈ 𝐹𝐹』 を満たすとき等価であるという。

2 . 有限オートマトン ( 23 )

定理 2.3

(i) fa 𝑀𝑀が等価な2個の状態を有するならば、𝑀𝑀と同じ言語を認識

して状態数が𝑀𝑀より1個少ないfa 𝑀𝑀𝑓が存在する。

(ii) fa 𝑀𝑀 には、初期状態から到達できない状態は存在しないとする。

このとき、𝑀𝑀と同じ言語を認識して状態数がより少ないfa 𝑀𝑀𝑓が 存在するならば、𝑀𝑀には(少なくとも)2個の等価な状態が存在す る。

2 . 有限オートマトン ( 24 )

(i) fa 𝑀𝑀が等価な2個の状態を有するならば、𝑀𝑀と同じ言語を認識し

て状態数が𝑀𝑀より1個少ないfa 𝑀𝑀𝑓が存在する。

(証明の概要)

𝑠𝑠1と𝑠𝑠2が等価だとする。

状態sから𝑠𝑠2への遷移が存在するなら、それらを全て𝑠𝑠から𝑠𝑠1への遷 移に変更する。すると、𝑠𝑠2への遷移がなくなるので、𝑠𝑠2を削除したfa を𝑀𝑀𝑓とすると、𝑀𝑀𝑓は𝑀𝑀より状態が一つ少ない。𝑀𝑀と𝑀𝑀𝑓の等価性も証 明できる。

𝑠𝑠𝑓 𝑠𝑠𝑓𝑓 𝑠𝑠𝑓𝑓𝑓

𝑠𝑠2 𝑠𝑠1

𝑠𝑠𝑓 𝑠𝑠𝑓𝑓 𝑠𝑠𝑓𝑓𝑓

𝑠𝑠2 𝑠𝑠1

2 . 有限オートマトン ( 25 )

(ii) fa 𝑀𝑀には、初期状態から到達できない状態は存在しないとする。

このとき、𝑀𝑀と同じ言語を認識して状態数がより少ないfa 𝑀𝑀𝑓が存在 するならば、𝑀𝑀には必ず2個の等価な状態が存在する。

証明は複雑なので省略する。(知りたい人は参考書)

2 . 有限オートマトン ( 26 )

定理2.4 Σ上の言語𝐿𝐿がfaで認識できるなら、𝐿𝐿の補集合Σ − 𝐿𝐿もfaで 認識できる。

(証明) 𝐿𝐿を受理するfaを𝑀𝑀とする。

『𝑀𝑀が受理しない列』を受理するfaを作りたい。

𝑀𝑀が列𝑥𝑥を受理しない ⇔ 列𝑥𝑥を読み終わると非受理状態にある よって、𝑀𝑀の受理状態と非受理状態を入れ替えたfaを𝑀𝑀𝑓とすると、

𝑀𝑀𝑓はΣ − 𝐿𝐿を認識する。

問題

以下の言語に認識する dfa の状態遷移図を書け。ただ し、アルファベットは {𝑎𝑎, 𝑏𝑏} とする ( 𝑤𝑤 ∈ 𝑎𝑎 , 𝑏𝑏

) 。

① 𝑤𝑤 | #

𝑎𝑎

𝑤𝑤 ≥ 3, かつ , #

𝑏𝑏

𝑤𝑤 ≥ 2

② 𝑤𝑤 | #

𝑎𝑎

𝑤𝑤 = 2, かつ , #

𝑏𝑏

𝑤𝑤 ≥ 2

③ 𝑤𝑤 |#

𝑎𝑎

𝑤𝑤 は偶数 , かつ , #

𝑏𝑏

𝑤𝑤 ∈ 1,2

④ {𝑤𝑤 |#

𝑎𝑎

𝑤𝑤 は偶数 , かつ ,

各々の 𝑎𝑎 は 𝑏𝑏 の直後にある }

① 𝑤𝑤 𝑤𝑤 は 𝑎𝑎 で始まり , かつ , #

𝑏𝑏

𝑤𝑤 ≤ 1}

② 𝑤𝑤 #

𝑎𝑎

𝑤𝑤 は奇数 , かつ , 𝑤𝑤 は 𝑏𝑏 で終わる }

③ 𝑤𝑤 | 𝑤𝑤 は偶数 , かつ , #

𝑎𝑎

𝑤𝑤 は奇数 ,

Hint :上記の言語は全て、 2 つのより簡単な言語の共通

部分である

3 . 非決定性有限オートマトン ( 1 )

今までのfa (決定性有限オートマトン dfa):

現在の状態と、読む入力記号から、一意的に次の状態が定まる。

非決定性有限オートマトン (nfa):

次の状態として二つ以上の可能性があってもよい。

例: (次の行先が無くてもよい)

𝑠𝑠

0 1

𝑠𝑠

1 0

𝑠𝑠

2

0,1

𝑠𝑠

3

1 0

𝑠𝑠

4 0

𝑠𝑠

5

3 . 非決定性有限オートマトン ( 2 )

定義:非決定性有限オートマトン (nfa) 𝑀𝑀 = 𝐾𝐾, Σ, 𝛿𝛿, 𝑠𝑠0, 𝐹𝐹

状態遷移関数𝛿𝛿がdfaと異なり、状態の集合への写像になる:

𝛿𝛿: 𝐾𝐾 × Σ → 2𝐾𝐾

2𝐾𝐾:べき集合( 𝐾𝐾の全ての部分集合からなる集合)

𝛿𝛿 𝑠𝑠0, 1 = 𝑠𝑠0, 𝑠𝑠1 , 𝛿𝛿 𝑠𝑠1, 1 = ∅, 𝛿𝛿 𝑠𝑠2, 0 = ∅, …など。

𝑠𝑠

0 1

𝑠𝑠

1 0

𝑠𝑠

2

0,1

𝑠𝑠

3

1 0

𝑠𝑠

4 0

𝑠𝑠

5

3 . 非決定性有限オートマトン ( 3 )

非決定性有限オートマトン (nfa) 𝑀𝑀 = 𝐾𝐾, Σ, 𝛿𝛿, 𝑠𝑠0, 𝐹𝐹 状態遷移関数𝛿𝛿: 𝐾𝐾 × Σ → 2𝐾𝐾 に対して、

写像𝛿𝛿𝑓: 𝐾𝐾 × Σ → 2𝐾𝐾を以下のように再帰的に定義する:

∀𝑠𝑠 ∈ 𝐾𝐾, ∀𝑥𝑥 ∈ Σ, ∀𝑎𝑎 ∈ Σに対して、

① 𝛿𝛿 𝑠𝑠, 𝜖𝜖 = 𝑠𝑠

② 𝛿𝛿 𝑠𝑠, 𝑥𝑥𝑎𝑎 = 𝑞𝑞 ∈ 𝐾𝐾 | ∃𝑝𝑝 ∈ 𝐾𝐾 𝑝𝑝 ∈ 𝛿𝛿𝑓 𝑠𝑠, 𝑥𝑥 かつ𝑞𝑞 ∈ 𝛿𝛿 𝑝𝑝, 𝑎𝑎

= �

𝑝𝑝∈𝛿𝛿 𝑠𝑠,𝑥𝑥

𝛿𝛿 𝑝𝑝, 𝑎𝑎 例

3 . 非決定性有限オートマトン ( 4 )

① 𝛿𝛿 𝑠𝑠, 𝜖𝜖 = 𝑠𝑠

② 𝛿𝛿 𝑠𝑠, 𝑥𝑥𝑎𝑎 = 𝑞𝑞 ∈ 𝐾𝐾 | ∃𝑝𝑝 ∈ 𝐾𝐾 𝑝𝑝 ∈ 𝛿𝛿𝑓 𝑠𝑠, 𝑥𝑥 かつ𝑞𝑞 ∈ 𝛿𝛿 𝑝𝑝, 𝑎𝑎

𝛿𝛿 𝑠𝑠0, 101 = 𝑞𝑞 ∈ 𝐾𝐾 ∃𝑝𝑝 ∈ 𝐾𝐾 𝑝𝑝 ∈ 𝛿𝛿 𝑠𝑠0, 10 ∧ 𝑞𝑞 ∈ 𝛿𝛿 𝑝𝑝, 1 } 𝛿𝛿 𝑠𝑠0, 10 = 𝑞𝑞 ∈ 𝐾𝐾 ∃𝑝𝑝 ∈ 𝐾𝐾 𝑝𝑝 ∈ 𝛿𝛿 𝑠𝑠0, 1 ∧ 𝑞𝑞 ∈ 𝛿𝛿 𝑝𝑝, 0 }

= 𝑞𝑞 ∈ 𝐾𝐾 ∃𝑝𝑝 ∈ 𝐾𝐾 𝑝𝑝 ∈ 𝑠𝑠0, 𝑠𝑠1 ∧ 𝑞𝑞 ∈ 𝛿𝛿 𝑝𝑝, 0 }

= 𝛿𝛿 𝑠𝑠0, 0 ∪ 𝛿𝛿 𝑠𝑠1, 0 = {𝑠𝑠0, 𝑠𝑠2}

𝛿𝛿 𝑠𝑠0, 101 = 𝑞𝑞 ∈ 𝐾𝐾 ∃𝑝𝑝 ∈ 𝐾𝐾 𝑝𝑝 ∈ {𝑠𝑠0, 𝑠𝑠2} ∧ 𝑞𝑞 ∈ 𝛿𝛿 𝑝𝑝, 1 }

= 𝛿𝛿 𝑠𝑠0, 1 ∪ 𝛿𝛿 𝑠𝑠2, 1 = {𝑠𝑠0, 𝑠𝑠1, 𝑠𝑠3}

3 . 非決定性有限オートマトン ( 5 )

𝛿𝛿 𝑠𝑠0, 1 = {𝑠𝑠0, 𝑠𝑠1}を

『𝑠𝑠0で1を読むと状態𝑠𝑠0と𝑠𝑠1のいずれにも行ける』 と解釈する。

𝛿𝛿 𝑠𝑠0, 101 = {𝑠𝑠0, 𝑠𝑠1, 𝑠𝑠3} は、

『𝑠𝑠0で101を読むと状態𝑠𝑠0と𝑠𝑠1と𝑠𝑠3のいずれにも行ける』 と解釈する。

𝛿𝛿 𝑠𝑠1, 1 = ∅は

『𝑠𝑠0で1を読むと行ける状態が存在しない』 と解釈する。

3 . 非決定性有限オートマトン ( 6 )

定義:非決定性有限オートマトン (nfa) 𝑀𝑀 = 𝐾𝐾, Σ, 𝛿𝛿, 𝑠𝑠0, 𝐹𝐹 と列𝑥𝑥に 対して、𝛿𝛿 𝑠𝑠0, 𝑥𝑥 ∩ 𝐹𝐹 ≠ ∅のとき、

つまり、𝛿𝛿 𝑠𝑠0, 𝑥𝑥 に少なくとも一つの受理状態が含まれるときに、

『𝑀𝑀は𝑥𝑥を受理する』と呼ぶ。

要するに、初期状態から列𝑥𝑥を読んである受理状態に到達すること ができるなら『受理』である。

例: 最後が“10100”で終わる列の全体を受理するオートマトン

𝑠𝑠

0 1

𝑠𝑠

1 0

𝑠𝑠

2

0,1

𝑠𝑠

3

1 0

𝑠𝑠

4 0

𝑠𝑠

5

ドキュメント内 数理論理 (ページ 123-200)

関連したドキュメント