この質問は停止の問題について私に起こり、オンラインで良い答えを見つけることができず、誰かが助けてくれるかどうか疑問に思いました。
入力がTM自体でない限り、停止の問題はどの入力のTMでも決定可能である可能性はありますか?基本的に:
Halts(TM, I)
IF TM == I:
Undecidable, return a random result/throw an exception, whatever
ELSE:
Solve the problem
Halts'(X)
IF Halts(X, X):
Loop infinitely
ELSE:
Print 'done'
これにより、矛盾が解消されたようです。逆説的なHalts '(Halts')を呼び出すと、一貫した動作は期待できませんが、他のすべてのHalts(およびHalts ')への呼び出しは正当で解決可能です。
これは非常に直感的でないことを理解しています。ビットのいくつかのパターンがすべての可能なプログラムの動作を明らかにする可能性がある場合、TMと入力が一致するときになぜ突然バラバラになるのですか?しかし、これを可能性として数学的に排除できるでしょうか?
そして、この減少した停止の問題はまったく興味をそそるものではありません。独自のコードを入力として使用する意味のあるプログラムがあったとしても、わずかに異なる入力で動作するように簡単に書き直すことができます。もちろん、この提案では、なぜこのような警告が出て停止ソリューションが存在するのか理解できなくなりますが、繰り返しになりますが、この可能性を数学的に排除できますか?
助けてくれてありがとう。