图灵完善意味着什么?


34

我看到大多数关于图灵完备的定义在一定程度上都是重言式的。例如,如果您的Google“图灵完全意味着什么”,您将获得:

如果计算机可以解决图灵机可以解决的任何问题,那么图灵计算机就是完整的。

尽管已经很好地定义了不同的系统是否都完成了Turing,但我还没有看到关于Turing完成的含义/后果的解释。

在不存在还可以执行相同任务的非图灵机的情况下,图灵机可以做什么?例如,一台计算机可以执行诸如之类的简单计算(1+5)/3=?,但是普通的计算器也可以执行这些计算,如果我是对的,那是非图灵完整的。

有没有一种方法可以定义Turing Machine的功能而不仅仅是说“能够模拟另一台Turing Machine”?


31
查找“图灵机”的定义。有没有圆形定义,因为图灵机是定义为“能够模拟另一个图灵机” -这是一个完全设计理论计算机(基本上,一个无限磁带状态机)。您只是在混合“图灵完成”和“图灵机”。据我所知,我们仍然不知道任何不能在图灵机上运行的算法,但这可能只是我自己的无知。
卢安

2
@Luaan The Church-Turing论文将同意您的观点。
Brian McCutchon

“有没有一种方法可以定义Turing Machine的功能”。当然。理论涉及使用图灵机(L,NL,P,NP,PSPACE等)求解算法需要多少空间和时间,并且还存在无法解决的问题(通常可以通过简化为其他无法解决的问题)。图灵机无法解决的一个问题示例是停止问题。
米莉·史密斯

说到CS(或其他任何一种)理论,总要读一本关于主题的书胜过搜索它,并且阅读一些关于主题的博客文章,在很多情况下,这些博客文章都是由不完全理解主题的人撰写的他们自己。一本好书可以节省您的时间,给您更广阔的视野和更好的理解。
Bozidar Sikanjic

阿克曼函数是的东西突出的例子是图灵机可以计算,但更有限的计算(模型原始递归)不能。
zwol

Answers:


13

我考虑了一会儿是否要添加另一个答案。其他答案集中在他的问题的中间(关于“图灵完成”,“重言式”等)。让我抓住第一部分和最后一部分,从而获得更大而略带哲学的图景:

但是这是什么意思?

图灵完善意味着什么?

有没有一种方法可以定义Turing Machine的功能而不仅仅是说“能够模拟另一台Turing Machine”?

非正式地讲,图灵完善意味着您的机制可以运行您可能想到的任何算法,无论它有多复杂,深入,递归,复杂,长(就代码而言),无论有多少存储空间或时间都可以需要对其进行评估。不言而喻,如果该问题是可计算的,它只能成功,但如果它可计算的,它成功(停止)。

(注:要找出为什么这是“非正式的”,请查看符合这些原则的Church-Turing论文,措辞要更详尽;不过,作为论文,它可能正确也可能不正确。感谢@DavidRicherby支持在评论中指出这一点。)

“算法”是指我们今天通常理解为计算机算法的内容;即,通过一系列离散的步骤来操作存储,并混入了一些控制逻辑。但是,它与Oracle计算机不同,即它不能“猜测”。

实用的非tc语言示例

如果您已编程,则可能知道用于将字符串匹配到某种模式的正则表达式。

这是一个结构的一个例子不是图灵完备。您可以轻松地找到不可能创建与某些短语匹配的正则表达式的练习。

例如(这肯定使许多程序员在实际的实际应用中感到烦恼),从理论上和实践上都不可能创建与编程语言或XML文档相匹配的正则表达式:正则表达式无法找到块结构(do ... end{ ... }语言;打开和关闭XML文档中的标签)(如果允许的话,可以任意深一些)。如果有一个限制,例如您只能有3个级别的“递归”,那么您可以找到一个正则表达式;但是如果没有限制,那是不行的。

由于显然可以用图灵完备的语言(例如C)创建程序来解析源代码(任何编译器都可以),因此正则表达式将永远无法模拟该程序,因此按定义它们不是图灵完备的

动机

图灵机本身的想法是不切实际的。也就是说,图灵当然不是发明它来创建真正的计算机之类的东西,例如与查尔斯·巴贝奇或冯·诺依曼相反。具有图灵机概念的要点是极其简单。它几乎不包含任何内容。它将可能的(和实际的)计算机减少到可以想象的最低水平。

反过来,这种简化的目的在于,这使得思考理论问题(如暂停问题,复杂性类别以及任何理论计算机科学本身困扰自己)的思考变得容易。特别地,一个特征是通常容易通过简单地用该语言编程所述图灵机来验证给定语言或计算机是否可以模拟图灵机。

到无穷远

请注意,您永远不需要无限的时间或存储空间。但是时间和存储空间都是无限的。对于每个可计算的运行,它们将具有最大值,但是该值可以变为多大没有限制。一台真正的计算机最终将用完RAM的事实在这里被掩盖了;这当然是对任何物理计算机的限制,但它也是显而易见的,并且与计算机的理论“计算能力”无关。另外,我们根本不关心实际需要多长时间。因此,我们的小型机器可以使用任意数量的时间和空间,这绝对是不切实际的。

... 超越

一个惊人的最后一点,那么,就是这样一个简单的,简单的事情可以做的一切任何可以想象真正的计算机可能曾经,在整个宇宙,实现(只是很慢得多) -至少就我们今天所知。


