在一个二维的、离散化的网格世界里,我们可以用一个计算机程序体(称之为Agent)来模拟一个觅食的蚂蚁。这只蚂蚁可以从自己的巢穴出发,在这个网格世界中随机游走,如果它找到了食物就开始往回折返。为了呼唤其他的蚂蚁过来,它会往经过的格子中撒下信息素(右图中的彩色方格)。其它的蚂蚁在随机游走的过程中,如果碰到了彩色的方格(闻到了信息素的味道)就会沿着信息素的浓度引导向前爬行,直到找到食物。一旦它找到食物,就又会进一步往环境中播撒信息素。这样,一旦有一只蚂蚁找到了食物,就会吸引更多的蚂蚁过来。
与此同时,信息素会在环境中慢慢地挥发、退色,这样,没有什么蚂蚁经过的那条路径就会逐渐耗散它的信息素。渐渐地,只有那条最短的路径会聚集最多的蚂蚁,蚂蚁群体们就通过相互作用找到了最短的路。所有这些现象完全可以在计算机模拟世界中计算得到。因此,我们说,涌现是可以通过多主体计算进行模拟的。
由于涌现的系统有很多优越特征,例如它的抗干扰能力、创新性等,所以人们感兴趣的是另外一种思路,也就是我们给系统预设一个具体的计算目标,但是这个计算目标不是通过传统的编程直接告诉计算机如何实现,而是通过设计一种微观个体的相互作用规则,而让最终的目标自发地涌现出来。也就是说,如果某系统的涌现行为或者属性可以看作是某种计算的话,那么我们就称这个系统正在执行涌现计算[3]。
涌现计算与涌现的模拟有很大的相似性:它们都是利用计算系统实现系统的涌现现象。但是两者又有很大的不同:涌现的模拟旨在用计算机模拟一个真实的系统,使得这个模拟具备某种涌现的特征;然而涌现计算则要求更高,它要求该系统不仅仅需要具备涌现特征,而且这种涌现特征还能完成某种特定的计算任务。也就是说,涌现模拟是利用个体的简单计算而实现涌现,涌现计算则要求系统的涌现完成实际的计算。
让我们再回到蚂蚁的例子上来。虽然我们已经可以把蚁群的行为和涌现属性用计算机模拟出来了,但是这个模拟系统并不能帮我们执行有意义的计算。
然而,1992年MarcoDorigo在他的博士论文中提出的蚁群优化算法(AntColonyOptimization)就是一种典型的涌现计算的例子[4]。因为蚁群算法通过改造蚂蚁的模拟程序的确可以找到一条真实地图上的最短路径,因此,作为一种涌现的结果,这条最短路径是被涌现计算而出的。
进一步,蚁群优化算法还可以被用来解决包括旅行商问题、组合优化问题等更一般的问题上来。这也体现了涌现计算的强大优势。
参考文献
[1]约翰。霍兰:涌现:从混沌到有序,上海科学技术出版公司,2006。
[2]李建会、张江:数字创世纪——人工生命的新科学,科学出版社2006.1。
[3]StephanieForrest:EmergentComputation,MITPress,1991.
[4]M.Dorigo.Optimization,LearningandNaturalAlgorithms(inItalian).PhDthesis,DipartimentodiElettronica,PolitecnicodiMilano,Milan,Italy,1992.
[5]王旭,张江,崔平远:一种基于蚁群算法求解路径规划问题的新方法;中国智能自动化会议,(2003.12):996~999。
<上一页 1 2