现在我们已经看到了一个语言是不可裁定的例子,我们将用最初的语言来证明许多其他语言是不可裁定的。
我们要用到的第一个技巧叫做可约性。我们说,语言a可约化为语言B,如果我们可以使用语言B的决定器来帮助我们决定语言a。
更重要的是这种关系的反面:如果已知语言A是不可判定的,并且A化简为B,那么我们可以得出结论,B一定是不可判定的。
让我们先谈谈减量的概念。如果第二个问题的解决方案提供了解决第一个问题的关键步骤,我们就说一个问题可简化为另一个问题。
为了了解这是如何运作的,让我们来看看一个简短的反事实。我们已经知道ATM是不可决定的,但让我们暂时假装我们不知道这一点,有人给了我们为ATM构建决策器的工作。事实证明,解决ATM的关键步骤是确定图灵机是否在给定输入时停止的问题。对于这个问题,假设我们已经解决了图灵机的停机问题,并且我们有一个停机问题的决策H。下面是我们如何为ATM构建决策器。
当输入
这是一个用还原法解决问题的例子。这是一个虚假的例子,因为ATM和停机问题都不是可确定的,但这个例子确实证明了解决一个问题的关键步骤是将其简化为另一个问题。
作为该技术的第一个示例,我们将使用ATM的不可判定性来证明ETM是不可判定的。ETM是决定给定图灵机在什么情况下不接受输入的问题。
我们的第一个挑战是找到一种方法将ATM减少到ETM。为了做到这一点,我们设想创建一个图灵机程序来决定ATM。该程序具有以下结构:
在输入
这以提纲的形式说明了我们要做的事情。我们正在尝试为ATM建立一个决策器,所以我们建立的机器必须接受任何ATM决策器都会接受的相同输入。为了使ATM减少到ETM,我们必须在我们的机器中有一个步骤,我们运行ETM的决策器。最后,我们必须以某种方式使用该决策器返回的结果来回答最初的问题:
我们要做的一件事是在步骤1中准备一个输入,我们可以将其传递给ETM决策器。ETM决策器将期望接收机器的描述作为其输入。
我们的第一次尝试是这样的。
在输入
这里有一个更好的解决方案:我们使用
下面是中间机器N的描述:
输入x:
我们现在使用中间机器使还原工作。
在输入
现在我们构造了一个从ATM到ETM的有效约简,我们可以证明ETM是不可确定的。我们已经知道ATM是不确定的,所以我们上面构造的机器不可能工作。从这个观察中我们可以得出的唯一结论是,一定不存在ETM的决策器,因为我们刚刚展示了如何使用ETM的决策器来构建ATM的决策器。
一般的等式问题EQ是确定两台机器是否接受相同语言的问题。图灵机的变体,EQTM,是确定两个图灵机是否接受相同语言的问题。
我们通过将ETM简化为EQTM来证明EQTM是不可决定的:
在输入
约简证明的一个共同特征是,在约简步骤中,我们必须将一个问题的原始输入映射到中间机器的输入。我们可以通过写出从一种语言a到另一种语言B的简化的一般大纲来抽象这个过程:
对于输入x,其中是a的一个潜在元素:
我们引入的函数f抽象了A到B的映射过程。
为了使赢博体育这些工作有效,并给我们一个新的框架来做削减,我们引入两个重要的定义。
定义函数f(x)是一个可计算函数,如果存在某种图灵机,当它的纸带上写有x时,当它的纸带上写有f(x)时停止运行。
定义如果存在一个可计算函数f使得x∈A当且仅当f(x)∈B,则语言A映射可约到语言B(记为A≤m B)。
下面两个关键定理说明了这个新框架的有用性。
定理如果A≤m B且B是可判定的,则A是可判定的。
这是a的决定因素:
对于输入x,其中是a的一个潜在元素:
定理如果A≤m B且A不可判定,则B不可判定。
通过矛盾的方式,我们假设B是可决定的。最后一个定理的证明使我们可以得出A一定是可决定的。这是一个矛盾,所以B一直都是不可决定的。
作为赢博体育这些思想的一个例子,我将解决第五章末尾的问题20。
这个问题说的是“证明存在一个{1}*的不可判定子集”。
毫不奇怪,我们可以通过ATM的映射约简来证明这一点。我们所要做的就是找出如何将ATM的成员映射到{1}*的成员。这种情况下的技巧是计算理论中常见的技巧,编码技巧。ATM的成员采用
总而言之:
这是映射f我们要用它来简化。
输入x:
{1}*的不可确定子集是ATM在映射f下的像。