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

代表的な計算モデル • 有限オートマトン (有限状態機械 ... - pweb

N/A
N/A
Protected

Academic year: 2024

シェア "代表的な計算モデル • 有限オートマトン (有限状態機械 ... - pweb"

Copied!
46
0
0

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

全文

(1)

代表的な計算モデル

有限オートマトン

(有限状態機械, finite automaton)

プッシュダウンオートマトン

チューリングマシン

—電子計算機概論I 1—

(2)

有限オートマトンの形式的定義 M = (Q,Σ, δ, s, F) ここに、

• Q : 有限集合 · · · 状態の集合

Σ : 有限集合 · · · 入力文字の集合

“alphabet”

δ :Σ→Q : 遷移関数

s∈Q · · · 初期状態

F ⊂Q · · · 受理状態の集合

(3)

語・言語

Σ : 入力文字の有限集合 · · · alphabet 入力は Σ の元の有限列(, word)

w=a1a2· · ·an (ai Σ) その全体 Σ

Σ :=

[ n=0

Σn0 ={ε}:空列) 言語(language) : Σ の部分集合

言語 A⊂Σ に属する語 w∈A

· · · 言語 A に於いて“文法的に正しい”

—電子計算機概論I 3—

(4)

有限オートマトンによる語の受理

有限オートマトン M = (Q,Σ, δ, s, F) が 語 w=a1a2· · ·an を受理(accept)する

m

∃r0, r1, . . . , rn∈Q:

r0 =s

δ(ri1, ai) = ri (i= 1, . . . , n)

rn∈F

L(M) : M が受理する語の全体 Σ

· · · M が認識(recognize)する言語 M は言語 L(M) の文法で、

M が受理する語は“文法的に正しい”

(5)

演習問題

Σ ={a, b} とする。

次の言語を認識する有限オートマトンを構成し、

状態遷移図で表せ (1) A={a2nb2m+1 n, m≥0}

(a が偶数個( 0 個も可)続いた後に、

b が奇数個続く) (2) B ={vabbaaw|v, w∈Σ}

(部分列として abbaa を含む)

—電子計算機概論I 5—

(6)

演習問題

ちょっとしたコツ(tips):

「後に続く文字列が何だったら受理か」が

全く同じ状態は一つの状態にまとめられる

これが違う状態はまとめられない

(違う状態として用意する必要あり)

(7)

有限オートマトンでの計算可能性問題

言語 A⊂Σ に対し、

A を認識する有限オートマトン M が存在するか ?

有限オートマトンによって

認識可能な言語はどのようなものか ?

−→ 正規言語・正規表現

—電子計算機概論I 7—

(8)

語の演算

v =a1· · ·ak, w =b1· · ·bl Σ に対し vw:=a1· · ·akb1· · ·bl

: 連結・連接 (concatnation) 連接演算により Σ は単位的自由半群を成す

S = (S,·) : 半群(semigroup) m

·:S×S−→S : 二項演算で結合律を満たす

(9)

正規演算

言語 A, B Σ に対し、

A∪B :={w|w∈Aまたはw∈B} : 和集合演算

AB =A◦B :={vw|v ∈A, w∈B} : 連結(連接)演算

A :={w1w2· · ·wn|n 0, wi ∈A}

: star演算 (言語全体の集合 P) 上の演算)

—電子計算機概論I 9—

(10)

正規表現(regular representation)

alphabet a Σ は正規表現

空列 ε は正規表現

• 空集合 ∅ は正規表現

正規表現 R, S に対し

(R∪S) は正規表現 ((R|S) とも書く)

正規表現 R, S に対し

(R◦S) は正規表現 ((RS) とも書く)

正規表現 R に対し R は正規表現

以上のものだけが正規表現

· · · 帰納的導出による定義

(11)

正規言語(regular language)

正規表現 R に対し、言語 L(R) を次で定める。

L(a) ={a}

L(ε) ={ε}

L() =

L(R∪S) =L(R)∪L(S)

