停止しないマシンは常にループしますか?


22

まったく同じテープの同じセルに読み取り/書き込みヘッドを置いて以前に遭遇した状態に戻るチューリングマシンは、ループに巻き込まれます。そのようなマシンは停止しません。

ループしない、停止しないマシンの例を誰かに教えてもらえますか?


1
注:テープは異なる場合がありますステップで同じセルに入るときの無限ループの十分な(しかし必要ではない)条件t1ステップで同じ状態になったステップT 2段階の間にヘッドが訪れたテープの部分T 1とステップT 2は、ちょうど入る前に対応する部分に等しいT 1t2>t1t2t1t2t1
Vor

4
TMが停止に失敗するためにループしなければならなかった場合、TMの停止の問題をかなり簡単に解決できます。以前の構成をすべて記憶し、各ステップで、見た構成になっているかどうかを確認します。前に、もしそうなら、あなたは物事が停止しないことを知っています(そうでなければ、永遠に実行するためにループする必要があると仮定しているため、永遠に実行されません、つまり停止します、その場合、最終的にはそれについて知っている)。
Patrick87

@Niel de Beaudrapの回答に触発されました。チューリングマシンはoeis.org/A014445シーケンスを計算し、奇数になると停止します。oeis.org/A016742を実行中の合計として計算し、数値が奇数の場合は停止する可能性があります。これは、計算することができx^2どこxまでのサイクル-100100し、結果が負の場合サイクリングがモジュロと停止で行われます。x%2xがゼロから正の無限大の範囲を計算し、結果が2になったら停止します。アセンブリ言語では、do / while / forループはすべて条件付きジャンプを行いますが、condジャンプだけではほとんど意味がありません。
レオニード

質問の仮定は、決定論的なマシンにのみ当てはまります。
ラファエル

回答:


15

テープヘッドを常に右に移動し、各ステップで特別な非ブランクテープシンボルを印刷するTMについて考えます。つまり、TMは常に右に移動するため停止することはなく、kステップ後にテープヘッドはマシンのk番目のセルの上にあるため、状態を繰り返すことはありません。そのため、マシンの各構成は他のすべての構成とは異なり、マシンは常にループします。

また、そのようなマシンの存在を非構造的に示すこともできます。矛盾を避けるため、停止することのないすべてのTMが最終的にループすると仮定します。つまり、文字列wでTM を開始すると、最終的に次のいずれかが発生します。Mw

  1. 停止する、またはM
  2. は構成を繰り返します。M

この場合、停止の問題は次のように決定できます。TM と文字列wが与えられると、各ポイントでテープの内容、現在の状態、現在のテープ位置を書き込むwMをシミュレートします。この構成が重複している場合、出力は「停止しません」。それ以外の場合、Mwで停止すると、「停止」が出力されます。これらのいずれかが最終的に発生することが保証されているため、このプロセスは常に終了します。そのため、存在しないことがわかっている停止問題のアルゴリズムがあります。MwMwMw

お役に立てれば!


ああ、その編集にあなたを打ち負かします。質問に対する私のコメントをご覧ください。私は、すべての非停止TMがループしなければならない理由を説明するこの方法が好きです...それは直観を構築します。
Patrick87

@ Patrick87-申し訳ありませんが、コメントに気付きませんでした。私は通勤中の補遺について考え、戻ってきたらすぐに座って入場しました。
templatetypedef

問題ありません。それを説明する良い方法だと思うので、追加してくれてうれしいです。あなたが私にそれを打ち負かしたので、私はそれをコメントとしてだけ追加し、答えとしては追加しませんでした。:D
Patrick87

実際には、テープを無限に変更するような停止する問題に関しては、「本当の問題」と思われます。あなたが検出できるそれらのボイドウォーカー。
ラファエル

12

πの小数点以下のすべてを計算するチューリングマシン(または任意の基数のその他の非終了部分)が停止することはなく、各セルに有限回数だけ書き込みを行うことができます。もちろん、停止状態への移行がないという事実は完全に無料ですが、少なくとも自然な例です。

より興味深い(あいまいな)ケースは、入力でCollat​​z関数を繰り返し計算するチューリングマシン です。N / 2 場合  nは  偶数であり そしてそれが整数1を取得した場合にのみ、有名な場合に終端このCollat​​z予想

fn={3n+1もし n 奇妙です;n/2もし n 偶数です
入力については、この手順は最終的に停止するということです。しかし、これが事実かどうかは不明です。どちらかそれは(整数の存在に対応周りにループ整数のシーケンスを見つけることができる:これは原理的には、2つの異なる方法で失敗することがあり、Nように、組成物のいくつかの数のここで、n  ≠1); または、整数nf(n)f(f(n))のチェーンがある可能性がありますfffn=n、...無限に漸近的に発散します。後者の種類のシーケンスが存在する場合、これは、テープがどんどん大きくなるため、上記のチューリングマシンが繰り返されないことを意味します。

の数字で遊ぶのが好きですpi。TMは、任意の数字の2乗piが正確に7 に等しいときはいつでも停止できます。-
レオニード

@Leonid:確かに、いくつかの入力を受け入れ、その入力によって決定される条件で停止するチューリングマシンを検討できます。入力の一部を停止する条件を指定することもできます。そして、あなたが説明するように、決して満たされない制約を設定して、入力を提供することができます。
ニールドボードラップ

10

読み取り/書き込みヘッドを左に動かさない、停止しないチューリングマシンを検討してください。


それらのいくつかはまだループします。</ nitpicking>
ラファエル

5

これが真実であれば、停止する問題は決定可能です。チューリングマシンの実行時に見られる各(テープ、状態)ペアを記録するだけで、マシンが停止する(この場合は明らかに停止する)か、以前に見たペアが表示され、その場合はマシンが停止しません。

停止の問題は決定できないため、これは真実ではありません。(反例については他の例を参照してください。)


この答えはtemplatetypedefの答えに何を追加しますか?
ラファエル

そうではないと思います。申し訳ありませんが、私が書いたときに、どういうわけかその答えを逃しました。
再帰的
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.