形式文法と形式言語(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 / AZ 0
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 / AZ 0
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 / AZ 0
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 / AZ 0
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 を忘れずに,最後に𝜀を忘れずに!!!
形式言語とオートマト
お疲れ様
小テストです
形式言語とオートマト