Transcript こちら

決定性プッシュダウンオートマトン
M  Q, , ,  , q0 , Z0 , F 
Q
状態の有限集合

 (q,  , Y ) が定義されているときは,
入力記号の有限集合
どの a に対しても,
 (q, a, Y ) は定義されていない。
プッシュダウン記号の有限集合

動作関数

(動作の決定性が保証される。)
 : Q  ( { }) の部分集合 Q  *
q0
初期状態
q0 Q
Z0
ボトムマーカー
Z0  
F
受理状態の有限集合
F Q
決定性プッシュダウンオートマトンの
1ステップの動作(1)
…
a
x
 (q, a, Y )  ( p, )
有限制御部
q
状態
Y
$
のとき

Z0
…
a
x
$
有限制御部
状態
に遷移する。
p


Z0
決定性プッシュダウンオートマトンの
1ステップの動作(2)
…
a
x
 (q,  , Y )  ( p, )
有限制御部
q
状態
Y
$
のとき

Z0
…
a
x
$
有限制御部
状態
に遷移する。
p


Z0
(q0 , a1a2a3...an , Z0 )
初期様相
a1 a2 a3
有限制御部
状態
q0
Z0
…
an $
 (q0 , a1, Z0 )  (q1,1Z0 )
(q1, a2a3...an ,1Z0 )
次の様相
a1 a2 a3
…
有限制御部
状態
q1
1
Z0
an $
以下,ステップを繰り返して,
動作停止時の様相
a1 a2 a3
…
(qn ,  ,n Z0 )
qn  F

 n  
an $
のとき,
有限制御部
状態
入力語を受理。
qn
n
Z0
M31  Q, , ,  , q0 , Z0 , F 
Q  {q0 , q1, q2}
  {a, b}
  {A, Z0 }
 : Q  ( { }) の部分集合 Q  *
 (q0 , a, Z0 )  (q0 , AZ0 ),
 (q0 , a, A)  (q0 , AA),
 (q0 , b, A)  (q1 ,  ),
 (q1 , b, A)  (q1 ,  ),
 (q1 ,  , Z0 )  (q2 , Z0 )
F  {q2}
M31の状態遷移図
q0{F
Q
q0q, 0{
q1q,2q}2}
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
 (q(0q,(aq
,)(A
) ))2), Z0 )
,0qZa,(1b0,q,),A
),q
)q0(1,
)Z0(,q0(AZ
q,0AA
0(
1b,A
1(,q
q2
入力語aaabbbに対するM31の動作
a a a b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
Z0
q2
a a a b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A Z0
q2
a a a b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A Z0
q2
a a a b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A A Z0
q2
a a a b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A Z0
q2
a a a b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A Z0
q2
a a a b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
Z0
q2
a a a b b b $
a, Z0 / AZ0
入力語を読み終えたとき,
受理状態に遷移し,その時
プッシュダウンスタックは
空(ボトムマーカーのみ)
なので,M31 は入力語
aaabbb を受理する。
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
Z0
q2
入力語aaabbに対するM31の動作
a a a b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
Z0
q2
a a a b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A Z0
q2
a a a b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A Z0
q2
a a a b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A A Z0
q2
a a a b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A Z0
q2
入力語は読み終えた
が,受理状態ではなく,
プッシュダウンスタック
も空ではない。これ以
上遷移できないので
M31 は入力語 aaabb
を拒否する。
a a a b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A Z0
q2
入力語aaabbbbに対するM31の動作
a a a b b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
Z0
q2
a a a b b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A Z0
q2
a a a b b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A Z0
q2
a a a b b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A A Z0
q2
a a a b b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A A Z0
q2
a a a b b b b $
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
A Z0
q2
a a a b b b b $
a, Z0 / AZ0
入力語を読み終えること
ができない(これ以上遷
移できない)ので,M31
は入力語 aaabbbb を拒
否する。
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
a, A / AA
Z0
q2
同様に,
・ M31 は,a だけから成る入力語は読み終
えることはできるが,読み終えて遷移する状
態は受理状態ではなく,かつその時のプッ
シュダウンスタックは空でない。
また,
・いくつかの a の後にいくつかの b が来て
さらに a が来るような入力語,
・ b から始まる入力語
は,いずれも M31 はその入力語を読み終え
ることができない。
a, Z0 / AZ0
b, A / 
q0
b, A / 
q1
 , Z0 / Z0
q2
a, A / AA
よって,
L(M31)  {a b | n  1}
n n
である。