形式文法と形式言語(1)
Download
Report
Transcript 形式文法と形式言語(1)
形式言語 と オートマト
第7回
鳥取大学工学研究科
情報エレクトロニクス専攻
田中美栄子
本日の予定
形式言語とオートマト
形式言語とオートマト
M 32 Q, , , , q0 , Z 0 , F
Q {q0 , q1 , q2 , q3 , q4 , q f }
{a, b, c}
{ A, Z 0 }
: Q ( { }) の部分集合 2
(q0 , a, Z 0 ) {( q0 , AZ 0 )}, (q0 , a, A) {( q0 , AA)},
(q0 , b, A) {( q1 , ), (q3 , A)}, (q1 , b, A) {( q1 , )},
(q1 , c, Z 0 ) {( q2 , Z 0 )}, (q2 , c, Z 0 ) {( q2 , Z 0 )},
(q2 , , Z 0 ) {( q f , Z 0 )}, (q3 , b, A) {( q3 , A)},
Q*
(q3 , c, A) {( q4 , )}, (q4 , c, A) {( q4 , )},
(q4 , , Z 0 ) {( q f , Z 0 )}
F {q f }
M 32 Q, , , , q0 , Z 0 , F
形式言語とオートマト
M 32 Q, , , , q0 , Z 0 , F
(q0 , a, Z 0 ) {( q0 , AZ0 )}, (q0 , a, A) {( q0 , AA)},
a,Z 0 /AZ 0
q0
a,A/AA
形式言語とオートマト
qf
M 32 Q, , , , q0 , Z 0 , F
(q0 , b, A) {( q1 , ), (q3 , A)}, (q1 , b, A) {( q1 , )},
a,Z 0 /AZ 0
b,A/ε
q0
q1
qf
b,A/A
a,A/AA
形式言語とオートマト
q3
M 32 Q, , , , q0 , Z 0 , F
(q1 , b, A) {( q1 , )}, (q1 , c, Z 0 ) {( q2 , Z 0 )},
b,A/ε
a,Z 0 /AZ 0
b,A/ε
q0
q1
形式言語とオートマト
q2
qf
b,A/A
a,A/AA
c,Z 0 /Z 0
q3
M 32 Q, , , , q0 , Z 0 , F
(q2 , c, Z 0 ) {( q2 , Z 0 )}, (q2 , , Z 0 ) {( q f , Z 0 )}
c,Z 0 /Z 0
b,A/ε
a,Z 0 /AZ 0
b,A/ε
q0
q1
形式言語とオートマト
q2
, Z0 / Z0
qf
b,A/A
a,A/AA
c,Z 0 /Z 0
q3
M 32 Q, , , , q0 , Z 0 , F
(q3 , b, A) {( q3 , A)}, (q3 , c, A) {( q4 , )},
c,Z 0 /Z 0
b,A/ε
a,Z 0 /AZ 0
b,A/ε
q0
q1
c,Z 0 /Z 0
q2
qf
b,A/A b,A/A
a,A/AA
形式言語とオートマト
q3
, Z0 / Z0
c,A/ε
q4
M 32 Q, , , , q0 , Z 0 , F
c,Z 0 /Z 0
b,A/ε
a,Z 0 /AZ 0
b,A/ε
q0
q1
b,A/A b,A/A
a,A/AA
形式言語とオートマト
q3
c,Z 0 /Z 0
q2
c,A/ε
c,A/ε
, Z0 / Z0
, Z0 / Z0
𝑞4
qf
M 32 Q, , , , q0 , Z 0 , F
𝑎𝑎𝑎𝑏𝑏𝑏𝑐𝑐 $
c,Z 0 /Z 0
b,A/ε
a,Z 0 /AZ 0
b,A/ε
q0
q1
b,A/A b,A/A
a,A/AA
形式言語とオートマト
q3
c,Z 0 /Z 0
q2
c,A/ε
c,A/ε
, Z0 / Z0
, Z0 / Z0
𝑞4
A A A Z0
qf
M 32 Q, , , , q0 , Z 0 , F
𝑎𝑎𝑎𝑏𝑏𝑐𝑐𝑐 $
c,Z 0 /Z 0
b,A/ε
a,Z 0 /AZ 0
b,A/ε
q0
q1
b,A/A b,A/A
a,A/AA
形式言語とオートマト
q3
c,Z 0 /Z 0
q2
c,A/ε
c,A/ε
, Z0 / Z0
, Z0 / Z0
q 24
𝑞
A A A Z0
qf
DPDAとNPDAの非同等性
有限オートマトンの場合,DFAとNFAは同等であ
り,つまり,言語の識別能力は差がなかった
しかし,PDAにおいては,NPDAとNPDAには
真に識別能力の差がある
例3.3と3.4
形式言語とオートマト
M 33の状態遷移図
DPDA
𝟎𝟎𝟏𝟎𝟏#𝟏𝟎𝟏𝟎𝟎 $
0, A /
1, B /
0, Z 0 / AZ0
1, Z 0 / BZ 0
q0
0, A / AA
0, B / AB
1, A / BA
1, B / BB
#, A / A
#, B / B
q1
, Z0 / Z0
q2
空
B A B A A Z0
M 33の状態遷移図
DPDA
𝟎𝟎𝟏𝟎𝟏#𝟏𝟎𝟏𝟎𝟎 $
0, A /
1, B /
0, Z 0 / AZ0
1, Z 0 / BZ 0
q0
#, A / A
#, B / B
q1
, Z0 / Z0
q2
記号#を見たときに状態を𝑞0 から𝑞1 に遷移する
0, A / AA
0, B / AB
1, A / BA
1, B / BB
つまり,このDPDAは#がない言語を受理でき
ない
L( M 33 ) {w# w R | w {0,1} }
M 34の状態遷移図
NPDA
𝟎𝟎𝟏𝟎𝟏𝟏𝟎𝟏𝟎𝟎 $
0, A /
1, B /
0, Z 0 / AZ0
1, Z 0 / BZ 0
q0
0, A / AA
0, B / AB
1, A / BA
1, B / BB
0, A /
1, B /
q1
, Z0 / Z0
q2
(q0 ,0, A) {( q0 , AA), (q1 , )},
(q0 ,1, B) {( q0 , BB ), (q1 , )},
空
B A B A A Z0
M 34の状態遷移図
NPDA
𝟎𝟎𝟏𝟎𝟏𝟏𝟎𝟏𝟎𝟎 $
0, A /
1, B /
0, Z 0 / AZ0
1, Z 0 / BZ 0
q0
0, A / AA
0, B / AB
1, A / BA
1, B / BB
0, A /
1, B /
q1
, Z0 / Z0
q2
このNPDAは#がない言語を受理できる
L( M 34 ) {wwR | w {0,1} }
非決定性PDAで判別できる入力
• 真ん中に#を入れない場合でも、
NPDAなら判別できる
• これはDPDAにはない能力である
形式言語とオートマト
形式言語とオートマト
オートマトンは計算機のモ
デル
オートマトン
は
計算機のモデ
ル
形式言語とオートマト
オートマトン
易
FSA
DFA
+
NFA
PDA
DPDA
+
NPDA
LBA
難
TM
形式言語とオートマト
学んだこと
オートマトン
DF
5字組
+
NFA
𝑴 =< 𝑸, 𝚺, 𝜹, 𝒒𝟎 , 𝑭 >
DPDA
+
NPDA
7字組
𝑴 =< 𝑸, 𝚺, Г, 𝜹, 𝒒𝟎 , 𝒁𝟎 , 𝑭 >
同等性 NFAをDFAに書き換える
非同等
DPDA処理できない言語ある
試験
試験
① 様相変化
② 7字組
状態遷移図
③ 受理状態の判定:
文字列+pd-スタック
① 様相変化
② 5字組
状態遷移図
③ NFAからDFAを構成:
アルゴリズム 2.1/2.2
形式言語とオートマト
練習
問1:下図の様相を示してください
…
y
b
有限制御部
状態
形式言語とオートマト
q
(𝑞, 𝑏𝑦)
$
練習
(𝑞, 𝑏𝑦, 𝑚𝛾𝑍0 )
問2:下図の様相を示してください
…
y
b
$
有限制御部
状態
q
m
形式言語とオートマト
Z0
問3:次の7字組で表されるDPDNに、入力aabbbbを読み込ませた
場合、様相変化を示せ。受理するか、受理しないかも示すこと
M Q, , , , q0 , Z 0 , F
Q {q0 , q1 , q2 }
{a, b}
{ A, Z 0 }
: Q ( { }) の部分集合 Q *
(q0 , a, Z 0 ) (q0 , AAZ0 ),
(q0 , a, A) (q0 , AAA),
(q0 , b, A) (q1 , ),
(q1 , b, A) (q1 , ),
(q1 , , Z 0 ) (q2 , Z 0 )
F {q2 }
練習
問3のAnswer
(q0 , aabbbb, Z 0 )
M (q0 , abbbb, AAZ0 )
M
(q1 , bbb, AAAZ0 )
M
(q1 , , Z 0 )
M (q1 , bb, AAZ0 )
M ( q2 , , Z 0 )
M
(q0 , bbbb, AAAAZ0 )
M
(q1 , b, AZ0 )
受理する
𝑍0 を忘れずに,最後に𝜀を忘れずに!!!
形式言語とオートマト
お疲れ様
小テストです
形式言語とオートマト