オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン...

44
オートマトンと言語 7回目 62有限オートマトンと正規表現 教科書88ページから104ページ

Upload: others

Post on 31-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

オートマトンと言語 7回目6月2日 有限オートマトンと正規表現

教科書88ページから104ページ

Page 2: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

先週の小テスト1 例題3.54の答えMWGC-

GC-MW- WC-MG- WG-MC-

WC-M-G

C-MW-G W-MC-G

C-MG-W C-M-GW W-M-GCW-MG-C

G-MC-W GC-M-W W-M-CG

G-M-WC G-MW-C-GM-WC

-GMWC

W-MC-G

Page 3: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

先週の小テスト2 例題4.1の答え1

T-フリップフロップ

1

1

0 0

0 1

Page 4: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

先週の小テスト2 例題4.1の答え2

JK-フリップフロップ

(01),(11)

(10),(11)

(00),(10)

(00),(01)

0 1

Page 5: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

先週の小テスト3 例題4.3b 答え1 aababaabba

q0-q1-q2-q1-q2-q1-q2-q0-q2-q1-q2xyzyzyzyzy

2 bbaabbaaq0-q2-q1-q2-q0-q2-q1-q2-q0yzyzyzyz

3 abaaabbabq0-q1-q0-q1-q2-q0-q2-q1-q2-q1xxxyzyzyy

4 bababbabbq0-q2-q0-q2-q0-q2-q1-q2-q1-q0yzyzyzyzx

Page 6: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

先週の小テスト4 例題4.4b 答え

0 01 11

0/0

1/1

0/0

1/1

0/0

1/0

Page 7: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

4.2 有限オートマトン

有限オートマトン

有限オートマトンと言語の認識

Page 8: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

有限オートマトン(FA)のモデル入力テープ

z + 2-y /w *

読み取りヘッド

有限状態部

受理状態(最終状態)非受理状態

Page 9: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

受理する,受理しない

入力文字列が終わったとき

状態が受理状態なら 入力語を受理する

状態が非受理状態なら 入力語を受理しない

Page 10: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

有限オートマトンの定義

内部状態の有限集合 Q入力アルファベット Σ

状態遷移関数 δ:QxΣ→Q初期状態 S∈Q最終状態 F⊂Q

Page 11: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

4.2.1 有限オートマトン状態遷移関数δ(q,x)で遷移を記述

FAの停止と受理およびエラー状態最後の文字を読み込んで停止した時の状態が最終状態ならその語は受理される

入力記号以外の文字を読み込んだり状態遷移関数で未定義の組み合わせの場合:エラー状態になる

状態遷移図状態を節点に対応させ,状態遷移を有向辺に対応させたグラフ

受理言語有限オートマトンMの受理するすべての語の集合をMの受理する語といい,L(M)で表す

Page 12: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.7 a

ε

b

a

a

S1 S2 S3

b

Page 13: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.7 a 答え

εbaεbbaaab+a+

ε

b

a

a

S1 S2 S3

b

Page 14: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.7 b

a,b

ε b

q0 q1 q2

a

Page 15: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.7 b 答え

εabεabbabab{a,b}*

a,b

ε b

q0 q1 q2

a

Page 16: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト1 例題4.7 c,d

Page 17: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト1 例題4.7 c 答え

ε100ε110101*00*(11*0)*0* -> 1*0+(1+0)*0*

Page 18: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト1 例題4.7 d 答え

ε011ε1{(01)*,(10)*}1

Page 19: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

有限オートマトンと言語の認識

ある言語Lに対して,あるオートマトンがLに属するすべての語を受理し,かつ,Lに属さないすべての語を受理しないとき,

そのオートマトンは言語Lを受理するという.

Page 20: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.10 a

ε

0

1

0

q0 q1

1

Page 21: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.10 a-1 答え

Q={q0,q1}, Σ={0,1}, S=q0, F={q1}

q0q1q1

q1q0q0

10δ

Page 22: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.10 a-2,3,4 答え

w1のとき, 0 0 1 0 1 1q0→q0→q0→q1→q1→q0→q1

w2のとき, 1 0 1 1 0 1 1 1 0q0→q1→q1→q0→q1→q1→q0→q1→q0→q0

w1は受理される w2は受理されない

