为什么图灵机是流行的计算模型?


67

我是CS本科生。我了解Turing是如何提出他的抽象机器(建模一个进行计算的人)的,但是在我看来,这是一个笨拙,优雅的抽象。我们为什么要考虑“磁带”,而机器头部要写符号,改变状态,来回移动磁带?

潜在的意义是什么?DFA非常优雅-似乎可以准确地捕获识别常规语言所必需的内容。但是根据我的新手判断,图灵机只是一个笨拙的抽象装备。

考虑一下之后,我认为最理想的计算模型是说,与输入字符串相对应的某个物理系统在被设置为运动后,将达到静态平衡,经解释,该平衡等于用于形成的静态平衡。从原始字符串开始的系统,将对应于正确的输出字符串。这捕获了“自动化”的概念,因为系统将仅基于原始状态确定性地进行更改。

编辑

在阅读了一些答复之后,我意识到让Turing机器感到困惑的是,它似乎并不是最小的。规范的计算模型是否应该明显传达可计算性的本质?

另外,如果不清楚,我知道DFA并不是完整的计算模型。

感谢您的答复。


2
希望以后的课程会有所帮助。
Yuval Filmus

19
也许您会发现lambda演算是一种更自然的计算模型。这是函数式编程的基础。
巴库里

4
实际上,我即将毕业。我参加的涉及自动机理论的最高级别课程在Turing机器上停止了,尽管它们确实提到了各种计算模型之间的等效性。我什至正确地分享了基本的TM“编程”。但是TM总是让我烦恼。它似乎不是“最小”的。它没有向我展示计算的本质。
亚历克斯

4
某些与输入字符串相对应的物理系统 ”-该对应关系将如何?图灵机是针对这种事情的相当简单但功能强大的正式模型
Bergi '18年

2
图灵机确实仅根据原始状态(如果您是指配置)来确定性地进行更改。那怎么了
user23013

Answers:


72

嗯,DFA只是图灵机,只允许向右移动,一旦输入字符用完就必须接受或拒绝。因此,我不确定是否真的可以说DFA是自然的,但Turing机器不是。

除了对这个问题的评论外,请记住图灵计算机存在之前就已经在工作。因此,他并不是要整理电子计算机的功能,而是一般地计算。我的父母有一本1930年代的字典,该字典将计算机定义为“计算的人”,而这基本上就是图灵的来源:对他而言,当时的计算涉及计算尺,日志表,铅笔和纸片。按照这种思维方式,在纸带上重写符号似乎不是一个糟糕的抽象。

好的,很好,您是在说(我希望!),但是我们已经不在1930年代了,那么为什么我们仍然使用它呢?在这里,我认为没有任何特定原因。图灵机的优点是它们相当简单,并且我们很擅长证明有关它们的事情。尽管正式指定Turing机器程序来完成某些特定任务非常繁琐,但是一旦完成几次,您就可以对它们可以做什么有一个合理的直觉,并且您不再需要编写正式的规范。该模型还可以轻松扩展为包括其他自然特征,例如随机访问磁带。因此,它们是一个非常有用的模型,我们很好理解,并且对它们与实际计算机的关系也有很好的理解。

人们可以使用其他模型,但随后就不得不在新模型的结果与图灵机可以完成的大量现有工作之间进行大量转换。没有人能找到具有足够大优势的图灵机的替代品,以使其成为一个好主意。


评论不作进一步讨论;此对话已转移至聊天
吉尔斯

56

您在问几个不同的问题。让我简短地一个接一个地回答他们。

图灵机模型有什么重要意义?

在可计算性理论的萌芽时期,在各种情况下提出了几种计算模型。例如,试图了解他的不完全性定理适用于哪些证明系统的哥德尔提出了一般递归函数的形式主义,而丘奇提出了演算来尝试建立无悖论的数学基础。图灵本人受到希尔伯特问题的激励,希尔伯特要求“纯粹的机械过程”来确定给定数学表达式的真值。λ

