请先阅读:上帝的程序(上)
而这些程序,是如何诞生的?
有神论者认为动物精妙的构造、绝妙的本能,完美地印证了上帝的存在。那么,基于这样的认知,这些程序被看作是上帝编写的。仁慈的上帝编写这样的程序是为了保证每一种动物在自然界的存活繁衍,因此,他将生存繁衍作为这段程序的总体目标,将自然环境等外部因素作为程序的限制条件,并将总体目标一步一步细化,最终设计出生物的每一个细节,正如前面所说,这是自顶向下的设计方法。
而无神论者会认为,这个特定的上帝、造物主不是别的,正是自然界。这精妙程序的形成,不是基于特别的设计,而是源于基因的交叉变异优胜劣汰。基因上的每一位,可以看作是一个最为本原的语句。这些语句是如此本原,它们能仅仅通过交叉变异优胜劣汰就组合成有意义的程序并完成强大的功能吗?这听上去像天方夜谭。交叉和变异看上去毫无理由:交叉是两个基因选择一个特定交点,交换遗传物质;变异是基因上某一位突然发生改变。这样没有理由的行为所缔造的后代真能比前代强吗?能。因为交叉变异的同时,还有优胜劣汰。交叉和变异可能使得后代弱过前代,也可能强过前代。但适应能力弱的后代都被淘汰了,在残酷的环境和有限的资源中,仅有适应能力强的后代能存活下来。也就是说,只有那些交叉变异得最为适应环境的后来挑选了出来。正是在这样残酷的挑选中,上帝的程序越来越精妙。从最为本原的语句一层一层组合上去,使得实现的功能越来越复杂,各个功能相互协作,最终实现一个强大的目标,这其实是自底向上的设计方法。
说到交叉变异,不得不说说遗传算法。美国密歇根大学心理系和计算机与电子工程系教授约翰·霍兰(John Holland)将自然界生物的交叉变异与优胜劣汰引入程序设计之中,从而形成了遗传算法。对于一个待解决的问题,遗传算法首先确定问题的编码方式以及适应度函数。编码方式其实是将问题的可能解变型成一条类似自然界的基因,而适应度函数则用于衡量当前基因适应环境(目标问题)的优劣程度。经过初始群体的选择,一代一代交叉变异优胜劣汰下去,算法中的基因朝着越来越优秀的方向进行迭代,最终找到满意的解。在优胜劣汰的作用下,交叉变异大放异彩,交叉是在现有基因基础上进行各种组合尝试,挑选出最为优秀的基因组合,而变异,则是独辟蹊径的创新,它制造出了前所未有的基因形式,增加了群体的多样性,为进化到一个死胡同的群体辟出前进的新方向。对于找到最优解的必然性,遗传算法有理论上的证明。但我更愿意从另一个角度去理解,遗传算法其实是对自然界生物进化的模拟,它其实通过计算机验证了这样一个事实:在自然界中,最为本原的基因组经过足够多代交叉变异的尝试、优胜劣汰的挑选之后,能过组合成精妙的生命程序,仿佛出自上帝之手。如果我们依旧将它称之为上帝的程序,这上帝不是别的,正是自然界。
上帝在每个生命个体的基因上编写绝妙的程序,这些程序,绝妙到了匪夷所思的程度。但更匪夷所思的是,个体基因上的程序,可能只是上帝程序的一个片断,上帝的整个程序,分布在整个群体的动物身上。在这样的群体当中,每只动物执行一段特定的程序,所有程序共同执行,相互通信,相互协作,结果超乎想象。这方面最具代表性的例子是蚁群,单只蚂蚁弱小而低能,只能执行简单的工作,一只离群的蚂蚁只能存活数天,因为其基因中的程序,还没强大到让一只弱小的蚂蚁自食其力的程度,但是在简单信息素的交流下,让每只弱小的蚂蚁都各司其职:工蚁生产劳动、兵蚁守卫家园、蚁后繁衍后代……整个蚁群,却产生了强大的智能。比如蚂蚁所筑起的蚁丘,就是建筑上的奇迹,简直就是一座精妙的蚂蚁城市,与蚂蚁的建筑本领相比,人类的建筑水平显得相当逊色。蚁群何以产生如此惊人的智能?科学家对此进行过大量的研究,下面给出一个最为简单也最好解释的例子:一只蚂蚁找到食物后返回蚁穴,由于地面状况复杂,可能走了不少弯路,它将食物信息传播给别的蚂蚁之后,随着前往食源的蚂蚁的增多,最终能找到一条从蚁穴到食源的直线路径。这是因为:每只蚂蚁在来回过程中留下信息素,走了近道的蚂蚁在相同时间里往返次数更多,留下的信息素也更多,也就能吸引更多的蚂蚁选择这条路,在这样的不断修正中,最终能找到最短路径。在简单的本能与交互之中,智能就这样诞生了。将这样的思想引入编程中,蚂蚁算法(Ant Algorithm)应运而生,此算法能用于有效解决许多实际的优化问题:路由、拥塞控制等等。人类社会又何尝不是这样,一个人比一只蚂蚁聪明多了,但能做的事依然相当有限。但当由一个个个体的人组合成了人类社会,各司其职又相互联系,所诞生的群体智慧远远超过了单个人的能力,至少,我们居住的地球已然在我们的改造下天翻地覆了。我们只能感受到自身的程序,也只能执行自身的程序,殊不知在更高的层面上,更为宏伟壮观的程序在有条不紊地运行,我们只是其中一个小小的程序片断。——将同样的思想应用到在计算机领域中,即为分布式计算:一个需要非常巨大的运算量才能解决的问题,经过一定的构造,它能等价于多个稍小的能与别的部分进行协作,同时依赖单个计算机的运算量进行处理的子问题,把这些子问题分配给不同的计算机进行运算,计算机之间相互通信同步,最终使得这个庞大的问题迎刃而解。
存贮在基因上的程序如此强大,大到超乎我们的想象。它让地球上的生命生机勃勃,生生不息。然而,这些程序并不万能,因为基因并非万能,本能也并非万能,它只保证了生命体基本的生存需求。要想过得更好,还需要除本能之外的更多尝试,在失败与成功之中将经验保存下来,这样的过程我们称之为学习。智慧的生命能将学到的知识一代一代积累流传下去,经过漫长岁月,知识积少成多,超越某个临界值,智慧的生命依仗着它崛起而区别于其它动物,文明由此诞生。
自沙
累得半死
"菜刀门文学派"已推荐。
感谢西西
http://publish.book.sina.com.cn/00/62/62/search_5.php?t_col1=xixi&t_col11=bole
西西新浪博客导读已推荐。
原来西西是博导!
太深奥了!
密密麻麻的写了这么多当然累的半死。 看都看累了哈哈!
太强了呀,超赞!
同是学计算机的,我就活得很懵懂,无论是对自己的专业的思考,还是对所在的世界。周围的基督徒们经常用深奥大自然作为上帝存在的证明来说服我,我在你这里打开眼界以后总算可以喘一口气了~~
小恐还真是稀有的…嗯,我为我叫小龙而骄傲…