次の言語を認識する JFLAP を使用してプッシュダウン オートマトンを作成する必要があります。
そのためにはどのような手順を踏む必要がありますか? そして、それはどのように機能しますか?
この質問はcs.stackexchange.comに適していると思いますが、とにかくソリューションを追加します。
実際には見た目よりも簡単です。例として、オカレンスに次の値があると考えてみましょう。
n = 2
m = 3
p = 1
これにより、次の文字列を形成できるはずです。
a 2 b 3 c 1 a 1+3 b 2 = aabbbcaaaabb
これから、追跡する必要があるシンボルを決定する必要があります。
n
何度も発生することがわかっているため、ここをn,m ≥ 1
追跡する必要があり、少なくとも1 回は発生する必要があります。n
q = p+m
とm
が発生することはわかっているので、 の発生を追跡する必要があります。m
q = p+m
の発生も保持する必要がある場合は、 と記載されているため、発生することもできないp
ことに注意してください。p
p ≥ 0
PDA Pを次の PDA にします。
P = (Q, Σ, Γ, τ, q 0 , Z, q 6 )
どこ:
#
したがって、これから (JFLAP で) 次のオートマトンを作成できます。
ここでは、上記のようにシンボルを追跡しているだけですが、ここで注意すべき重要なことはq3
、トランジションが 0 以上のトランジションでc
あるということです。
また、シンボル#
をスタック シンボルとして使用します。
上記の入力 ( aabbbcaaaabb
) でこの PDA をシミュレートすると、次の結果が得られます。