当时,图灵试图定义可计算性似乎是最令人满意的。最终证明,上述所有计算模型都是等效的 -它们都描述了相同的可计算性概念。由于历史原因,图灵模型是定义可计算性的最典型方法。与许多其他模型(包括上面列出的模型)相比,该模型还非常初级且易于使用。

普通的计算机科学将图灵机作为可计算性的定义,然后将它们也用于探索复杂性理论。但是,虽然针对一个更现实的模型(称为RAM机)对算法进行了分析,但是此问题通常被作为掩盖秘密的秘密而一网打尽。

DFA不是更好的模型吗?

这是Rabin和Scott的著名论文《有限自动机》及其决策问题背后的原动力:

图灵机被广泛认为是数字计算机的抽象原型。但是,该领域的工作人员越来越感到图灵机的概念过于笼统,无法用作实际计算机的精确模型。众所周知,即使对于简单的计算,也不可能对图灵机进行任何给定的计算所需的磁带数量给出先验上限。正是这一功能使图灵的概念变得不切实际。

在最近几年中,有限自动机的思想出现在文献中。这些机器仅具有有限数量的内部状态,可用于存储和计算。有限性的限制似乎可以更好地近似物理机器的概念。当然,这样的机器不能像图灵机那样做,但是能够计算任意的通用递归函数的优点是可疑的,因为在实际应用中很少有这些函数。

然而,事实证明,尽管图灵机太强了,但DFA 太弱了。如今,理论家更喜欢多项式时间计算的概念,尽管这种概念也不是没有问题。也就是说,DFA和NFA仍然有其用途,主要用于编译器(用于词法分析)和网络设备(用于极高效的过滤)。

图灵机的型号不是太有限了吗?

教会图灵论题指出,图灵机捕捉可计算的物理概念。尤里·古列维奇(Yuri Gurevich)试图证明这一论点,他提出了一种称为抽象状态机的更通用的计算设备,并证明它们在功能上与图灵机相当。也许这些机器类似于您的理想模型。


17

潜在的意义是关于图灵等效的思想。确切的模型并不重要,只要与图灵等效即可。但是最好使用更简单的模型,以便可以更轻松地证明与其他模型的等效性。

更确切地说,最好使它更容易在其他模型中仿真该模型,因为我们知道大多数高级编程语言都是与Turing等效的(具有关于内存地址的某些假设),并且可以用于仿真其他模型。

还有其他模型,例如lambda演算和(字符串重写)语法。但是在图灵机中定义时间和空间限制更为容易。您还可以使用诸如Brainfuck之类的编程语言,但是它需要进行不必要的工作来重新定义符号,例如有时需要进行逻辑上的琐碎修改。

因此,如果您必须为所有内容学习单个模型,那么图灵机似乎对我来说非常合适。但是,无论如何,如果您要学习多个模型,对于图灵等效的思想学习lambda演算,证明其他与图灵等效的模型的Brainfuck以及实用的编程语言(更好的可访问堆栈且没有隐藏变量),我认为没有错是正确的由于时间/空间的限制,如果没有人为找到解决办法而只考虑使用图灵机来证明这些东西是等效的。如果您不首先学习基础理论,而是只有在您发现它们很有用时才这样做,这自然就会发生。


1
基本上所有真正的现代CPU都是带有RAM的寄存器计算机。即使是只有一个累加器寄存器的微控制器或玩具架构,也通常具有某种单独的地址寄存器,您可以将指针加载到其中,而不是纯粹的累加器机器。但是实际的硬件具有固定大小的地址,因此图灵不完整。如果在理论CS中大量使用套准机模型,则为IDK,但这是汇编语言在现实生活中的工作方式,并且可能有助于理解性能分析,因为所有内容都可以汇编为asm。
彼得·科德斯

14

我想回答部分问题,并在编辑中添加:

“规范的计算模型显然不能传达可计算性的本质吗?”

