减少

现在我们已经看到了一个语言是不可裁定的例子,我们将用最初的语言来证明许多其他语言是不可裁定的。

我们要用到的第一个技巧叫做可约性。我们说,语言a可约化为语言B,如果我们可以使用语言B的决定器来帮助我们决定语言a。

更重要的是这种关系的反面:如果已知语言A是不可判定的,并且A化简为B,那么我们可以得出结论,B一定是不可判定的。

减量如何有用

让我们先谈谈减量的概念。如果第二个问题的解决方案提供了解决第一个问题的关键步骤,我们就说一个问题可简化为另一个问题。

为了了解这是如何运作的,让我们来看看一个简短的反事实。我们已经知道ATM是不可决定的,但让我们暂时假装我们不知道这一点,有人给了我们为ATM构建决策器的工作。事实证明,解决ATM的关键步骤是确定图灵机是否在给定输入时停止的问题。对于这个问题,假设我们已经解决了图灵机的停机问题,并且我们有一个停机问题的决策H。下面是我们如何为ATM构建决策器。

当输入

  1. 的pair运行H。
  2. 如果H拒绝,停止并拒绝。
  3. 模拟M在w上运行,如果M运行,则接受。否则,拒绝。

这是一个用还原法解决问题的例子。这是一个虚假的例子,因为ATM和停机问题都不是可确定的,但这个例子确实证明了解决一个问题的关键步骤是将其简化为另一个问题。

的语言ETM

作为该技术的第一个示例,我们将使用ATM的不可判定性来证明ETM是不可判定的。ETM是决定给定图灵机在什么情况下不接受输入的问题。

我们的第一个挑战是找到一种方法将ATM减少到ETM。为了做到这一点,我们设想创建一个图灵机程序来决定ATM。该程序具有以下结构:

在输入 时,w,其中 是图灵机的描述:

  1. 做什么? ?输入
  2. 运行决定程序ETM在吗? ?
  3. 使用决定者返回的结果来回答原来的问题

这以提纲的形式说明了我们要做的事情。我们正在尝试为ATM建立一个决策器,所以我们建立的机器必须接受任何ATM决策器都会接受的相同输入。为了使ATM减少到ETM,我们必须在我们的机器中有一个步骤,我们运行ETM的决策器。最后,我们必须以某种方式使用该决策器返回的结果来回答最初的问题: 是否接受w?

我们要做的一件事是在步骤1中准备一个输入,我们可以将其传递给ETM决策器。ETM决策器将期望接收机器的描述作为其输入。

我们的第一次尝试是这样的。

在输入 时,w,其中 是图灵机的描述:

  1. 运行决定程序ETM在<>
  2. 如果决定者接受,这意味着M不接受输入,所以它肯定不会接受w。在这种情况下,我们可以拒绝原始输入。
  3. 如果那个决策者拒绝了,这仅仅意味着M接受了一些输入,但这并不能帮助我们决定M是否会接受w。我们现在被困住了。

这里有一个更好的解决方案:我们使用 和w一起构建第二台机器N,然后我们将其传递给ETM的决策器。设置N,使ETM返回的答案对我们更有帮助。

下面是中间机器N的描述:

输入x:

  1. 如果x≠w,停止并拒绝。
  2. 模拟w在M上运行,如果M运行,则接受。

我们现在使用中间机器使还原工作。

在输入 时,w,其中 是图灵机的描述:

  1. 和w构造上述机器N。
  2. 运行决定程序ETM在<N>
  3. 如果该决策者接受,则意味着N不接受任何输入,包括w。这告诉我们M不接受w。停止并拒绝
  4. 如果该决策器拒绝,则表示N至少接受一个输入。N唯一可能接受的输入是w, N接受w是因为M接受w。停下来接受。

现在我们构造了一个从ATM到ETM的有效约简,我们可以证明ETM是不可确定的。我们已经知道ATM是不确定的,所以我们上面构造的机器不可能工作。从这个观察中我们可以得出的唯一结论是,一定不存在ETM的决策器,因为我们刚刚展示了如何使用ETM的决策器来构建ATM的决策器。

的语言情商TM

一般的等式问题EQ是确定两台机器是否接受相同语言的问题。图灵机的变体,EQTM,是确定两个图灵机是否接受相同语言的问题。

我们通过将ETM简化为EQTM来证明EQTM是不可决定的:

在输入

  1. 构造一对 ,其中N是拒绝赢博体育输入的图灵机。
  2. 运行决定程序情商TM输入<N>。
  3. 如果它接受,这意味着M接受与接受空语言的机器相同的语言。这意味着M不接受任何东西。停下来接受。
  4. 如果决定者拒绝,就意味着M不接受空的语言,所以M接受了一些东西。停止并拒绝。

映射还原性

约简证明的一个共同特征是,在约简步骤中,我们必须将一个问题的原始输入映射到中间机器的输入。我们可以通过写出从一种语言a到另一种语言B的简化的一般大纲来抽象这个过程:

对于输入x,其中是a的一个潜在元素:

  1. 计算f (x)
  2. 在f(x)上运行B的决策器
  3. 如果B接受f(x),我们得出结论,x一定在A中,所以我们停下来接受。
  4. 如果B拒绝f(x),我们得出结论,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的一个潜在元素:

  1. 计算f (x)
  2. 在f(x)上运行B的决策器
  3. 因为A≤ B我们有这个fx)∈B当且仅当x一个。如果决定者为B接受fx),它的意思是fx)∈B,因此x一个。我们停下来接受。
  4. 同样,如果B的决策器拒绝f(x),这意味着f(x)不在B中,因此x不在a中,我们停止并拒绝。

定理如果A≤m B且A不可判定,则B不可判定。

通过矛盾的方式,我们假设B是可决定的。最后一个定理的证明使我们可以得出A一定是可决定的。这是一个矛盾,所以B一直都是不可决定的。

一个例子

作为赢博体育这些思想的一个例子,我将解决第五章末尾的问题20。

这个问题说的是“证明存在一个{1}*的不可判定子集”。

毫不奇怪,我们可以通过ATM的映射约简来证明这一点。我们所要做的就是找出如何将ATM的成员映射到{1}*的成员。这种情况下的技巧是计算理论中常见的技巧,编码技巧。ATM的成员采用 ,w的形式。这些字符串是用某种字母来编码机器M和输入字符串w的结构。作为计算机科学家,我们知道赢博体育的字符串都可以用某种字符编码方案写成比特序列。我们还知道,位序列可以用二进制表示法解释为整数。最后一个技巧是获取相关的整数,并将其重新编码为另一种符号,一元符号。在一元表示法中,整数n被表示为n个1的序列。

总而言之:

, w⇒字符串⇒位序列⇒二进制整数⇒一元整数

这是映射f我们要用它来简化。

输入x:

  1. 将x重新编码为二进制。
  2. 将二进制序列解释为整数n。
  3. 用一元重新编码,并在磁带上完成重新编码。

{1}*的不可确定子集是ATM在映射f下的像。