オートマトンと言語 7回目6月2日 有限オートマトンと正規表現
教科書88ページから104ページ
先週の小テスト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
先週の小テスト2 例題4.1の答え1
T-フリップフロップ
1
1
0 0
0 1
先週の小テスト2 例題4.1の答え2
JK-フリップフロップ
(01),(11)
(10),(11)
(00),(10)
(00),(01)
0 1
先週の小テスト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
先週の小テスト4 例題4.4b 答え
0 01 11
0/0
1/1
0/0
1/1
0/0
1/0
4.2 有限オートマトン
有限オートマトン
有限オートマトンと言語の認識
有限オートマトン(FA)のモデル入力テープ
z + 2-y /w *
読み取りヘッド
有限状態部
受理状態(最終状態)非受理状態
受理する,受理しない
入力文字列が終わったとき
状態が受理状態なら 入力語を受理する
状態が非受理状態なら 入力語を受理しない
有限オートマトンの定義
内部状態の有限集合 Q入力アルファベット Σ
状態遷移関数 δ:QxΣ→Q初期状態 S∈Q最終状態 F⊂Q
4.2.1 有限オートマトン状態遷移関数δ(q,x)で遷移を記述
FAの停止と受理およびエラー状態最後の文字を読み込んで停止した時の状態が最終状態ならその語は受理される
入力記号以外の文字を読み込んだり状態遷移関数で未定義の組み合わせの場合:エラー状態になる
状態遷移図状態を節点に対応させ,状態遷移を有向辺に対応させたグラフ
受理言語有限オートマトンMの受理するすべての語の集合をMの受理する語といい,L(M)で表す
例題4.7 a
ε
b
a
a
S1 S2 S3
b
例題4.7 a 答え
εbaεbbaaab+a+
ε
b
a
a
S1 S2 S3
b
例題4.7 b
a,b
ε b
q0 q1 q2
a
例題4.7 b 答え
εabεabbabab{a,b}*
a,b
ε b
q0 q1 q2
a
小テスト1 例題4.7 c,d
小テスト1 例題4.7 c 答え
ε100ε110101*00*(11*0)*0* -> 1*0+(1+0)*0*
小テスト1 例題4.7 d 答え
ε011ε1{(01)*,(10)*}1
有限オートマトンと言語の認識
ある言語Lに対して,あるオートマトンがLに属するすべての語を受理し,かつ,Lに属さないすべての語を受理しないとき,
そのオートマトンは言語Lを受理するという.
例題4.10 a
ε
0
1
0
q0 q1
1
例題4.10 a-1 答え
Q={q0,q1}, Σ={0,1}, S=q0, F={q1}
q0q1q1
q1q0q0
10δ
例題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を奇数個含む語からなる言語
小テスト2 例題4.10 b
ε
0
1
0
q0 q1
1
小テスト2 例題4.10 b-1 答え
Q={q0,q1}, Σ={0,1}, S=q0, F={q0}
q0q1q1
q1q0q0
10δ
小テスト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を偶数個含む語からなる言語
正規表現
正規表現の定義と性質
正規表現の定義
正規表現の性質
有限オートマトンの受理する言語の正規表現
正規表現の定義
①φは正規表現である 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*:言語の閉包③以上の手続きによって得られるものだけが正規表現である
小テスト3 例題4.15 d e f k
小テスト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
正規言語の性質 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
正規言語の性質 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
正規言語の性質 3
stxtxsxstxxtsx
tLtsx
* *
)(
,,
=+=
=+=
∉
ならば
ならば
.つぎの性質が成立する
とすると
が正規表現のとき,
ε
小テスト4 例題4.20 a, b, c
x=0+x0x=00+11+x0+x1x=01+x0*1
小テスト4の答え例題4.20 a, b, c
a : x=00*b : x=(00+11)(0+1)*c : x=01(0*1)*
有限オートマトンの受理する言語の正規表現
例題4.22a
q2q0 q1
ε 0 1
正規表現:01
例題4.23 a
q0 q1
0,10
ε 1
正規表現:0*1(0+1)*
小テスト5 例題4.23 bc
小テスト5の答えb例題4.23 b
q0
q2
11
0
q0
0
1
ε
正規表現:00*11*+11* -> (00*1+1)1*
小テスト5の答えc例題4.23 c
q0 q1
00
1
ε 1
正規表現:(0*10*1)*0*10*
qiで受理される言語
DFAにおける任意の状態qiに対して,ある語の入力終了時にqiで停止するとき,qiはその語を受理したという.
qiで受理される語の集合をqiで受理される言語という
例題4.25
例題4.26 a
練習問題 例題4.27 a