L(R◦S) =L(R)◦L(S)

L(R) =L(R)

正規表現で表される言語 · · · 正規言語

—電子計算機概論I 11—

(12)

定理:

L : 正規言語 m

L が或る有限オートマトンで認識される このような一般論を考えるには、

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

少し一般化する方が良い

· · · 非決定性有限オートマトン

(13)

「非決定性」とは · · · あてずっぽう有り 状態の遷移先を一意に決めない

(幾つかあって分岐していく)

−→ どれかが受理すればOK!!

手分けをして誰かが受理出来れば良い

• どの道を辿れば良いか知っていて、

受理が検証出来れば良い と考えることも出来る

—電子計算機概論I 13—

(14)

非決定性有限オートマトンの形式的定義 M = (Q,Σ, δ, s, F)

ここに、

• Q : 有限集合 · · · 状態の集合

Σ : 有限集合 · · · alphabet, Σε := Σ∪ {ε}

δ :Σε→P(Q): 遷移関数

· · · 可能な遷移先全体の集合

s∈Q · · · 初期状態

F ⊂Q · · · 受理状態の集合

(15)

非決定性有限オートマトンによる語の受理 非決定性有限オートマトン

M = (Q,Σ, δ, s, F)

が、語 w を受理する m

∃a1, a2,· · · , an Σε : w=a1a2· · ·an

∃r0, r1, . . . , rn ∈Q:

r0 =s

ri ∈δ(ri1, ai) (i= 1, . . . , n)

rn∈F

L(M) : M が受理する語の全体

· · · M が認識する言語

—電子計算機概論I 15—

(16)

非決定性有限オートマトンによる語の受理

ri ∈δ(ri1, ε) とは、

「入力を読まずに

 状態ri1から状態riに移って良い」

ということ

δ(ri1, ai) = (矢印が出ていない)

ということもある

−→ 受理されない分岐の

行き止まりに入ってしまった

−→ 他の分岐が生きていれば問題無し

(17)

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

(状態遷移図による表示)

q0 q1 q5

a b a

a,b

q2 q3

a

b q4

a,b

—電子計算機概論I 17—

(18)

定理:

L が或る(決定性)有限オートマトンで

認識される m

L が或る非決定性有限オートマトンで 認識される 非決定性有限オートマトン M に対し、

L(M) を認識する

決定性有限オートマトン M0

構成できる

(19)

定理:

L : 正規言語 m

L が或る有限オートマトンで認識される m

L が或る非決定性有限オートマトンで 認識される

—電子計算機概論I 19—

(20)

正規言語:

L(a) ={a}

L(ε) ={ε}

L() =

L(R∪S) =L(R)∪L(S)

L(R◦S) =L(R)◦L(S)

L(R) =L(R) 言語 A, B を認識する

非決定性有限オートマトンから、

言語 A∪B, A◦B, A を認識する 非決定性有限オートマトンが

構成できれば良い(それは比較的容易)

(21)

A∪B を認識する

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

q0 ε ε

NFArecognizing A

NFA

recognizing B

—電子計算機概論I 21—

(22)

有限オートマトンでの計算可能性問題

言語 A⊂Σ に対し、

A を認識する有限オートマトン M が存在するか ?

有限オートマトンによって

認識可能な言語はどのようなものか ?

−→ 正規言語・正規表現

非決定性有限オートマトンで認識できない 言語が存在する!!

(⇐⇒ 正規でない言語が存在する)

(23)

有限オートマトンでの計算可能性問題 非決定性有限オートマトンで認識できない

言語が存在する!!

(⇐⇒ 正規でない言語が存在する): A ={anbn n 0}

(ab との個数が同じ) 証明は部屋割り論法

(の一種のpumping lemma)

による

—電子計算機概論I 23—

(24)

Pumping Lemma(注入補題・反復補題) 正規言語 A に対し、

∃n∈N :

∀w∈A,|w| ≥n:

