Skip to main content

01B 计算模型

性能测试

to measure is to know. 能度量才能提高。如何度量算法的性能?

问题规模

成本:运行时间 + 所需存储空间

TA(p): 算法A求解问题实例P的计算成本,跟规模有很大关系,如线段 3 等分和 n 等分,规模增加计算成本也增加。

最坏情况

TA(n): 用算法A求解某一规模为n的实例,规模相同实例不同,计算成本可能相差很大,如找平面上 n 个点中找到面积最小的三角形。

理想情况

抽象出理想的平台或模型,不依赖输入的类型,规模,实现的语言,编译器等。下面的两种模型即为抽象后的理想模型:

  • 图灵机
  • RAM模型

他们是一般计算工具的简化和抽象,可以使我们可以对立于具体平台,对算法效率做出可信的比较和评判。

图灵机

图灵机(turing machine):

  • tape 无限长纸带,均匀分为单元格,每个单元格可存储字符
  • alphabet 字符的种类有限
  • head 读写头
  • state TM总是处于某种状态
  • transition function: (1, c: d, L/R, p)

例子: 图灵机将二进制非负整数加一 演示: 见课件中下载的 excel

RAM模型(random access machine)

寄存器顺序编号,总算没有限制: R[0], R[1], R[2], R[3], ...

提供常数赋值,直接赋值,间接赋值等约10个级别操作,仅需常数时间。循环及子程序非基本操作。

上述两种模型,可以将模型中的算法运行时间转换为算法需要执行的基本操作次数。

例子:向下取证的除法