这是来自维基百科的可判定的定义
在可计算性理论中,一个不可判定的问题由一个家庭组成 例如,需要特定的是/否答案的实例 没有计算机程序,给出任何问题实例 输入,终止并输出有限的所需答案 步数。更正式地说,一个不可判定的问题是一个问题 其语言不是递归集
递归集是递归可枚举的一个子集。在递归集之外有一些递归可枚举的语言。那么为什么递归上不可识别的语言不可判断?
答案 0 :(得分:12)
递归可枚举的语言/集也称为半可判定的。它们不是可判定的,因为没有一台机器可以查看输入并说是或否(正确)。半可判断意味着你可以编写一个查看输入的机器,如果输入在集合中则表示是,或者如果输入不在集合中则不能停止。 半可判定与可递归相同,与可判定等同于递归的方式相同: -
如果您有一个枚举递归可枚举语言的图灵机R,您可以创建一个新机器D,它接受可能在语言/集合中的输入,也可能不在其中。 D运行R直到R输出该组的第一个元素,然后D将其与其输入进行比较。如果匹配,则返回“是”结果。如果它们不匹配,它将继续运行R直到它获得下一个元素,依此类推。由于R从不停止(因为语言只是递归可枚举,而不是递归),D将回答是或不停止。
相反,如果你的图灵机D回答是或者没有停止,你可以制作一台新的机器R,它使用通常的技术一步一步地运行几个D的实例,各种输入:所有可能会或可能不会在集合中的元素。每次D的并行执行之一以“是”答案停止时,R输出D的输入,并继续对所有剩余输入执行D. R永远不会停止(因为有些输入D不会停止),但最终会输出D回答“是”的每个元素,即集合/语言中的每个元素。
不要混淆思考有三种(不相交的)种类:可判定的,半可判定的和不可判定的。有两种:可判定和不可判定的。所有可判定的套装也都是半可判定的(尽管这样说很不寻常)。一些不可判断的套装也是半可判定的。这就像说所有可枚举集都是递归可枚举的,并且一些非可枚举集是递归可枚举的。
答案 1 :(得分:6)
半自由的问题(或等效的递归可枚举问题)可能是:
<强>可判定强>:如果问题及其补均为semidecidable(或递归可枚举),那么问题是可判定的(递归)
<强>不可判定强>:如果问题是semidecidable及其互补不semidecidable(即,不递归可枚举)
重要提示:请记住,可判定的(递归)问题也是半可否的(递归可枚举)。相反,如果问题不是递归可枚举的(半可除),则不是递归的(可判定的)。
维基百科条目所说的是:
调用部分可判定的问题不可判定 判定的。
一般来说,半可解决的问题(递归可枚举)可以是可判定的(递归的)或不可判定的(非递归的可枚举的)。
还要注意一个问题及其补充可能(或者只是其中一个)甚至不是半可判定的(非递归可枚举)。另请注意,如果问题是递归的,那么它的补码也是递归的。
答案 2 :(得分:0)