图灵在他的原始论文中所做的非凡的一件事情-介绍了我们现在称为“图灵机”的一件事情-是他构造了一可以模拟其他所有图灵机的图灵机。一旦构建了这种“通用图灵机”,它就可以通过制作具有两个独立特征的输入磁带来工作:首先,一个人希望模拟的图灵机的编码;那么,人会插入图灵机的输入磁带的拷贝,如果碰巧有坐在一起。用半现代术语来说:首先,插入一个通用图灵机编译的程序;然后,插入通用图灵机使用已编译程序运行的输入。牛逼牛逼TTT

那就是可计算性的本质之一:无论考虑到任何可计算性的一般概念,都应该有一台机器来完成所有这些工作。这正是通用图灵机的功能。这也是现代计算机的功能(受具有无限内存的物理上不切实际的理想化的影响)。

提出这一问题的另一种方法直接解决了您对Turing机器不是最小的担忧,那就是它们应尽可能地最小化,但前提是它们必须描述存在通用机器的一般可计算性概念。


感谢您提醒我有关通用机器的信息。我看到这意味着“完整”的计算。
Alex

5

图灵机并非按字面意思使用;为了了解它们的工作原理,在其中进行编程只是一种练习,只能做一次。

明确地说,它们并非“做什么”。他们不需要最小化,也不需要舒适地工作。

它们只是您可以构建的机器的模型,与您可以在物理宇宙中构建的任何其他机器一样,表现力和功能强大(就我们今天所知)。

主要是由于图灵按其方式定义它们的原因:

  • 为了能够证明它们涵盖了我们可能想到的所有算法。
  • 处理暂停问题/决策问题。
  • 为了能够将任何其他机器/语言减少到这一语言。

是否有可能选择另一种语言?当然!我们今天知道的任何图灵完整语言都可以使用。但是,要在更复杂的机器上建立理论基础会更加困难。

我认为它们甚至不是“流行的计算模型”。没有人会用图灵机计算任何东西。它是理论计算机科学家针对tcs的纯粹理论性概念。


同意所有观点。流行也许只是相对于诸如Thue机器,Lambda演算和Emil Post之类的较为晦涩的模型而言。
luser droog '18

抱歉,但是您错过了其他语言会严重混乱的一个中心点。图灵机定义了您可以实际计算的内容。任何其他语言都会将这个问题限制在您如何计算它的问题上,从而使它极不可能证明您可以计算出什么。
弯曲

如果应该将图腾机作为其他型号的降价目标,那么为什么不必将它们最小化呢?
Bergi '18年

@Bent,我承认除了我提到的内容外,我还没有完全理解您要说的话,“但是要在更复杂的机器上建立理论基础会更加困难。” (即,在我们知道并使用它们的实际编程语言上)。
AnoE

流行,是指理论CS中使用的东西。再说一次,这是我学到的唯一模型(尽管我认为我接触了一些lambda演算)。我只是想知道为什么,也许从教学上讲,它总是第一个被教授。我看到了它的实用性。
亚历克斯(Alex)

5

为什么受欢迎,也许最受欢迎? 您必须记住,图灵在电子计算机诞生之前就发明了这台“机器”。TM用纸,笔,橡胶和最后但并非最不重要的人脑操作。因此,每个人都可以使用此计算机进行“计算”。每个人都是一个从未学习过计算机,不会编程语言的人。使用简单。当您考虑时,会发现一个悖论:这台机器几乎是什么都没有组装,但您可以操作所有东西。在我看来,“几乎没有/相对/一切”的悖论是其流行的原因。我会注意到TM并没有明确解释递归,TM只处理“跳转”。该功能(明确地谈论递归)可能是菜鸟的头疼问题,例如在lambda演算中,Y组合器的概念几乎是无法理解的。更确切地说,TM之所以受欢迎,是因为没有递归头痛的“几乎没有/相对/一切”的悖论。

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.