確定的チューリングマシンと非確定的チューリングマシンの違いは何ですか?NDTMの異なるが同等のモデル。特に、この「非決定論的に推測する」という頻繁に使用されるフレーズは何ですか。正しい使い方と間違った使い方の例。私の目標は、参照質問を作成することです。
確定的チューリングマシンと非確定的チューリングマシンの違いは何ですか?NDTMの異なるが同等のモデル。特に、この「非決定論的に推測する」という頻繁に使用されるフレーズは何ですか。正しい使い方と間違った使い方の例。私の目標は、参照質問を作成することです。
回答:
非決定論について考えるいくつかの方法があります(この回答からコピー)。
魔神。マシンに選択の余地がある場合はいつでも、魔神がどちらに進むべきかを教えます。入力が言語である場合、ジニーは最終的に受け入れるような方法でマシンを指示できます。逆に、入力が言語ではない場合、魔神がマシンに何をするように指示しても、常に拒否されます。
ヒント。マシンは2変量関数を計算します。最初の入力は単語で、2番目の入力は「ヒント」です。マシンが非決定的な選択に直面するときはいつでも、次のヒント記号を調べ、それに応じて動作します。次のことが約束されています。x
計算を受け入れます。受け入れの計算は、受け入れ状態で終了する正当な計算(マシンが常に直面する選択の1つに従って動作する計算)です。単語は、それが受け入れ可能な計算を持っている限り、その言語である。
構成を使用して計算を受け入れるという概念を形式化できます。構成とは、マシンの状態全体を瞬時に説明するものです。リレーションを定義できます。ここで、は構成であり、が1つのステップでにつながる可能性があるときに保持されます。確定的マシンでは、各ごとに最大で1つのがありますが、非確定的マシンでは、複数存在する可能性があります。単語の受け入れ計算は、初期構成で始まるものです(テープにはが含まれ、ヘッドはの開始点を指します) σ 、σ 「 σ σ " σ ワットワットワット、状態は初期状態です)、構成の受け入れで終了します。
別の同等の説明は、到達可能性に関するものです。頂点が構成されているとからエッジが存在する有向グラフ考えるへなら。受け入れ側の計算は、初期構成から受け入れ側の構成へのパスです。σ " σ ⊢ σ "
確定的チューリングマシンと非確定的チューリングマシンの違いは、遷移関数にあります。確定的チューリングマシンでは、遷移関数は部分関数です。
つまり、状態とテープシンボルが1つまたはまったくない状態で、シンボルを右に、移動方向を入力します。ただし、非決定性のチューリングマシンでは次のようになります(ここではセットのサブセットのセットです):
つまり、状態がないか、いくつかあります。書き込むテープシンボルまたは移動する方向です。これはあなたのマシンに、可能な計算の異なる「ブランチ」の間でそのような状態とテープシンボルを効果的に選択する可能性を与えます。
実際には、これは同じ入力に対して異なる出力を計算できることを意味します。したがって、非決定論的チューリングマシンの言語は、定義された遷移で派生が見つかる一連の単語です。特定の実行では、このような派生が見つからない場合がありますが、重要なことは、それが発生する可能性があることです。したがって、「推測」するときは、計算の可能な分岐の1つを選択しているだけです。
使用例
この場合、1は、単に単語を「推測」でしたし、実行と上の双方が受け入れた場合、彼らは同時に受け入れることを確認。推測は、秒または秒のテープに書き込み、一般的なマシンにシンボルを読み取ることで終了する遷移を持つ状態を導入することで機能します。
正直に言うと、この「推測」の悪用例はありませんが、このフレーズが正しく使用されるたびにチェックを行うと、還元により、推測をシミュレートしたこの構造でオートマトンを構築できることを確認できます。
NTMでの入力文字列の受け入れ
確定的チューリングマシンと非確定的チューリングマシンについて詳しく説明します。ある言語について、決定論的チューリングマシンと非決定論的チューリングマシンをそれぞれ設計するとします。一部の入力では、決定論的チューリングマシンの場合、構成のパスは1つだけになります。つまり、(各 は番目のステップの構成を表します)です。これで、構成に基づいて、入力文字列簡単に受け入れたり拒否したりできます。
NTMの場合、一部の構成パスで拒否状態になる可能性があるため、注意する必要があります。したがって、非決定的なチューリングマシンの場合、構成パスの少なくとも1つが状態の受け入れにつながる場合、文字列が受け入れられると言います。すべての構成パスが拒否状態になる場合は、入力文字列を拒否します。
たとえば、ある入力文字列などの非決定性チューリングマシンについて上記の構成ツリーを考えます。この場合、受け入れパスが1つあるため、入力文字列を受け入れます。
リファレンス:http : //cs.umw.edu/~finlayson/class/fall14/cpsc326/notes/24-complexity2.html
推測モジュールによる増強。
私はこのモデルをMR GareyとDS Johnsonの「Computers and Intractability」で見つけました。
NDTMの構造はDTMとまったく同じですが、独自の書き込み専用ヘッドを持つ推測モジュールが追加されている点が異なります。推測モジュールは、「推測」を書き留める手段を提供し、この目的でのみ使用されます。
使い方。
最初の段階は、推測段階です。最初に、入力文字列 テープの正方形で書かれているを通して(他のすべての正方形が空白である間)、読み取り/書き込みヘッドは正方形スキャンし、書き込み専用ヘッドは正方形スキャンしており、有限状態制御は「非アクティブ」です。次に、推測モジュールは、書き込み専用ヘッドに、一度に1ステップずつ、スキャンされるテープスクエアにテープアルファベットからシンボルを書き込み、 1スクエアを左に移動するか、停止するように指示します。推測モジュールが非アクティブになり、有限状態制御が状態アクティブになります。アクティブのままであるかどうか、およびアクティブである場合、から書き込むシンボルは、推測モジュールによって完全に任意の方法で選択されます。したがって、推測モジュールは、停止する前にから任意の文字列を書き込むことができ、実際に停止する必要はありません。
「チェック」段階は、状態で有限状態制御がアクティブになるとます。この時点から、計算は、DTMの場合とまったく同じ規則に従って、NDTMプログラムの指示の下でのみ行われます。推測された文字列をテープに書き込むことで、推測モジュールとその書き込み専用ヘッドは不要になり、役割を果たしました。もちろん、推測された文字列は、チェック段階で検査できます(通常は検査されます)。有限状態の状態制御が2つの停止状態(またはいずれか)に入ると計算が停止し、状態で停止すると計算を受け入れると言われます、Q Y Q N 、Q Y Mは、xはΓを*。他のすべての計算は、停止するかどうかに関係なく、単に非許容計算として一緒に分類されます。
すべてのNDTMプログラムは、与えられた入力文字列、からの可能性のある推測された文字列ごとに1つの計算を無限に行うことに注意してください。NDTMプログラムは、これらの少なくとも1つが受け入れ計算である場合、を受け入れます。x時間 NDTMプログラムによって必要とされる列を受け入れるようには すべての受け入れ計算上、最小であると定義される用の 停止状態まで推測とチェック段階中に発生するステップの数、入ります。X ∈ L M Mは、xはQ Yを
特別な特記に値する唯一の点は、通常、非決定論的アルゴリズムが、特定の[問題]インスタンスに何らかの形で依存する構造を推測することを想定していることです。NDTM の推測モジュールは、指定された入力を完全に無視します。ただし、からのすべての文字列は推測である可能性があるため、NDTMプログラムを常に設計して、推測された文字列が(暗黙的な解釈の下で)プログラムが指定された入力に対する適切な推測。そうでない場合、プログラムはすぐに停止状態に入ることができます。 I Γ * Q N
。。。
クラスは、すべての決定問題クラスとして非公式に定義されます。これは、妥当なエンコードスキームの下で、多項式時間非決定性アルゴリズムによって解くことができます。Π
これらの非公式な定義での「ソルブ」という用語の使用は、もちろん、1粒の塩で取られるべきです。「多項式時間非決定論的アルゴリズム」は、基本的に、決定問題を解決する現実的な方法ではなく、多項式時間検証可能性の概念を取り込むための定義デバイスであることは明らかです。与えられた入力に対して考えられる計算を1つだけ持つ代わりに、考えられる各推測に対して1つずつ、多くの異なる計算があります。
クラス分離が意図されているのは、この多項式時間の「検証可能性」の概念です 。多項式時間の検証可能性は多項式可解性を意味しないことに注意してください。