计算机能模拟图灵机吗,关于计算机科学:图灵机与冯诺依曼机器

背景

Von-Neumann架构描述了存储程序计算机,其中指令和数据存储在存储器中,并且机器通过改变其内部状态来工作,即指令对一些数据进行操作并修改数据。因此,系统中存在状态。

图灵机架构通过操纵磁带上的符号来工作。即存在具有无限数量的槽的磁带,并且在任何一个时间点,图灵机都在特定的槽中。根据在该插槽读取的符号,机器可以更改符号并移动到不同的插槽。所有这些都是确定性的。

问题

这两个模型之间有什么关系吗?冯·诺伊曼模型是基于图灵模型还是受其启发?

我们可以说图灵模型是Von Newman模型的超集吗?

功能编程是否适合图灵模型?如果是这样,怎么样?我假设

功能性编程并不适合Von Neuman模型。

图灵机是发明的理论概念,用于在数学上探索可计算问题的领域并获得描述这些计算的方法。

Von-Neumann架构是用于构建实际计算机的架构(其实现图灵机在理论上描述的内容)。

函数式编程基于lambda演算,这是描述计算的另一种方法,或者更准确地说是可计算的函数。虽然它使用了一种完全不同的方法,但它对图灵机也同样强大(据说它是完整的)。

每个lambda演算程序(术语)T仅使用组合来编写

变量如x

像λx. T这样的匿名函数

功能应用T T

尽管是无状态的,但这对于计算机可以进行的每次计算都是足够的。图灵机和lambda术语可以相互模拟,Von-Neumann计算机可以同时执行(除了提供无限存储等技术限制,图灵机可能需要)。

但是由于其无状态和更抽象的性质,功能性程序在Von-Neumann计算机上的效率可能会降低,而且与按照二进制,内存和更新方式遵循的命令式程序相比,不那么"直观"。

清晰的扩张。但是,Von Neuman架构能否实现图灵机所能描述的一切?

@Santosh:理论上,没有真正的真实计算机可以做到这一点,也没有人会这样做 - 因为图灵机需要无限量的存储空间。

@Santhosh,迈克尔:嗯,好点。编辑了答案。

任何图灵可计算功能必须由停止的图灵机描述。停止的图灵机不需要无限存储(如何在有限的时间内读取或写入无限多的数据?)。因此,理论图灵机可计算的任何东西都可以由具有足够存储空间的实际计算机计算。所需的存储空间可能是任意大的,但不会是无限的。

@Tyler:不是一个无限循环图灵可计算的吗?当然它不会停止......

@Dario:不是在"可计算"的形式意义上它不是。图灵可计算函数被定义为函数f,对于每个输入n,存在停止并输出f(n)的图灵机。它几乎就是"算法"的同义词,算法定义的一个部分是它必须有有限的许多步骤,而无限循环则不然。

@Tyler:不应该是"存在一个图灵机,对于f域中的每个n,停止并输出f(n)"?我不认为f允许每个输入都有一个单独的图灵机。

@Michael是的,你是对的;我的措辞混乱了。接得好。

@Dario是基于Von-Neumann架构的现代计算机吗?如果最后一个问题的答案是肯定的:你还说Von-Neumann架构实现了图灵机模型,但我认为现代计算机是基于RAM而不是基于图灵机模型的?

一般来说,一个是指冯·诺依曼建筑,与哈佛建筑形成鲜明对比。前者具有以相同方式存储的代码和数据,而后者具有用于代码和数据的单独的存储器和总线路径。所有现代台式电脑都是Von Neumann,大多数微控制器都是哈佛。两者都是试图模仿理论图灵机的现实世界设计的例子(这是不可能的,因为真正的图灵机需要无限的存储器)。

感谢哈佛建筑与图灵机的对比

@Santhosh:也许这只是一个错字,但我没有提出任何这样的对比。正如我在回答中所说,Von Neumann和Hardvard架构都是图灵机器。它们之间的对比是它们的内存布局。

我不知道图灵机和冯诺伊曼架构之间有什么历史关系。然而,我确信冯·诺伊曼在开发冯·诺伊曼建筑时意识到了图灵机。

然而,就计算能力而言,图灵机和冯·诺伊曼机器是等价的。任何一方都可以模仿另一方(IIRC,在图灵机上模拟von Neuman程序是O(n ^ 6)操作)。以lambda演算形式的函数式编程也是等价的。实际上,至少与图灵机一样强大的所有已知计算框架都是等效的:

图灵机

Lambda演算(函数式编程)

冯诺伊曼机器

部分递归函数

可以使用任何这些模型计算的函数集没有区别。

函数式编程源自lambda演算,因此它不直接映射到Turing或von Nemuan机器。他们中的任何一个都可以通过仿真运行功能程序,hoewver。我认为图灵机的映射可能比冯诺伊曼机器的映射更繁琐,所以我对第三个问题的回答是"不,实际上它更糟糕"。

为O(n ^ 6)?对于什么?运行时不依赖于程序的细节吗?

图灵模型定义了计算能力而没有深入实现,没有人会创建看起来像图灵机的计算机。 (爱好者除外http://www.youtube.com/watch?v=E3keLeMwfHY)。

图灵模型不是架构。

冯·诺伊曼是如何建造计算机的指导。它没有说明计算能力。根据指令集,生产的计算机可能是也可能不是图灵完成(手段可以解决与图灵机相同的任务)

函数编程(lambda演算)是图灵完成的另一种计算模型,但不能原生地适用于冯·诺依曼架构。

图灵"模型"根本不是建筑模型。这只是一个不存在的机器,图灵假设它可以作为他证明决策问题的工具。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值