【问题标题】:Why is this an invalid Turing machine? [closed]为什么这是一个无效的图灵机? [关闭]
【发布时间】:2011-01-26 23:53:24
【问题描述】:

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

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

M = {

输入是关于变量 x1, ..., xn 的多项式 p

  1. 尝试将所有可能的 x1、...、xn 设置为整数值
  2. 在所有这些设置上评估 p
  3. 如果这些设置中的任何一个计算结果为 0,则接受;否则拒绝。 }

这快把我逼疯了!我怀疑这是因为整数集是无限的?这是否超出了字母表的允许大小?

【问题讨论】:

  • 在您的第一次编辑中,等号右侧没有任何内容。 M =
  • 我投票结束这个问题,因为这是一个 CS 理论问题,而不是关于编程的问题。

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


【解决方案1】:

虽然这是描述图灵机的一种非常非正式的方式,但我认为问题在于以下之一:

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

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

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

【讨论】:

    【解决方案2】:

    我对图灵机有点生疏,但我相信你的推理是正确的,即整数集是无限的,因此你不能全部计算出来。我不确定如何从理论上证明这一点。

    但是,了解图灵机的最简单方法是记住“任何真实计算机可以计算的东西,图灵机也可以计算。”。因此,如果您可以编写一个给定多项式的程序可以解决您的 3 个问题,那么您将能够找到一台图灵机也可以。

    【讨论】:

      【解决方案3】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-04-19
        • 1970-01-01
        • 2023-01-13
        • 2010-09-19
        • 2016-03-17
        • 2011-04-08
        • 1970-01-01
        • 2019-04-11
        • 2017-03-27
        相关资源
        最近更新 更多