【问题标题】:How does a non deterministic turing machine work?非确定性图灵机如何工作?
【发布时间】:2011-01-09 03:05:46
【问题描述】:

我知道它们不是真实的,只要有 2 个选项,它们似乎就会分支计算,而不是选择一个。但是,例如,如果我这样说:

“非确定性地猜测从图 G 到图 H 的顶点的双射 p”(这里的上下文是图同构)

这是什么意思?我理解双射,但它说“非确定性猜测”。如果是猜测,那是一种算法方法吗?它如何保证它会起作用?

【问题讨论】:

    标签: theory complexity-theory turing-machines


    【解决方案1】:

    我相信这意味着“不确定地选择解决方案”,然后测试解决方案是否正确。由于测试了所有可能的选择(猜测),因此可以保证解决方案。

    【讨论】:

      【解决方案2】:

      非确定性图灵机的物理实现是 DNA 计算机。例如,以下是如何解决 DNA 中的旅行商问题的概要:

      1. 获取/制作一堆 DNA 序列,每个序列的长度与图中边的成本成正比,粘性末端带有唯一标识边连接的一个顶点的序列。

        李>
      2. 将它们混合在一起,在一个大烧杯中使用 DNA 连接酶。它们将按照代表图中每条可能路径的序列相互退火(好吧,不是很长的路径)。

      3. 删除所有缺少至少一个顶点的序列。为此,请使用杂交顺序选择每个顶点。例如,如果“ACGTACA”编码顶点 1,则选择与“TGTACGA”结合的序列。然后对每个其他顶点重复此选择。

      4. 使用凝胶电泳按大小对剩余序列进行排序。然后排序最短的。该序列对通过您的图形的最短路径进行编码。

      【讨论】:

      • 请记住,对于大问题,您需要一个非常非常大的烧杯。可能不适合银河系。这些问题变得越来越大。
      【解决方案3】:

      有不同的方式来描绘一个。我觉得有用的一个是 oracle 模型。你有没有看过 Far Side 漫画,其中黑板上的一个推导将“这里发生了奇迹”作为中间步骤之一?在这个版本的 NDTM 中,当您需要选择某些东西时,oracle 会在磁带的右侧写入正确的版本。 (这摘自 Garey 和 Johnson,Computers and Intractability,他们关于 NP 完全问题的经典著作。)但是,你不能假设你得到了正确的,而且可能不是正确的。

      因此,当您不确定地猜测双射时,只要存在一个双射,您就会得到适合您的目的的正确双射。

      这不是一个很好的算法基础,因为实现非确定性图灵机的复杂性在非确定性状态下基本上是指数级的,非确定性猜测的算法等价物是尝试所有可能的双射。

      从理论的角度来看,我会将其翻译为“如果存在这样的双射......”。从算法的角度来看,找另一本书,或者同一本书的另一章,因为即使是中等大小的图,这种方法也无用。

      【讨论】:

        【解决方案4】:

        他们没有,他们只是说明了一个观点。基本上他们所做的是猜测一个答案,并检查它是否正确(确定性地)。重要的不是猜测答案部分,而是检查答案是否正确。这就像说给定一个任意的解决方案,对吗?例如,有些问题需要指数级的时间来计算,他们的一些答案可以在多项式时间内检查,但有些则不能。因此,非确定性 TM 所做的是将这两者分开,可以快速检查的和不能快速检查的。然后这带来了一个更大的问题,如果一组问题的解决方案可以比另一组更快地验证,他们的解决方案也能更快地生成吗?这个问题还没有回答。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-04-14
          • 1970-01-01
          • 2012-11-11
          • 2018-07-14
          • 2013-01-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多