图灵机与冯诺依曼机
Posted
技术标签:
【中文标题】图灵机与冯诺依曼机【英文标题】:Turing machine vs Von Neuman machine 【发布时间】:2011-02-16 10:37:59 【问题描述】:背景
冯-诺依曼架构描述了存储程序计算机,其中指令和数据存储在内存中,机器通过改变其内部状态来工作,即指令对某些数据进行操作并修改数据.所以本质上,系统中维护着状态。
图灵机架构通过操纵磁带上的符号来工作。即存在具有无限数量插槽的磁带,并且在任何一个时间点,图灵机都位于特定的插槽中。根据在该插槽读取的符号,机器可以更改符号并移动到不同的插槽。所有这些都是确定性的。
问题
这两个模型之间有什么关系吗?冯诺依曼模型是基于图灵模型还是受其启发?
我们可以说图灵模型是冯纽曼模型的超集吗?
函数式编程是否适合图灵模型?如果是这样,怎么做?我假设 函数式编程不适合冯诺依曼模型。
【问题讨论】:
【参考方案1】:图灵机是理论概念发明用于以数学方式探索可计算问题的领域并获得描述这些计算的方法。
冯-诺依曼架构是一种用于构建实际计算机的架构(它实现图灵机理论上描述的内容)。
函数式编程基于lambda-calculus,这是另一种描述计算或更准确地说是可计算函数的方法。虽然它使用了完全不同的方法,但它对图灵机同样强大(据说是图灵完备)。
每个 lambda 演算程序(术语)T
都是使用
x
匿名函数,如λx. T
功能应用T T
尽管是无状态的,但对于计算机可以执行的每个计算,这都是sufficient。图灵机和 lambda 项可以相互模拟,而冯诺依曼计算机可以执行两者(除了图灵机可能需要的提供无限存储等技术限制)。
但由于其无状态和更抽象的性质,与遵循二进制、内存和更新风格的命令式程序相比,函数式程序在冯诺依曼计算机上的效率和“直观性”可能较低.
【讨论】:
脆扩展。然而,冯诺依曼架构能否实现图灵机所能描述的一切? @Santosh:理论上,没有真正的计算机可以做到这一点,也永远不会——因为图灵机需要无限的存储量。 任何图灵可计算函数都必须由图灵机停止来描述。停止的图灵机不需要无限的存储空间(它怎么能在有限的时间内读取或写入无限多的数据?)。因此,理论图灵机可以计算的任何东西都可以由具有足够存储空间的实际计算机计算。所需的存储空间可以任意大,但不会是无限的。 @Tyler:图灵计算的无限循环不是也可以吗?当然它不会停止...... @Tyler:不应该是“存在一个图灵机,对于f
域中的每个n
,都会停止并输出f(n)
”?我不认为f
允许为每个输入使用单独的图灵机。【参考方案2】:
通常一个是指Von Neumann 架构,与Harvard 架构形成对比。前者以相同的方式存储代码和数据,而后者具有用于代码和数据的独立内存和总线路径。所有现代台式电脑都是冯诺依曼,大多数微控制器都是哈佛。两者都是试图模拟理论上的图灵机的真实设计示例(这是不可能的,因为真正的图灵机需要无限的内存)。
【讨论】:
感谢您提出哈佛架构与图灵机的对比 @Santhosh:也许这只是一个错字,但我确实没有提出任何这样的对比。正如我在回答中所说,冯诺依曼和哈佛架构都是图灵机。它们之间的对比是它们的内存布局。【参考方案3】:图灵模型在没有深入实现的情况下定义了计算能力,没有人会创造出真正看起来像图灵机的计算机。 (发烧友http://www.youtube.com/watch?v=E3keLeMwfHY除外)。
图灵模型不是架构。
冯诺依曼指导如何构建计算机。它没有说明计算能力。根据指令集,生产的计算机可能是图灵完备的,也可能不是图灵完备的(意味着可以解决与图灵机相同的任务)
函数式编程(lambda 演算)是另一种图灵完备的计算模型,但不能原生地适应冯诺依曼架构。
【讨论】:
【参考方案4】:我不知道图灵机和冯诺依曼架构之间有什么历史关系。不过,我敢肯定,冯·诺依曼在开发冯·诺依曼架构时就意识到了图灵机。
然而,就计算能力而言,图灵机和冯诺依曼机是等价的。任何一个都可以模拟另一个(IIRC,在图灵机上模拟冯诺依曼程序是一个 O(n^6) 操作)。以 lambda 演算形式的函数式编程也是等价的。事实上,至少与图灵机一样强大的所有已知计算框架都是等效的:
图灵机 Lambda 演算(函数式编程) 冯诺依曼机器 部分递归函数可以使用任何这些模型计算的函数集没有区别。
函数式编程源自 lambda 演算,因此它不直接映射到图灵机或 von Nemuan 机器。但是,它们中的任何一个都可以通过仿真运行功能程序。我认为图灵机的映射可能比冯诺依曼机的映射更繁琐,所以我对第三个问题的回答是“不,实际上它更糟。”
【讨论】:
O(n^6)?为了什么?运行时不是取决于程序的细节吗?【参考方案5】:图灵“模型”根本不是建筑模型。图灵假设这只是一台不存在的机器,作为他证明decision problem的工具。
【讨论】:
以上是关于图灵机与冯诺依曼机的主要内容,如果未能解决你的问题,请参考以下文章