可判定性和递归可枚举性

时间:2012-03-10 05:37:06

标签: computer-science theory turing-machines computability

假设存在图灵机M1,M2,M3,它们识别的语言分别为L(M1),L(M2)和L(M3)。以下语言 L = {(M1,M2,M3):L(M1),L(M2)和L(M3)不相等} 语言是否可判定?递归可枚举?或者都不是?

1 个答案:

答案 0 :(得分:2)

设M M i ,我是一台模拟在输入I上运行其他机器M i 的机器并返回true如果M i 最终在I停止,则会永远循环。

让M 成为一个简单循环的普通机器。

然后,(M M i ,I ,M ,M )在L < em> iff M i 暂停输入I

这会降低暂停问题的可判定性,从而降低L的可判定性,因此L是不可判定的。

=============

接下来,让我们证明L不是通过矛盾递归枚举的。

假设L是递归可枚举的,因此存在图灵机M,使得如果M i ,则M j ,并且M k 是三个图灵机,各自的语言不相等,那么M最终会吐三联(M i ,M j ,M k ) 。

现在让我们考虑对M的修改,称为M',它是通过取M并将值(M,M',M')加到L(M')来定义的。 要问的重要问题是(M,M',M')是否在L?好吧,如果(M,M',M')在L中,那么L(M)必须不等于L(M')(否则它不适合定义在L中),所以L(M)不得包括(M,M',M')(因为这是我们所做的唯一修改)。相反,如果(M,M',M')不在L中,则L(M)!= L(M')(因为我们将该tripe添加到L(M')),因此它必须在L中(M),因为语言不相等。

因此,我们达到了一个悖论,暗示M不能存在,因此L不是递归可枚举的。

相关问题