で、この答えは言及されています
通常の言語は、有限オートマトンによって認識できます。文脈自由言語にはスタックが必要であり、文脈依存言語には2つのスタックが必要です(これは、完全なチューリングマシンが必要であると言うことに相当します)。
上記の大胆な部分の真実に関して知りたいと思いました。実際、それは本当ですか?これに対する答えに到達する良い方法は何ですか?
で、この答えは言及されています
通常の言語は、有限オートマトンによって認識できます。文脈自由言語にはスタックが必要であり、文脈依存言語には2つのスタックが必要です(これは、完全なチューリングマシンが必要であると言うことに相当します)。
上記の大胆な部分の真実に関して知りたいと思いました。実際、それは本当ですか?これに対する答えに到達する良い方法は何ですか?
回答:
この答えの2ビット。
まず、Turing Machinesによって認識される言語のクラスはコンテキスト依存ではなく、再帰的に列挙可能です(コンテキスト依存は、線形バウンドオートマトンから取得する言語のクラスです)。
2番目の部分は、質問を調整すると仮定すると、はい、2スタックPDAはTMと同じくらい強力です。一方向にのみ無限のテープを持つTMのモデルを使用していると仮定するのは少し簡単です(ただし、両方向はそれほど難しくなく、同等です)。
等価性を確認するには、最初のスタックを現在の位置の左側のテープの内容、2番目のスタックを右側の内容と考えてください。次のように開始します。
これで、入力を無視して、スタックの内容(テープをシミュレート)ですべてを実行できます。ポップして読み取り、プッシュして書き込みます(したがって、読み取ったものとは異なるものをプッシュすることで「テープ」を変更できます)。次に、右のスタックからポップして左に押して右に移動し、逆に左に押してTMをシミュレートできます。左のスタックの一番下にヒットすると、それに応じて動作します(モデルに応じて、停止して拒否するか、あなたの場所に留まります)。右のスタックの一番下にヒットすると、空白のシンボルを左にプッシュします。
完全な形式的証明については、別の質問への回答を参照してください。
他の方法の関係はさらに明白であるはずです。つまり、TMを使用して2スタックPDAをシミュレートできるということです。