邓俊辉老师《数据结构》MOOC笔记(1)——如何建立计算模型来对于算法进行测评?

本文介绍了如何通过图灵机和随机存取模型来建立计算模型,评估算法的时间成本。算法的评价标准关注时间和空间成本,文章主要聚焦于时间成本,固定输入规模并考虑最坏情况。图灵机作为一种思想实验,可以计算任何算法,而随机存取模型与图灵机等价,允许直接访问任意存储位置。

算法用来解决实际问题,是一套有穷的、普遍的、可重复的操作办法。现实生活中解决一个问题的办法有效率高低之别,算法也是如此。评价一个算法的好坏,要从结果和成本两个方面考虑。结果要看数学证明,我们暂且不说;成本分为时间和空间,在今天这篇文章中,我们只盯住成本中的“时间”来进行考量。

影响特定具有特定算法的程序运行时间的因素主要有:输入数据的规模、输入数据的具体情形、程序运行的环境、程序语言、编译器、操作系统……我们为了抓住其中的主要变量,进行如下两个理想化处理,来研究特定算法程序的运行时间:

1. 将输入数据理想化处理——固定输入规模n、考虑最坏的输入

2. 将测评环境理想化处理——建立理想计算模型,模型满足算法运行时间正比于算法操作步骤

下面把我们的精力集中在建模上面:我们考虑图灵机(Turing Machine)和随机存储模型(Random Access Machine)。

我最开始提出了一个问题是:如果换一个算法就要换一个模型,这样的平台是否具有能够比较不同算法的时间成本的能力?

但这个问题错在前提,对于图灵机来说,任何的算法都可以在上面进行计算。

图灵机(Turing Machine)

图灵机本质上是一种思想实验。图灵把计算过程抽象成了一个具有以下要素的模型:

  • 无限长纸带,被分为一个一个小格子
  • 有限的字母表,上面的字符用来填充纸带
  • 读写头,可以阅读并修改纸带上的字符
  • 读写头的左右运动,改变读写头的位置
  • 状态,读写头具有有限个状态,这个状态由它所处的位置、读写的内容、下一步要移动的方向决定

一个著名的论题,丘奇-图灵论题指出,“任何在算法上可计算的问题同样可由图灵机计算”。

随机存取模型(Random Access Machine)

随机存取模型和图灵机是等价的。该模型具有以下要素:

  • 无限个存储器(类比无限长纸带)
  • 可以通过编号访问任意存储器(不同于图灵机只能按位访问)
  • 一套计算规则

————————————————————————

参考文献:

[1]https://blog.youkuaiyun.com/qq_34216729/article/details/82766707

[2]https://izoyo.cn/index.php/archives/30/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值