12
なぜ、本当に、停止問題がそれほど重要なのでしょうか?
プログラムが停止するかどうかを判断する可能性を却下するために停止問題が頻繁に使用される理由がわかりません。ウィキペディア[記事] [1]は、有限のメモリを備えた決定論的なマシンが以前の状態を停止または繰り返すことを正しく説明しています。リンクされたリストがループしてO(1)のスペースの複雑さでホールティング関数を実装するかどうかを検出するアルゴリズムを使用できます。 Halting Problemの証明は、いわゆる「パラドックス」、つまり、嘘つきのパラドックスと同じように(少なくとも周期的な)自己参照の矛盾にすぎないように思えます。唯一の結論は、停止機能がそのような不正な質問の影響を受けやすいということです。 したがって、逆説的なプログラムを除き、停止機能は決定可能です。それでは、なぜそれを反対の証拠として保持するのでしょうか? 4年後:これを書いたとき、私はちょうどこのビデオを見ました。プログラマーはいくつかのプログラムを取得し、どのプログラムが終了するかを判断する必要があり、ビデオではそれが不可能な理由を説明しています。欲求不満だったのは、arbitrary意的なプログラムがあれば、主人公がそれらが終了したかどうかを証明できる可能性があることを知っていたからです。一般性の概念はどういうわけか失われました。「一部のプログラムは終了することが証明できない」と言うことと、「プログラムが終了することが証明できない」と言うことの違いです。そのための多くのアルゴリズムが正式に実証されています。私がオンラインで見つけたすべての参考文献によってこの区別をすることができなかったのは、この質問のタイトルにどのように来たかでした。このため、私はその答えに本当に感謝しています これにより、停止関数がブール値ではなく3項として再定義されます。