∃x, y, z Σ :w=xyz (1) y6=ε

(2) |xy| ≤n

(3) ∀k≥0 :xykz ∈A

(25)

より強力な計算モデルが必要

プッシュダウンオートマトン

チューリングマシン

—電子計算機概論I 25—

(26)

より強力な計算モデルが必要

• プッシュダウンオートマトン

チューリングマシン

(27)

: “文法的に正しい数式とは

どのようなものか? 簡単のため二項演算子のみ考えることにすれば、

単独の文字(変数名)は式

• 式と式とを演算子で繋いだものは式

式を括弧で括ったものは式

それだけ

−→ これは式を作り出す規則とも考えられる

—電子計算機概論I 26—

(28)

例: “文法的に正しい”数式とは

どのようなものか? 簡単のため二項演算子のみ考えることにすれば、

単独の文字(変数名)は式

式と式とを演算子で繋いだものは式

式を括弧で括ったものは式

• それだけ

−→ これは式を作り出す規則とも考えられる

(29)

: “文法的に正しい数式とは

どのようなものか? 簡単のため二項演算子のみ考えることにすれば、

単独の文字(変数名)は式

• 式と式とを演算子で繋いだものは式

式を括弧で括ったものは式

それだけ

−→ これは式を作り出す規則とも考えられる

—電子計算機概論I 26—

(30)

“文法的に正しい”数式

初期記号(開始変数) E から出発して、

次の規則のいづれかを

非決定的に適用して得られるもの のみ

E →A

E →EBE

E (E)

• A→変数名のどれか

B 演算子のどれか

変数名・演算子・(・) は

それ以上書換えない(終端記号)

−→ 生成規則(書換規則)

(31)

文法的に正しい数式

初期記号(開始変数) E から出発して、

次の規則のいづれかを

非決定的に適用して得られるもの のみ

E →A

E →EBE

E (E)

A→変数名のどれか

• B →演算子のどれか

変数名・演算子・(・) は

それ以上書換えない(終端記号)

−→ 生成規則(書換規則)

—電子計算機概論I 27—

(32)

生成規則・生成文法

生成規則を与えることでも

言語を定めることが出来る

−→ 生成文法(generative grammar) 生成規則による正しい語の生成

初期変数を書く

今ある文字列中の或る変数を 生成規則のどれかで書換える

• 変数がなくなったら終わり

(33)

: {a2nb2m+1 n, m≥0}

(a が偶数個( 0 個も可)続いた後に、

b が奇数個続く) 正規表現で表すと、(aa)b(bb)

S→aaS

S→bB

B →bbB

B →ε

まとめて次のようにも書く

S→aaS bB

B →bbB ε

—電子計算機概論I 29—

(34)

: {a2nb2m+1 n, m≥0}

(a が偶数個( 0 個も可)続いた後に、

b が奇数個続く) 正規表現で表すと、(aa)b(bb)

S→aaS

S→bB

B →bbB

B →ε

まとめて次のようにも書く

S→aaS bB

B →bbB ε

(35)

: {a2nb2m+1 n, m≥0}

(a が偶数個( 0 個も可)続いた後に、

b が奇数個続く) 正規表現で表すと、(aa)b(bb)

S→aaS

S→bB

B →bbB

B →ε

まとめて次のようにも書く

S→aaS bB

B →bbB ε

—電子計算機概論I 29—

(36)

生成規則・生成文法

実際の(自然言語を含めた)“文法では、

或る特定の状況で現われた場合だけ 適用できる規則もあるだろう そのような生成規則は例えば次の形:

uAv →uwv

u, v Σ : 文脈(context)

変数 AuAv の形で現われたら、

w∈Σ で書換えることが出来る

(37)

生成規則・生成文法

実際の(自然言語を含めた)“文法では、

或る特定の状況で現われた場合だけ 適用できる規則もあるだろう そのような生成規則は例えば次の形:

uAv →uwv

u, v Σ : 文脈(context)

変数 AuAv の形で現われたら、