1を奇数個含む語からなる言語

Page 23: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト2 例題4.10 b

ε

0

1

0

q0 q1

1

Page 24: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト2 例題4.10 b-1 答え

Q={q0,q1}, Σ={0,1}, S=q0, F={q0}

q0q1q1

q1q0q0

10δ

Page 25: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト2例題4.10 b-2,3,4 答え

w1のとき, 0 0 1 0 1 1q0→q0→q0→q1→q1→q0→q1

w2のとき, 1 0 1 1 0 1 1 1 0q0→q1→q1→q0→q1→q1→q0→q1→q0→q0

w1は受理されない w2は受理される

1を偶数個含む語からなる言語

Page 26: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

正規表現

正規表現の定義と性質

正規表現の定義

正規表現の性質

有限オートマトンの受理する言語の正規表現

Page 27: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

正規表現の定義

①φは正規表現である L(φ)=空言語εは正規表現である L(ε)={ε}A∈Σならば,aは正規表現である. L(a)={a}②r,sが正規表現ならば L(r)=R, L(s)=Sとすると和 (r+s)は正規表現である. L((r+s))=R∪S:言語の和積 (rs)は正規表現である. L((rs))=RS : 言語の積閉包 (r*)は正規表現である. L((r*))=R*:言語の閉包③以上の手続きによって得られるものだけが正規表現である

Page 28: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト3 例題4.15 d e f k

Page 29: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト3の答え例題4.15 d e f k

d : 0 または1を0回以上繰り返すe : 最初に0を0回以上繰り返し,次に1を0回以上繰り返す

f :最初に0を0回以上繰り返し,次に1を0回以上繰り返す文字列を0回以上繰り返すk : 最初に0 次に0か1か2を0回以上繰り返し最後に2

Page 30: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

正規言語の性質 1

r,s,tを正規表現として交換律 r + s = s + r結合律 (r + s) + t = r + (s + t)

(rs)t = r(st)べき等律 r + r = r分配律左分配律 r(s + t) = rs + rt右分配律 (r + s) t = rt + st

Page 31: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

正規言語の性質 2

単位元 r+φ=r rε=εr rφ=φr=φスター演算に関する性質φ*=εr*=(r*)*=(ε+r)*=ε+rr*=ε+r*r=r*r*(r+s)*=(r*s*)*=(r*s)*r*=r*(sr*)*=r*+r*s(r+s)*

=(r*s)*+(s*r)*(rs)*r=r(sr)* (rs+r)*r=r(sr+r)*(r*s)*=ε+(r+s)*s (rs*t)*=ε+r(s+tr)*t

Page 32: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

正規言語の性質 3

stxtxsxstxxtsx

tLtsx

* *

)(

,,

=+=

=+=

ならば

ならば 

.つぎの性質が成立する

とすると

が正規表現のとき,

ε

Page 33: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト4 例題4.20 a, b, c

x=0+x0x=00+11+x0+x1x=01+x0*1

Page 34: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト4の答え例題4.20 a, b, c

a : x=00*b : x=(00+11)(0+1)*c : x=01(0*1)*

Page 35: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

有限オートマトンの受理する言語の正規表現

Page 36: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.22a

q2q0 q1

ε 0 1

正規表現:01

Page 37: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.23 a

q0 q1

0,10

ε 1

正規表現:0*1(0+1)*

Page 38: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト5 例題4.23 bc

Page 39: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト5の答えb例題4.23 b

q0

q2

11

0

q0

0

1

ε

正規表現:00*11*+11* -> (00*1+1)1*

Page 40: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

小テスト5の答えc例題4.23 c

q0 q1

00

1

ε 1

正規表現:(0*10*1)*0*10*

Page 41: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

qiで受理される言語

DFAにおける任意の状態qiに対して,ある語の入力終了時にqiで停止するとき,qiはその語を受理したという.

qiで受理される語の集合をqiで受理される言語という

Page 42: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.25

Page 43: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

例題4.26 a

Page 44: オートマトンと言語 - 山梨大学ysuzuki/public/automaton/...4.2.1 有限オートマトン 状態遷移関数 δ(q,x)で遷移を記述 FAの停止と受理およびエラー状態

練習問題 例題4.27 a