算法与数学
数学研究的对象是数量和空间的关系,我觉得数学是一种用来表达人类对自然的认识,
并互相交流这种认识的语言(这是我的看法,当然每个人对数学都有自己的理解)。而
算法,就是一种机械地解决问题的方法,根据算法解决问题时不需要任何智慧(这里可能
用词不当,因为强人工智能学派认为智慧就是一种复杂的算法),只要照着做就可以了,
所以现在的计算机能够执行算法而且也只能执行算法。发明创造各种算法是为了让我们
研究数学的时候不需要总是依据他的客观物理含义,比如我们做1987+1234567的时候,
通常使用的是按位计算,这是按照一定的规则(算法)一步一步做下去的,而不是考虑
它的物理含义:有1987个苹果,然后又拿来了1234567个,一共是多少个,但是小孩子刚
学加法的时候要扳着手指头计算,从这点还可以看出加法的本来物理意义。
所以我觉得,数学是上帝创造的,它表现了一种客观实在;而算法是人类创造的,它是
方便人类研究数学这种客观实在的工具。
算法的发展和形式系统是分不开的,数学发展到20世纪初的时候,数学家开始研究数学
的本质(其实早就开始了,不过20世纪初是鼎盛时期),大家发现,我们的数学体系完
全是基于一种符号的演算体系,所有数学体系都变成了“由几个基本公理奠基,然后规
定几个规则,按照这些规则推导出来所有的定理”这种公理化体系。这就是形式系统。
形式系统中的推导过程就是一个个的算法。比如求积分的方法,开根号的方法,加法,
乘法,...etc。大家就提出疑问,是否存在一种算法,可以证明一个命题是对是错,如
果存在的话,我们只要找到这种算法就一劳永逸了。这个问题是由希尔伯特在1900年巴
黎国际数学家会议上提出的希尔伯特第十问题。但是可惜的是,天才的图灵证明了这种
一劳永逸的算法是不存在的,这说明了算法不是一切,也不能够解决一切!后来大家又
发现很多不可计算问题,这些问题根本不能用算法来解决。比如Pi的小数点后面是否存
在1000个连续的7,要回答这个问题,必须不停地计算Pi,但是Pi是无限不循环小数,如
果算到某一位发现了1000个连续的7,我们可以说命题成立;关键是,如果该命题确实不
成立,我们却无法通过计算证明该命题不成立,还必须永远的算下去!这是一个很奇怪
的现象,如果单纯靠算法,我们居然无法知道某个命题是否成立!后来大家又发现很多
这类不可计算问题,这时候我们才知道,原来算法可以解决的只是自然中极少数的一部
分问题,就像牛顿力学和相对论的关系一样,牛顿力学解决的完全是特殊的现象,算法
解决的也是特殊的一类问题!更槽糕的是,伟大而“可恶”的天才哥德尔出现了,他在
25岁就提出了一个震惊世界的定理:哥德尔不完备性定理。这个定理说明,任何的形式
系统,要么存在着矛盾,要么存在着不可被证明是对还是错的命题,而这种不可证明性
是可以证明的!!这就表明了我们从欧几里德时代开始建立起的公理化数学体系有着先
天的缺陷!这个发现令数学家们想用数学和算法来描述世界的构想化为泡影。所以人类
其实是很可笑的,企图接近上帝,但是上帝创造人类的时候就注定了让人类永远无法认
清这个世界。顺便提一下,本世纪初的另一个伟大的而且是令人类沮丧的发现是物理中
的不确定性,它和哥德尔的不完备性有点类似,说明了我们永远无法真正预测一个粒子
的行为,原来物理学的重要意义之一就是“知道某个物体在某时刻的状态,并且知道他
所受的所有力。根据运动方程,就能预测下个时刻他的位置”,但是不确定性却告诉我
们这是不可能的,物理世界中也存在着人类永远无法认识的东西。数学上和物理上的双
重打击令后来的纯理论科学家们低调了很多,更多的人开始研究具有实用价值的东西,
而很少有人再幻想通过纯理论的研究找到一劳永逸的方法了。
--------------------
我的论坛开张了http://gqqnb.126.com,有很多技术文章、免费资源。欢迎访问,欢迎注册!目前版主空缺,有意者去我的论坛报名,有版主经验者优先考虑!