是否可以解决某些有限函数的停机问题?
Can the halting prοblem be sοlved for certain finite functions?
据我了解,对于一个足够简单的函数,假设
function(boolean input){
while(input){
}
}
可以判断它是否会因任何可能的输入而停止。
很容易看出,上述函数将在 false
后终止,而不会在 true. It's only impossible to solve the halting problem for an arbitrary function
f, as of course you can evaluate
haltingFinder(haltingFinder)` 后终止,这实际上造成了一个悖论。
我的理解正确吗?
是的,你当然是对的。以一个甚至没有循环的函数为例:它总是会停止。对于像常规语言和上下文无关语言这样的整个 类 来说,停机问题是微不足道的:相应的机器(有限自动机,没有 epsilon 移动的下推自动机)只能使步数等于输入词的长度,因此总会停下来。当然,您可以为简单的功能设计非暂停计算,例如带有无用循环的图灵机用于常规语言。
据我了解,对于一个足够简单的函数,假设
function(boolean input){
while(input){
}
}
可以判断它是否会因任何可能的输入而停止。
很容易看出,上述函数将在 false
后终止,而不会在 true. It's only impossible to solve the halting problem for an arbitrary function
f, as of course you can evaluate
haltingFinder(haltingFinder)` 后终止,这实际上造成了一个悖论。
我的理解正确吗?
是的,你当然是对的。以一个甚至没有循环的函数为例:它总是会停止。对于像常规语言和上下文无关语言这样的整个 类 来说,停机问题是微不足道的:相应的机器(有限自动机,没有 epsilon 移动的下推自动机)只能使步数等于输入词的长度,因此总会停下来。当然,您可以为简单的功能设计非暂停计算,例如带有无用循环的图灵机用于常规语言。