w∈Σ で書換えることが出来る

—電子計算機概論I 30—

(38)

生成文法の形式的定義

V : 有限集合 (変数の集合)

Σ : 有限集合 (終端記号の集合)

ここに V Σ =

R : 有限集合(V Σ)×(V Σ) (規則の集合)

S ∈V : 開始変数

(v, w)∈R が生成規則 v →w を表す

(39)

文脈自由文法(context-free grammar) 文脈が全て空列 ε

即ち、規則が全て A→w (A∈V) の形 文脈自由文法の形式的定義

• V : 有限集合 (変数の集合)

Σ : 有限集合 (終端記号の集合) ここに V Σ =

R : 有限集合⊂V ×(V Σ)

(規則の集合)

S ∈V : 開始変数

(A, w)∈R が生成規則 A→w を表す

—電子計算機概論I 32—

(40)

文脈自由文法(context-free grammar) 文脈が全て空列 ε

即ち、規則が全て A→w (A∈V) の形 文脈自由文法の形式的定義

• V : 有限集合 (変数の集合)

Σ : 有限集合 (終端記号の集合) ここに V Σ =

R : 有限集合⊂V ×(V Σ)

(規則の集合)

S ∈V : 開始変数

(A, w)∈R が生成規則 A→w を表す

(41)

: 言語 A={anbn n 0}

正規言語ではないが文脈自由言語である:

S→aSb ε

従って、

文脈自由言語は正規言語より真に広い!!

さて、正規言語を計算するモデルが

有限オートマトンであった 文脈自由言語を計算するモデル

· · · プッシュダウンオートマトン

—電子計算機概論I 33—

(42)

: 言語 A={anbn n 0}

正規言語ではないが文脈自由言語である:

S→aSb ε 従って、

文脈自由言語は正規言語より真に広い!!

さて、正規言語を計算するモデルが

有限オートマトンであった 文脈自由言語を計算するモデル

· · · プッシュダウンオートマトン

(43)

: 言語 A={anbn n 0}

正規言語ではないが文脈自由言語である:

S→aSb ε 従って、

文脈自由言語は正規言語より真に広い!!

さて、正規言語を計算するモデルが

有限オートマトンであった 文脈自由言語を計算するモデル

· · · プッシュダウンオートマトン

—電子計算機概論I 33—

(44)

: 言語 A={anbn n 0}

正規言語ではないが文脈自由言語である:

S→aSb ε 従って、

文脈自由言語は正規言語より真に広い!!

さて、正規言語を計算するモデルが

有限オートマトンであった 文脈自由言語を計算するモデル

· · · プッシュダウンオートマトン

(45)

: 言語 A={anbn n 0}

正規言語ではないが文脈自由言語である:

S→aSb ε 従って、

文脈自由言語は正規言語より真に広い!!

さて、正規言語を計算するモデルが

有限オートマトンであった 文脈自由言語を計算するモデル

· · · プッシュダウンオートマトン

—電子計算機概論I 33—

(46)

プッシュダウンオートマトン

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

プッシュダウンスタックを取り付けたもの

a b

a b

a

c b

a

a d

a push a push b push c pop pop push d

無限(非有界)の情報を保持できるが、

読み書きは先頭だけ

· · · LIFO (Last In First Out)

参照

関連したドキュメント

solvability result means that 1. $5\mathrm{Q}\mathrm{F}\mathrm{A}’ \mathrm{s}$ can accept some languages that cannot be recognized by any $1\mathrm{S}\mathrm{A}’ \mathrm{s}$ ;

[r]

[r]

定理 : NFA で受理できる言語のクラスと、 DFA

[r]

定理: NFAで受理できる言語のクラスと、DFAで受理で きる言語のクラスは一致する。.

Finite automata with ε-transition (ε-NFA) – We allow ‘an empty word ε’ as an input.. In

定理: NFAで受理できる言語のクラスと、DFAで受理で きる言語のクラスは一致する。.