次の言語を認識する 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 回は発生する必要があります。nq = p+mとmが発生することはわかっているので、 の発生を追跡する必要があります。mq = p+mの発生も保持する必要がある場合は、 と記載されているため、発生することもできないpことに注意してください。pp ≥ 0PDA Pを次の PDA にします。
P = (Q, Σ, Γ, τ, q 0 , Z, q 6 )
どこ:
#したがって、これから (JFLAP で) 次のオートマトンを作成できます。
ここでは、上記のようにシンボルを追跡しているだけですが、ここで注意すべき重要なことはq3、トランジションが 0 以上のトランジションでcあるということです。
また、シンボル#をスタック シンボルとして使用します。
上記の入力 ( aabbbcaaaabb) でこの PDA をシミュレートすると、次の結果が得られます。