采用图灵机作为计算的主要模型的历史原因。


44

据我了解,图灵的模型已成为描述计算的“标准”。我想知道为什么会这样-也就是说,为什么TM模型比其他理论上等效的(据我所知)模型(例如Kleene的μ递归或Lambda微积分(我理解)前者直到后来才出现,而后者最初并不是专门为计算模型而设计的,但这表明从一开始就存在替代方案。

我能想到的是,TM模型比其替代品更能代表我们实际拥有的计算机。这是唯一原因吗?


1
尽管它们不是直接在同一主题上,但是问题cstheory.stackexchange.com/questions/625/…cstheory.stackexchange.com/questions/1117/…探索了TM与微积分之间的关系,并具有一些历史元素。λ
Suresh Venkat 2010年

是的,我看到了。我相当了解各种理论的字面历史,但是如果您愿意的话,我对随着时间的发展而产生的兴趣也越来越多,这些发展导致了该领域当前的“偏好”。
埃文(Evan)2010年

2
实际上,有些模型(可以说)更接近真实计算机,请参见此问题。通常,最佳模型取决于需求,并且一个区域到另一个区域是不同的。
卡夫

Answers:


46

在计算机科学(某些领域)的背景下,这似乎是正确的,但一般而言并非如此。

原因之一与教会的论题有关。主要原因是像Godel这样的专家并不认为先前/其他计算模型准确地反映了直观计算概念的说法令人信服。有各种各样的论点,教会有一些论点,但他们没有说服戈德尔。另一方面,图灵的分析对戈德尔来说很有说服力,因此被接受为有效计算模型。稍后将证明不同模型之间的等效性(我认为是Kleene)。

λμ

μλ。另请参阅Viggo Stoltenberg-Hansen和John V.Tucker III的论文。)

一些资源可供进一步阅读:

Robert I. Soare有许多关于这些发展历史的文章,我个人很喜欢《可计算性理论手册》中的文章。您可以通过查看该论文中的参考文献找到更多信息。

另一个很好的资源是Neil Immerman 在SEP上的可计算性文章,另请参阅B. Jack Copeland的Church-Turing论文

戈德尔的作品集包含许多有关他的观点的信息。特别是他的文章介绍写得非常好。

克莱因的《超数学》是一本非常好的书。

最后,如果您仍然不满意,请检查FOM邮件列表的存档,如果在存档中找不到答案,请向该邮件列表发送一封电子邮件。


如果我做错了事,请告诉我。
卡夫

1
哇,这是很棒的信息。感谢您提供的资源,我将把它们签出(我打算阅读元数学-我将把它列队)。
伊万(Evan)2010年

不客气,希望我没有记错。:)
Kaveh's

最近的谈话罗伯特暴涨的INI。据我了解,对他来说,从递归函数和递归理论转换为图灵模型和可计算性的主要原因是:很难理解和运用递归理论,以至于没人能理解正在发生的事情,除了少数情况下,可计算性的变化使人们更容易理解和恢复该区域。
卡夫

19

我想削弱以下观点:TM是计算的主要模型,或者至少指向问题的另一个维度。显然,TMs在计算机科学中面向复杂性和算法的方面占主导地位,但是在编程语言理论和实践中,它们并不是特别重要。造成这种情况的原因有很多种,但也许最重要的是,TM或在TM上运行的程序(与lambda计算或过程计算不同)不是以代数方式构造的。这使得难以发展类型理论,而类型理论一直是编程语言理论的主要内容。


2
同样,TM程序(也称为过渡表)并不是人类真正可读的。
拉斐尔

13

Turing机器的优点之一是它们使用字符串而不是自然数或lambda项,因为许多问题的输入和输出可以自然地表达为字符串。我不知道这是否算作“历史”原因。


13

除了图灵机是笔和纸计算的令人信服的模型(“计算的直观概念”)外,我认为它们具有一系列经常有用的功能,特别是在证明有关它们的定理时:

  • 它们易于形式化描述并且具有简单的操作语义;
  • 具体定义它们的时间和空间复杂度很容易;
  • 可以通过具有多项式开销的TM来模拟电子计算机(例如随机存取机)等更为现实(复杂)的模型,反之亦然。

有时,描述的便利性似乎阻碍了TM的实用性,因为如果您不小心的话(至少,如果我不小心...诚然,我是新手),描述会迅速演变为纯英语的解释。
埃文(Evan)2010年

例如,您的原因并不排除注册机。
拉斐尔

好吧,这取决于您考虑的“注册机”的精确概念。例如,那些仅具有递增,递减和跳转操作的程序无法在多项式时间内模拟TM。
Antonio E. Porreca 2010年

1
λλ

我在PL方面,但是纯lambda演算不是算术计算的明显模型(想想前任函数)。在lambda演算中,您对定义的了解较少,但是要花更多的精力来理解定义的含义。
Blaisorblade

0

它是第一个产生影响的人,因此已经确立,特别是在复杂性理论中。这是一个微弱的原因,但是人们是这样工作的。我们首先处理旧的未解决的问题,而不是声明新的问题。


8
“我们首先处理旧的开放性问题,而不是宣布新的问题。” <-我认为,如果有的话,情况恰恰相反,特别是在那些老问题极难解决的领域。例如,从事电路复杂性工作的人相对较少(尽管现在可能会更多!)。人们需要努力解决可以解决的问题才能发布。这会不断产生新宣布的可解决问题。
亚伦·斯特林2010年

我在那里的措词有点草率。我觉得,如果没有压倒性的理由,人们通常宁愿坚持一个既定的模型,也不愿建立一个新模型(并证明其基本特性)。显然,这种感觉可能会消失。特别是,当然有些人首先会寻找模型。
拉斐尔

好吧,lambda演算排在第一位。但是图灵表明,图灵机可以准确地模拟人类进行计算的基础知识;仅当证明等价时才对lambda演算进行此操作。此外,这种等效仅适用于一阶计算:cstheory.stackexchange.com/q/1117/989-在纸上并不真正存在高阶数据。它甚至不存在于计算机内存中,但是可以完美模拟。
Blaisorblade 2014年
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.