Computer science 可判定性和递归可枚举性

Computer science 可判定性和递归可枚举性,computer-science,theory,turing-machines,computability,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)不相等} 语言是可判定的吗?递归可枚举?或者两者都不是?让MMi,我是一台模拟在输入I上运行其他机器Mi的机器,如果Mi最终在I上停止,则返回true,否则将永远循环 让我∞ 做一台永远循环的平凡机器 然后,(嗯,我,我∞, M∞) 如果Mi在输入时停止,则为L 这将停止问题的可判定性降低为L的可判定性,所以L是不可判定的 =======

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

让MMi,我是一台模拟在输入
I
上运行其他机器Mi的机器,如果Mi最终在
I
上停止,则返回
true
,否则将永远循环

让我∞ 做一台永远循环的平凡机器

然后,(嗯,我,我∞, M∞) 如果Mi在输入时停止,则为L

这将停止问题的可判定性降低为L的可判定性,所以L是不可判定的

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

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

假设L是递归可枚举的,因此存在一个图灵机M,如果Mi、Mj和Mk是三个各自语言不相等的图灵机,那么M最终将吐出三元组(Mi、Mj、Mk)

现在让我们考虑一个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不是递归可枚举的。

也许可以重新定位到理论计算机科学?这是家庭作业吗?这不是“两个自动机等价吗”问题吗?NP难?我认为图灵机等价问题表明语言必须相等?在这种情况下这是不可判定的。在这个问题中,语言是不相等的。嗯……有趣。你会说这种语言L是递归可枚举的吗?我更新了回答以解决递归可枚举的问题。这是一个非常有趣的问题:)哦,你的解决方案非常有趣,我学到了很多关于递归可枚举性和可判定性的知识。我很高兴你对它感兴趣。不过,我有一个问题,如果一种语言不是RE,那不是自动意味着它是不可判定的吗?或者我遗漏了什么吗?是的,你是对的。从技术上讲,我只需要证明它不是RE,我只是c我们一开始不知道怎么做,只是想确保它是不可判定的。你的证明似乎适用于两台图灵机器的类似问题。我想知道为什么讲师使用了三台?