形式言語とオートマトン - iwate...

12
形式言語とオートマトン 2山中克久 講義URL: http://www.kono.cis.iwate-u.ac.jp/~yamanaka/Lecture/Automata/index.html

Upload: others

Post on 30-Dec-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

形式言語とオートマトン

第2回

山中克久

講義URL: http://www.kono.cis.iwate-u.ac.jp/~yamanaka/Lecture/Automata/index.html

Page 2: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

目次

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

l  次回,決定性有限オートマトンと非決定性有限オートマトンの関係をやります

Page 3: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

有限オートマトン

オートマトンの例

C言語 プログラムソース中のコメント部分を全て消したい

“/*” と “*/” で囲まれた部分をコメントとみなす

‘/’ 0 1

(1文字読み込むごとに状態が変化していくオートマトンを考える)

‘*’ 2

3

‘*’ ‘/’

その他の 文字(出力) その他の

文字(出力) その他の文字 (出力しない)

4 その他の文字 (出力しない)

EOF

Start

数学的に厳密な定義を与える 直感的には分かるんだけど…

Page 4: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

決定性有限オートマトンの定義

(1) 状態の有限集合(Qと書く) (2) 有限のアルファベット(Σと書く)

(3) 状態遷移関数(δと書く,δ: Q×Σ à Q)

(4) 開始状態(q0と書く)

(5) 受理状態の集合(Fと書く)

次の(1)~(5)を集めたものを決定性有限オートマトン(Deterministic Finite Automata, DFA)と呼ぶ

⇒ Qの中の1つ

⇒ Qの部分集合

(1)~(5)からなる5項組(Q, Σ, δ, q0, F)を決定性有限オートマトン(Deterministic Finite Automata, DFA)と呼ぶ

正確には

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

q1 q0

1

0 0

start

1

1を偶数回含む0-1の2進列を受理する

Page 5: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

DFA(決定性有限オートマトン)の例

(1) 状態の有限集合(Qと書く) (2) 入力記号の有限集合(Σと書く)

(3) 状態遷移関数(δと書く,δ: Q×Σ à Q)

(4) 開始状態(q0と書く)

(5) 受理状態の集合(Fと書く)

次の(1)~(5)を集めてきたものを決定性有限オートマトン(Deterministic Finite Automata, DFA)と呼ぶ 上の決定性有限オートマトンは

δ: q0 q1

q0 q1 q1 q0

0 1

q1 q0

1

0 0

start

1

({q0,q1}, {0,1}, δ, q0, {q0})

と書ける,ここで,δは以下の通り

δの状態遷移表 以下の遷移全てを表にまとめて書いたもの δ(q0,0)=q0,δ(q0,1)=q1,δ(q1,0)=q1,δ(q1,1)=q0

Page 6: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

受理する,受理しない

q1 q0

1

0 0

start

1

上の決定性有限オートマトンは以下の 系列を受理する? 受理しない?

0101 à 受理する 00111 à 受理しない ε à 受理する

Page 7: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

オートマトンが受理する言語

q1 q0

1

0 0

start

1

L(M1) = { w ∊ Σ* | w は 1 を偶数個含む }

オートマトンM1

※ Σ = {0,1} とする

0

1 0

start q0

1

0,1

q1 q2

オートマトンM2

L(M2) = { w ∊ Σ* | wは01を部分系列として含む }

オートマトンM1が受理する言語は,1 を偶数個含む系列からなる集合である.

L(M1) Σ*

L(M2)

Page 8: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

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

次の(1)-(5)からなる5項組 M = (Q,Σε,δ,q0,F) を 非決定性有限オートマトン(Non-deterministic Finite Automata, NFA)と呼ぶ

(1) Qは状態の有限集合

(2) (3)

(4) (5)

Σは,有限のアルファベット集合

q0 ∊ Q は開始状態

F⊆Q は受理状態の集合

δ: Q×Σε à P(Q) は状態遷移関数

DFA と NFA の違いは状態遷移関数だけ DFA の状態遷移関数: 状態を1つだけ返す NFA の状態遷移関数: 複数個の状態(状態の集合)を返す

δは,状態と入力記号を受け取ったとき, 状態の集合を返す関数

Σε=Σ∪{ε} P(Q): Qの冪集合

1

0,1

start q0

1

0,1

q1 q3 q2

1

Page 9: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

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

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

L(M) = { w ∊ Σ* | wは,111を部分系列として含む }

1

0,1

start q0

1

0,1

q1 q3 q2

1

オートマトンが系列 w 受理するかどうかの考え方

系列 w をオートマトン M に与えたとき,「受理状態で終わるような遷移」が1つでもあれば,M は w を受理するという

上の非決定性有限オートマトンは,系列 w = 11011101 を受理する なぜならば,以下の遷移をすれば受理状態で終了するから

1 q0 q0

1 q0

0 q0

1 q1

1 q2

1 q3

0 q3

1 q3

Page 10: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

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

ε

0 1

start q0

ε

2

q1 q2

※ Σ = {0,1,2} とする

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

L(M) = { 0i1j2k | i ≧ 0,j ≧ 0,k ≧ 0 }

0i1j2k : 0 が i 個連続して並んで,1 が j 個連続して並んで,2 が k 個連続して並んでいるような系列

上のオートマトンは 系列0012 を受理するか? à 以下のような状態の遷移が存在するから受理する

0 q0 q0

0 q0

ε q1

1 q1

ε q2

2 q2

※ ε は空系列という ε がついた辺は「遷移して もいいし,しなくてもいい」 意味する

Page 11: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

練習問題2-1

0

1

start q2

0

0,1

q1 q0

1

以下の決定性有限オートマトンどんな言語を受理するか? ただし,Σ = {0,1} とする

(b) q0

q2

q1 0

1

Start

1

0 1

0

(a)

以下の言語を受理する決定性有限オートマトンの 状態遷移図を書け.ただし,Σ = {0,1} とする.

(1) { w | w は 101 を部分系列として含む} (2) { w | w の最後から3番目の文字は 1 である}

練習問題2-2

Page 12: 形式言語とオートマトン - Iwate Universityyamanaka/Lecture/Automata/...マトン(Deterministic Finite Automata, DFA)と呼ぶ 正確には 決定性有限 オートマトンの例:

練習問題2-3

以下の非決定性有限オートマトンどんな言語を受理するか? ただし,Σ = {0,1} とする

0

1

start q2 ε

q0

q1

0

1

1

0

q3 q4

1

0

ε

練習問題2-4

以下の言語を受理する非決定性有限オートマトンの 状態遷移図を書け.ただし,Σ = {0,1} とする.

{ w | w は 101 を部分系列として含む}