这个问题是关于停止问题的问题,我在网上找不到很好的答案,想知道是否有人可以提供帮助。
只要输入不是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和输入匹配时,为什么它突然崩溃?但是我们可以在数学上消除这种可能性吗?
而且这种减少的停止问题根本不会引起人们的兴趣。即使有一些有意义的程序以其自己的代码作为输入,也可以对其进行微不足道的重写,以处理稍有不同的输入。当然,这一建议使人们更加难以理解为什么在这种警告下可能存在一种暂停的解决方案,但是再次,我们真的可以在数学上消除这种可能性吗?
谢谢你的帮助。