“从非正式的角度来说,图灵完善意味着您的机制可以运行您可能想到的任何算法。”嗯,这取决于接受Church-Turing论文,该论文说Turing机器可以实现您可以想到的任何算法。或者,您也可以将图灵机作为算法的定义,在这种情况下,非正式声明只是“可以模拟任何图灵机”的非正式版本(这不是一件坏事;只是一个观察)。
David Richerby '17

我的印象是,OP要求进行直观的理解,以完成巡回演出意味着什么。因此,这种轻率的,非理论的计算机科学答案。感谢您指出这一点,我将其整合到答案中。@DavidRicherby
AnoE

谢谢!这就是我一直在寻找的答案。我在考虑停顿问题,以及具有简单有界for循环的语言如何可预测(它们总是停顿)-从而无法完成图灵。我在想,图灵完备意味着某种程度上可能不可预测(对于这些功能而言,混沌是正确的说法吗?)
sashoalm

@sashoalm,很高兴您喜欢这个答案。不,不可预测性并没有真正纳入该问题。有界的for循环(非tc)也是一个很好的例子。实际上,简单(更真实)的tc语言的另一个很好的例子是仅具有变量和(无边界)的tc语言,这while已经足够tc。控制结构的(无)界是关键要素之一。
AnoE

38

这根本不是重言式的。

如果一个计算模型可以模拟所有图灵机,那么它就是图灵完备的,也就是说,它至少与图灵机一样强大。

图灵机可以做的一件事是模拟其他图灵机(通过通用图灵机)。这意味着,如果您的计算模型无法模拟Turing机器,则它至少不能完成Turing机器可以做的一件事情,因此它不满足定义,因此Turing也不完整。没有圆度,因为我们没有根据自身定义图灵完备性:我们说过图灵完备性是能够执行图灵机可以做的所有事情的属性。

一种b

有没有一种方法可以定义Turing Machine的功能而不仅仅是说“能够模拟另一台Turing Machine”?

我不确定“定义图灵机的功能”是什么意思。这些功能是根据在无限磁带上运行的有限状态自动机定义的。(我不会重复完整的定义,但是您可以在Wikipedia上找到它。)


19
我认为OP将Turing机器和Turing完成了混合。他真正在寻找的是图灵机的定义。您的最后一句话就是答案。en.wikipedia.org/wiki/Turing_machine会有所帮助。
JollyJoker

那么什么可以图灵机吗?例如,如果我想证明某些东西可以模仿图灵机,那么我必须能够证明哪些最小行为集可以证明我的机器也可以做到?
Akshat Mahajan

2
没关系-我已经证明,足以证明一种语言可以模仿图灵机的运行方式就足以证明它是图灵完备的。
Akshat Mahajan

17

图灵的计算模型只是许多等效计算模型之一。它具有与Gödel的递归函数和Church的lambda演算(在同一时间提出)以及其他模型(如指针机)相同的功能。因此,您可以声明

如果计算机可以解决Excel可以解决的任何问题,则它是图灵完备的计算机。

这是可行的,因为Excel也是图灵完备的。我建议您查看Wikipedia关于Church-Turing论文的页面,以及Blass和Gurevich的调查论文《算法:对绝对定义的追求》


关于您的问题,非图灵机无法完成的图灵机能做什么,总的来说,答案取决于非图灵机。

但是,可以定义图灵完备问题的非平凡概念,例如:

大号一种F一种一种F一种大号

在此定义下,停止问题的合适编码是图灵完备的,因此对于一类合理的机器(取决于“有效可计算”的定义),如果它可以实现某些(等效地,所有)图灵完备的语言。

这种形式主义还存在许多其他的图灵完备问题,具体取决于“有效可计算”的定义,例如图灵对应问题,与王瓦片和生命游戏有关的问题。这些问题中的任何一个都可以作为基准,而不是停顿问题。


“不幸的是,答案取决于非图灵机” –我编辑了问题,因为不清楚。您可以选择任何非图灵机,只要它可以在保持非图灵完成状态的同时执行任务即可。
sashoalm

5
Excel is also Turing-complete.-仅当您可以给Excel无限内存时。Excel被限制为1,048,576行和16,384列,这与无限无穷。
马特克拉克(MattClarke)'17

5
@MattClarke:是的,但是出于同样的原因,没有一个系统是图灵完备的。
埃米尔(Emil)

3
@Emil:准确,CS的学生必须区分计算模型的功能和实际机器的功能,这一点很重要。当然,我们中那些反复达到实际机器的物理极限的人会发现这种区分很容易做到。因此,我们有点知道如何定义Excel计算模型的不受限制版本,并且它将是图灵完备的。即使实际上写出该定义有点儿麻烦。
史蒂夫·杰索普

4
@SteveJessop机器的物理极限?有人怎么会打这种东西?640k足够任何人使用!
David Richerby

4

首先,我想指出,图灵完备性的定义根本不是重言式的。不仅证明计算模型Turing-complete本身是一个有趣的结果,而且还允许您立即将可计算性理论的所有结果扩展到该其他计算模型;例如:2台计数器机器是图灵完备的,图灵机不能解决暂停问题,因此2台计数器机器都不能。

μ

此类包含了“直观可计算”的那些功能,也就是说,人类可以使用铅笔和纸的精确算法来执行该计算。

显然,“直觉可计算”并不是一个正式的定义,将“直觉可计算”与“图灵可计算”的识别称为教会图灵理论。由于许多表征可计算性的形式尝试最终都收敛到了图灵完备的计算模型,尽管从数学意义上讲,永远不会有这种断言的形式证明,但仍有充分的理由相信它。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.