为什么这是一台无效的图灵机?

时间:2010-03-12 20:20:52

标签: state-machine computation-theory turing-machines

在进行考试修订时,我无法回答Sipser所着的“计算理论导论”中的以下问题。不幸的是,书中没有解决这个问题的方法。

解释为什么以下不是合法的图灵机。

M = {

输入是变量x1,...,xn

的多项式p
  1. 尝试将x1,...,xn的所有可能设置为整数值
  2. 评估所有这些设置
  3. 如果这些设置中的任何一个评估为0,则接受;否则拒绝。 }
  4. 这让我抓狂!我怀疑是因为整数集是无限的?这是否超出了字母表允许的大小?

3 个答案:

答案 0 :(得分:6)

虽然这是描述图灵机的一种非正式方式,但我会说问题是以下之一:

  • otherwise reject - 我同意Welbog的观点。由于你有一套可能无限的可能设置,机器永远无法知道它的评估结果是否仍然存在,如果没有找到任何设置,它将永远循环 - 只有遇到这样的设置时,机器可能会停止。最后一个语句是无用的,永远不会成立,除非你将机器限制为一组有限的整数。

  • 代码顺序:我会把这个伪代码读作“首先写下所有可能的设置,然后在每一个上评估p”,这就是你的问题: 同样,通过拥有一组无限可能的设置,即使第一部分也不会终止,因为从来没有最后一个设置要记下并继续下一步。在这种情况下,机器甚至不能说“没有0设置”,但它甚至不能开始评估找到一个。这也可以通过限制整数集来解决。

无论如何,我认为问题不在于字母表的大小。您不会使用无限字母表,因为您的整数可以用十进制/二进制/等编写,而那些只使用(非常)有限字母表。

答案 1 :(得分:1)

我在图灵机上有点生疏,但我相信你的推理是正确的,即整数集是无限的,因此你无法计算它们。我不知道如何在理论上证明这一点。

然而,让你了解图灵机的最简单方法是记住“真正的计算机可以计算的任何东西,图灵机也可以计算。”。所以,如果你能编写一个给出多项式的程序可以解决你的3个问题,那么你将能够找到一个也可以做到的图灵机。

答案 2 :(得分:1)

我认为问题出在最后一部分:otherwise reject.

根据countable set basics,可数集上的任何向量空间本身都是可数的。在您的情况下,您在大小为n的整数上有一个向量空间,这是可数的。因此,您的整数集是可数的,因此可以尝试它们的每个组合。 (也就是说没有遗漏任何组合。)

此外,还可以在给定的输入集上计算p的结果。

p评估为0时进入接受状态也是可能的。

但是,由于输入向量数量无限,您可以从不拒绝输入。因此,没有图灵机可以遵循问题中定义的所有规则。没有最后一条规则,就有可能。