可判定性和递归可枚举性
Posted
技术标签:
【中文标题】可判定性和递归可枚举性【英文标题】:Decidability and Recursive Enumerability 【发布时间】:2012-03-27 12:04:54 【问题描述】:假设存在图灵机 M1、M2、M3,它们识别的语言分别是 L(M1)、L(M2) 和 L(M3)。以下语言 L = (M1, M2, M3) : L(M1), L(M2), 和 L(M3) 不相等 语言是可判定的吗?递归可枚举?还是两者都没有?
【问题讨论】:
也许重新定位到理论计算机科学?这是作业吗? 这不是“两个自动机等价”的问题吗? NP难? 我认为图灵机等价问题表明语言必须是平等的?在这种情况下,它是不可判定的。在这个问题中,语言是不平等的。 【参考方案1】:设 MMi,I 是一台机器,它在输入 I
上模拟运行其他机器 Mi 并返回 @987654322 @ if Mi 最终在I
处停止,否则永远循环。
设 M∞ 是一个简单地永远循环的平凡机器。
那么,(MMi,I, M∞, M∞) 在 L iff Mi 在输入 I
时停止。
这将停止问题的可判定性降低为 L 的可判定性,因此 L 是不可判定的。
=============
接下来,我们来证明 L 不是递归可反枚举的。
假设L是递归可枚举的,所以存在图灵机M使得如果Mi, Mj, and 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') (因为我们将那个牛肚添加到 L(M') 中),因此它必须在 L (M),因为语言不一样。
因此,我们遇到了一个悖论,这意味着 M 不存在,因此 L 不是递归可枚举的。
【讨论】:
嗯...有趣。你会说这种语言 L 是递归可枚举的吗? 我更新了响应以解决递归可枚举的问题。这是一个非常有趣的问题:) 哦,你的解决方案很有趣,我学到了很多关于递归可枚举性和可判定性的知识。我很高兴你玩得开心。不过,我确实有一个问题,如果一种语言不是 RE,那不是自动意味着它是不可判定的吗?还是我错过了什么? 是的,你是对的。从技术上讲,我只需要证明它不是 RE,我只是一开始不知道该怎么做,并想确保它是不可判定的。 您的证明似乎适用于两台图灵机的类似问题。我想知道为什么教练用了三个?以上是关于可判定性和递归可枚举性的主要内容,如果未能解决你的问题,请参考以下文章