決定性プッシュダウンオートマトン
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 Z 0 )
q n F
n
an $
のとき,
有限制御部
状態
入力語を受理。
qn
n
Z0
M 31 Q, , , , q0 , Z0 , F
Q {q0 , q1 , q2}
{a, b}
{A, Z0 }
: Q ( { }) の部分集合 Q *
(q0 , a, Z 0 ) (q0 , AZ0 ),
(q0 , a, A) (q0 , AA),
(q0 , b, A) (q1 , ),
(q1 , b, A) (q1 , ),
(q1 , , Z 0 ) (q2 , Z 0 )
F {q2 }
M 31の状態遷移図
F
{1q,2q}2}
q0{
Q
q0q, 0q
a, Z0 / AZ0
b, A /
q0
b, A /
q1
, Z0 / Z0
a, A / AA
(q(0q,(aq
()
AZ
), q
b,A
,)A
)Z0(,q
q,0AA
) )2), Z0 )
,0qZa,(1b0,q,),A
,q
q0(1,
1(
0(
1
0()
q2
入力語aaabbbに対する M 31の動作
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に対する M 31の動作
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に対する M 31の動作
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(M 31 ) {a b | n 1}
n n
である。
© Copyright 2026 ExpyDoc