【发布时间】:2017-12-06 20:16:19
【问题描述】:
有人可以一步一步解释下面的问题吗?
假设 Σ 是一个有限集,并且 L1、L2 和 L3 是 Σ^* 的图灵可接受的子集,它们满足以下属性: L1 ∪ L2 ∪ L3 = Σ^∗ ; L1 ∩ L2 = L2 ∩ L3 = L3 ∩ L1 = ∅。 证明 L1、L2 和 L3 都必须是递归的。
【问题讨论】:
有人可以一步一步解释下面的问题吗?
假设 Σ 是一个有限集,并且 L1、L2 和 L3 是 Σ^* 的图灵可接受的子集,它们满足以下属性: L1 ∪ L2 ∪ L3 = Σ^∗ ; L1 ∩ L2 = L2 ∩ L3 = L3 ∩ L1 = ∅。 证明 L1、L2 和 L3 都必须是递归的。
【问题讨论】:
我们得到:
L1 union L2 union L3 = E*
L1 intersect L2 = {}
L1 intersect L3 = {}
L2 intersect L3 = {}
L1 is acceptable/semidecidable/recursively enumerable/recognizable
L2 is acceptable/semidecidable/recursively enumerable/recognizable
L3 is acceptable/semidecidable/recursively enumerable/recognizable
我们需要证明 L1、L2 和 L3 是可拒绝/可判定/递归/可共同识别的。
我们能证明一个字符串不在 L1 中吗?是的。因为这三种语言的并集包含了所有字符串,而且没有两种语言重叠,所以我们知道任何不在 L1 中的字符串都在 L2 或 L3 中。因为这些语言是可接受/半可判定/递归可枚举/可识别的,所以我们有 TM2 和 TM3,它们最终将分别接受/决定/枚举/识别 L2 和 L3 中的字符串。为了识别字符串不在 L1 中,我们可以设置 T2 和 T3 运行,并查看其中任何一个是否曾经接受/决定/枚举/识别字符串,在这种情况下,我们知道 L1 一定不能。
我们现在知道 L1 既是可接受的/递归可枚举/可识别的,同时也是可拒绝的//共同递归可枚举/共同识别的。诸如此类的语言是可判定的/递归的。
因为 L1、L2 和 L3 的编号是任意的,所以适用于 L1 的任何结果也必须适用于 L2 和 L3,因为我们不妨将这些其他语言视为 L1。换句话说,如果您将 L1 与 L2 或 L3 交换,则上面给出的完全相同的论点也适用。
因此,这三种语言中的每一种都是可判定/递归的。
【讨论】: