算法的定义

2011年7月在法国举办的第14届国际逻辑学、方法论及科学哲学大会(CLMPS)上,举办了一场以“何为算法?”为主题的专题研讨会。在图灵 100周年诞辰庆典到来之际,提出这样的问题似乎颇为奇怪——难道图灵没有断定这个问题的答案吗?难道答案不是“算法就是图灵机”吗?

但将图灵机和算法混为一谈却是对图灵发表于1936年的论文《论可计算数及其在判定问题上的应用》的误解,图灵的目标是定义可计算性,而不是定义算法。他在论 文中称,每一种基于自然数的能由人类计算机计算的函数都同样能由图灵机进行计算。他并没有在论文中说图灵机给出了一种常规算法模型。因此,CLMPS大会 主题研讨会上提出的问题十分精彩。

令人惊讶的是,会上的两位主要发言人Y. Gurevich和Y. Moschovakis对这个基本问题给出了两个截然不同的答案。

Gurevich 认为,每种算法都可以从一台抽象状态机的角度进行定义。直觉上,一台抽象状态机就是一台运行于各种状态(即任意数据结构)的机器。主要要求是机器的一个步 骤只能引起状态的一个本地有界变化。这个要求与图灵机的一次一格运行以及冯·诺依曼的有界宽度运行相符。

与之相反,Moschovakis 则认为算法是从递归器(recursor)角度进行定义的,递归器是一种建立在任意运算(作为基本式)上的递归描述。例如阶乘函数,可以将乘法作为基本算 术运算,从而以递归形式描述;而欧几里得最大公约数算法则将余项函数作为基本运算,从而进行递归描述。

那么算法是抽象状态机还是递归器呢?人们从数学上可以看出,递归器可以是抽象状态机的模型,而抽象状态机可以是递归器的模型。那么,谁主谁次?

算法既是抽象状态机,又是递归器,仅取二者之一无法完全说明何为算法。借鉴物理学上的波粒二象性,看来,“算法二象性”才是计算科学的基本原理。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值