min-heapオートマトンの定義に関する説明については、この投稿の最後を参照してください。
ステートマシンで使用する情報を格納するためにさまざまなデータ構造を使用することを想像できます。たとえば、プッシュダウンオートマトンは情報をスタックに格納し、チューリングマシンはテープを使用します。キューを使用するステートマシン、および2つの複数のスタックまたはテープを使用するステートマシンは、チューリングマシンと同等のパワーを発揮することが示されています。
最小ヒープマシンを想像してください。次の例外を除き、プッシュダウンオートマトンとまったく同じように機能します。
- ヒープに最後に追加したものを調べる代わりに、現在ヒープ上にある最小の要素(マシンごとに定義された順序付け)だけを見ることができます。
- ヒープに最後に追加したものを削除する代わりに、現在ヒープにある最小の要素(マシンごとに定義された順序)の1つのみを削除します。
- 要素をヒープの最上部に追加する代わりに、要素をヒープに追加することしかできません。その位置は、ヒープ内の他の要素に従って決定されます(順序はマシンごとに定義されます)。
このマシンは、単にヒープを使用しないことで、すべての通常の言語を受け入れることができます。また、言語受け入れることができる追加することによって、「ヒープ秒、および削除が読み取るとき」ヒープからステップBのを。他のさまざまなコンテキストフリー言語を受け入れることができます。しかし、それは、例えば、受け入れることができない{ wは∈ { 、B } * | W = W R }(証拠なしで記載)。編集:またはそれができますか?私はそれができるとは思いませんが、私は以前に驚いていました。そして、私が...をよくし続けるという私の仮定が驚いたままであると確信しています。
状況依存言語またはチューリング完全言語を受け入れることができますか?
より一般的には、この方向でどのような研究が行われていますか?もしあれば、どんな結果がありますか?また、他の種類のエキゾチックなステートマシンにも興味があります。おそらく、ストレージに他のデータ構造を使用したり、アクセスに関するさまざまな種類の制限(たとえば、LBAがTMを制限する方法)になります。参考文献を歓迎します。この質問が無知を示している場合は、事前に謝罪します。
正式な定義:
この資料を参照する質問でさらに議論を明確にするために、ここで最小ヒープオートマトンのより詳細な定義をいくつか提供します。
タイプ1の非決定的最小ヒープオートマトンを7タプルとして定義します。ここで...
- は有限の空でない状態のセットです。
- 初期状態です。
- 受理状態の集合です。
- は、有限の空でない入力アルファベットです。
- シンボルの重量有限、非空の入力アルファベットであり、 γ ∈ Γ、 W (γ )∈ Nは、そのようなことである W (γ 1)= W (γ 2)。
- 特別なボトム・オブ・ヒープシンボルです。
- 遷移関数です。
遷移関数は、のみで構成される最初は空のヒープを想定して機能します。遷移関数は、ヒープに任意のコレクションに追加(有限の、しかしおそらく空または反復を有する)要素のよいγ 1、γ 2、。。。、γ K ∈ Γ。あるいは、遷移関数は、最小の重みw (γ )を持つ要素γのインスタンスを削除する場合がありますヒープに残っているすべての要素(つまり、ヒープの一番上の要素)。遷移関数は、特定の遷移を決定する際に最上位(つまり、最小の重み)シンボルインスタンスのみを使用できます。
さらに、定義1型決定論的最小ヒープオートマトンをどの満たす1型非決定的分ヒープオートマトンであるために、次のプロパティ:すべての文字列のためよう| x | = Nとσ ∈ Σ、| δ N + 1(qは0、X σ、Y 、Z 0)| ≤ 1。
次の変更を除いて、タイプ1非決定性最小ヒープオートマトンとまったく同じタイプ2非決定性最小ヒープオートマトンも定義します。
- シンボルの重量有限、非空の入力アルファベットであり、 γ ∈ Γ、 W (γ )∈ Nは、ようなものである wは(γ 1)= W (γ 2)必ずしも意味するものではない γ 1 = γを2 ; つまり、異なるヒープシンボルに同じウェイトを設定できます。
- 同じ重みを持つ個別のヒープシンボルのインスタンスがヒープに追加されると、それらの相対的な順序は、後入れ先出し(LIFO)スタックのような順序に従って保持されます。
このより自然な定義を指摘してくれたRaphaelに感謝します。この定義は、文脈自由言語をキャプチャ(および拡張)します。
これまでに実証された結果:
- タイプ1の最小ヒープオートマトンは、コンテキストフリー言語のサブセットでもスーパーセットでもない言語のセットを認識します。[ 1、2 ]
- タイプ2の最小ヒープオートマトンは、その定義により、コンテキストフリー言語の適切なスーパーセットである言語のセット、およびタイプ1の最小ヒープオートマトンで受け入れられる言語の適切なスーパーセットを認識します。
- タイプ1の最小ヒープオートマトンで受け入れられる言語は、ユニオン、連結、およびKleeneスターの下では閉じられているように見えますが、補完[ 1 ]、交差、または差の下では閉じられていないようです。
- タイプ1の非決定的最小ヒープオートマトンで受け入れられる言語は、タイプ1の決定的最小ヒープオートマトンで受け入れられる言語の適切なスーパーセットであるように見えます。
私が見逃した他のいくつかの結果があるかもしれません。より多くの結果が(おそらく)進行中です。
フォローアップの質問
- 反転中の閉鎖? - 開いた
- 補完の下での閉鎖? - 番号!
- 非決定論は力を増しますか? - はい?
- ヒープを追加すると、タイプ1の電力が増加しますか?-ための(?)
- スタックを追加すると、タイプ1の電力が増加しますか? - 開いた