通用图灵机问题

Posted

技术标签:

【中文标题】通用图灵机问题【英文标题】:Universal Turing Machine Problems 【发布时间】:2011-01-07 06:06:35 【问题描述】:

如果我有一台机器,称之为机器 1,它能够解决一个问题:它只是一台机器,而不是图灵机。它可以解决一个特定的问题。 如果这个完全相同的问题可以在通用图灵机上解决,那么我原来的机器 1 也是通用图灵机吗?

这并不适用于所有问题,这已经被解决了。是否有任何具有此描述属性的问题?如果绝对不是真的,那为什么呢?

有人可以举一个要解决的问题的例子吗?如果我原来的机器解决了这个问题,1,确定这是一台万能车床吗?还是不存在这样的问题?如果不存在,为什么?

我很感兴趣,但想不通...谢谢。

编辑:使问题更清楚。

【问题讨论】:

如果它有四条腿,那是猫吗? 什么是persé?沙漠? 【参考方案1】:

通用图灵机可以解决任何一大类问题。

如果你的机器(1)可以解决 1+1,那并不意味着它可以解决任何一个巨大的类。所以它可能不是一个通用图灵机。

【讨论】:

【参考方案2】:

逻辑学家区分“充分”和“必要”条件。以句子为例

天空是蓝色的。

(让我们假设这总是正确的)。你现在知道的是:

当你仰望天空时,你会看到蓝色。

知道的是:

当你看到蓝色时,你在看天空。

-- 你不妨看看你邻居的车。

从逻辑上讲,蓝色对于天空来说是必要的,但这还不够。

您的情况也是如此:机器 (1) 确实解决了您的问题,因此它确实是一个可解决的问题。因此,能够解决问题是 UTM 的 必要 条件,但不是充分条件,因为 UTM 必须能够解决 任何 问题(可在全部),而不仅仅是这一个。

【讨论】:

我明白这一点。是否有足够的问题,解决后,我的机器变成了UTM,基本上是我的问题。 @Pindatjuh:是的,有一个问题,一旦解决,对于 UTM 来说就足够了:能够模拟 any 图灵机——这就是 UTM 的定义.【参考方案3】:

Universal Turning Machine (UTM) 的重点在于,对于任何 Turing Machine (TM),您都可以使用该 TM 并为其创建一个编码来描述 TM 的操作,并让该编码在另一个 TM 上运行。

UTM 是一个定义足够强大的 TM,任何其他 TM 定义都可以在其中重写。

将 UTM 视为解释器。 TM 是一项特定的任务。

除非 TM 也属于解释器类,否则它也不是 UTM。 (因为 UTM 也是一个专门负责的 TM)。

所以回答你的第二个问题:如果你能证明 UTM 和 TM 是等价的,那么你已经证明 TM 也是一个 UTM。为此,您需要能够展示如何将 UTM 的编码程序更改为 TM 的等效程序。

【讨论】:

啊。你能给我一个关于 UTM 的“编码”的例子吗?如果有人为最简单的 UTM 展示它,那么它适用于所有 UTM,我知道:但这仍然需要一个人展示最简单的 UTM 也在我的机器上工作,对吧? ***上有一些东西(en.wikipedia.org/wiki/Universal_Turing_machine),我必须搜索 CS 课堂笔记才能找到更多... 基本上你定义了一个 TM 在一个 TM 中是什么,所以你基本上对状态转换进行了编码(如果符号是 x,那么做 y)然后 UTM 的状态转换都是关于解释这些状态转换并将它们应用于输入数据。【参考方案4】:

通用图灵机可以解决任何特定图灵机可以解决的任何代码。

因此,您的通用图灵机 (2) 可以解决原始图灵机 (1) 旨在解决的问题。

但是,您原来的图灵机 (1) 只能解决那个确切的问题,而不能解决任何其他问题(包括作为通用图灵机的“问题”)。

所以不,根据您的描述,您原来的图灵机不是通用图灵机。 (如果您将其定义为,则可能是这样,但那是一种作弊)。

【讨论】:

【参考方案5】:

有人可以举一个要解决的问题的例子吗?

当然:给定编码的车床和数据,结果是什么 :) 如果你的机器能解决这个问题,那肯定是 UTM。

你知道为什么这些不同的问题出现在 NP 中的推理路线吗?就像“当我有一台可以解决哈密顿问题的机器时,我能解决 3-sat 问题吗?”你当然可以用它来回答你的问题。

【讨论】:

不,我不知道。什么是 NP 问题,3-sat,哈密顿量?在我理解我的问题之前,我真的需要知道这些吗? Umm..no...但是 NP 类被定义为“可以在多项式时间内在非确定性 TM 上解决的问题”。有一个很好的证明表明某个问题(“平铺问题”)存在于 NP 中。证明是这样的:让我们有一台图灵机。在图块中对其进行编码。如果我们解决了“平铺问题”,我们可以轻松地将结果转换为图灵机将产生的结果。 请注意:“平铺问题”不是图灵机的示例,因为它仅相当于在非确定性多项式时间内运行的 TM 问题 - 但它是如何编码的想法之一图灵机。参见例如这里:cs.uml.edu/~wang/cs502/tiling.pdf NP 的另一个定义是“可以有效检查任何提议的解决方案的问题”。能够在多项式时间内解决非确定性图灵机上的问题,就相当于能够在多项式时间内(即我在这里称之为“高效”)。【参考方案6】:

证明特定系统的图灵完备性并非易事,除非您可以轻松地证明它与已知图灵完备的另一个系统等价/同构。如此简短的回答:没有简单的测试可以让您的机器通过检查它是否是图灵完备的。您必须分析并显示整个系统的属性。

如果您想了解有关此主题的更多信息,请阅读有关 Turing completeness 和 computability theory 的这些文章。

【讨论】:

【参考方案7】:

想象一个 UTM,如果您必须编写代码(高级)来模拟图灵机,您将如何进行。您将需要以下内容: 1.Array 用于保存输入符号和 yiu 将在其上执行的操作。 2.一个数组(可能是 2-d)来保存你将提示用户的转换函数。 3.一种读取用户输入的转换函数并在数组1上模拟的算法。 4.您的程序需要跟踪自己的状态的变量很少。

如果你以这种方式思考,如果你最终得到一个完美工作的代码,你最终会得到一个完美的 UTM。 然而问题是,无论你的编码效率如何,你都无法阻止用户输入可能导致你的代码永远运行的转换函数。所以会有一些问题 UTM 会失败,然后我们说那些问题我们不能开发会员测试机。(尽管注意会员验证机总是可以的)

【讨论】:

以上是关于通用图灵机问题的主要内容,如果未能解决你的问题,请参考以下文章

图灵机

操作系统启动篇--01

day02

图灵模型和冯诺依曼模型

传输和计算

“非图灵完备”到底意味着什么