算法分析与设计课程资料:蚂蚁算法的初步研究与计算机模拟

算法分析与设计课程资料:蚂蚁算法的初步研究与计算机模拟

 

整理:Ackarlix

 

近年来在人工智能界引出的新的研究小热点----蚂蚁算法,以及我们对蚂蚁算法的一些研究成果。我们从完全不同的观点来研究蚂蚁等昆虫群体智能的现象,即从进化的过程来对待昆虫的群体智能的现象。提出一个用一种特殊的人工神经网络来描述群体智能的数学模型,最后用计算机对筑巢过程进行模拟。

1.引:蚂蚁是大家司空见惯的一种昆虫,而他们的群体合作的精神令人钦佩。他们的寻食、御敌、筑巢(蚂蚁的筑窝,蜜蜂建巢)之精巧令人惊叹。若我们是能从他们身上学习到一些什么的话,也将是一件非常有益之事

关于蜜蜂觅食,人们已经做过很彻底地了解,据说它们是用飞行的舞姿(兜圈圈)来传递信息,圈子的轴方向表示花蜜的方向,用飞行的圈数表示有花蜜地方的距离,别的蜜蜂得此信号,就纷拥向该方向飞去。

而蚂蚁觅食的方法,却另有一番世界,据研究当蚂蚁找到食物并将它搬回来时,就会在其经过的路径上留下一种外激素,其他蚂蚁嗅到这个激素的味道,就沿该路奋勇向前,觅食而去。不但如此而且还会沿着最短的路径奔向食物。

20世纪90年代初意大利学者DorigoManiezzo提出的第一个蚂蚁算法(ant colony algorithm。就是依照蚂蚁觅食原理,设计的一个群体智能的算法。

2.简单的蚂蚁算法

如前所述,蚂蚁能很快地找到通向食物的最短路径,下面我们较仔细地分析一下蚂蚁是如何找到到食物地点的最短程的。

设一群蚂蚁(随机地)向四面八方去觅食,当某只蚂蚁觅到食物时,一般就沿原路回巢,同时在归途上留下外激素,外激素随着向四周散发其浓度会不断下降。若有两只蚂蚁都找到食物,且沿原路返回(见图一)设OA OBA短,当第一只蚂蚁回到O点时,第二只蚂蚁(沿OBA的蚂蚁)才回到C点。于是OA路上有两次外激素的遗留物(去一次、回来一次),而在OC路是只有去一次的外激素遗留物,故OA的外激素浓度比OC上大,据研究蚂蚁一般会沿外激素浓度大的路径上前行。于是后面的蚂蚁会渐渐地沿由OA的最短程到达A点(指所有已求到的路径中的最短者)。以上就是蚂蚁能以最短和找到食物的原因。

我们下面简单介绍,人们是如何根据这个原理设计出求最短程的蚂蚁算法的。下面以求通过n个城市的最短回路为例。

设有n个,设在t时刻在第i个城市上有蚂蚁ai(t), 令共有m个蚂蚁.

设在t时刻在连接第i,j两城市间的道路留下的外激素量为bij(t)

规定每个蚂蚁,在未完成一个回路时,不重复走已走过的城市.

k个蚂蚁从i城市到j城市的概率

其中外激素量bij(t)有许多不同的定义,如可定义为:b(t)=e-ct,c>0;或定义为:

其中de是一正常量.     (1)

这样每只蚂蚁经过n次迁移后就得到一条回路,其长度记为Lk.若满足要求,则停止.不然, 利用(1)式重新计算各边的外激素浓度,进行第二轮的搜索….

以上是利用蚂蚁算法求解最短回路的简单介绍,有兴趣的读者可参考有关的文献。

借助蚂蚁的启迪,不但可以开发出求最短程的算法,还可以开发出其它的算法,下面再举一、二。

据说蚂蚁很爱卫生,对其窩内经常进行大扫除,将垃圾堆在一起,然后拉到窩外。根据蚂蚁的上述行为,人们以蚂蚁为师设计分类算法:

一群蚂蚁随机出发,遇到垃圾,就将其拉走(拉的方向也是随机的),拉垃圾时,若遇到某一堆垃圾时,就放下。放下垃圾后,再次进行拉垃圾行为。。。。当然还要加了一些限制,才能达到人们所希望的结果。

另外,蚂蚁同心协进行搬运食物,是我们见得最多的蚂蚁行为,有人以此为兰本设计出几个机器人共同推盒子的算法。如美国阿尔伯塔大学设计出几个机器人共同推盒子的实验。

   借助蚂蚁分工合作的特点(蚁皇管生男育女、工蚁管干活、兵蚁管保卫)的启迪,人们设计了求解任务分配问题的蚂蚁算法,并应用于工厂中汽车喷漆问题。如美国西北大学将蚂蚁算法用于卡车厂油漆车间,负责给离开装配线的卡车上漆的工作安排。他们采取工人分组,各组只喷一种颜色,只有当某小组任务特别紧张时,才分配另一小组前去帮助。通过这种设计后工厂各车间改变颜色的次数更少,从而提高了整体的生产率。

又如美国MCIWorld-com公司一直研究人工蚂蚁,并用于管理公司的电话网,对用户记帐收费等工作。另外,还设计人工蚂蚁打算用于因特网的路由管理。

国内也有研究者用蚂蚁算法求解全国144个城市的最短回路问题,求得的解同其它方法求到得解一样精确,这说明蚂蚁算法不但是求解组合优化问题的可行方法,而且是一种很有竞争力的算法。

3.蚂蚁筑巢的启迪------群体智能

蚂蚁群最令惊叹的能力是筑巢 这类群体智能是自然界中普遍存在的现象,其中道理我们并不清楚,但我们可以对这种现象进行唯象地建模研究。

蚂蚁能筑巢,我们感到很惊讶。而看到人建筑高楼大厦并不感到惊奇。这也许是因为,认为人有一个聪明的脑袋,故能设计建筑高楼大厦。那么,为什么有一个聪明的脑袋,就能完成各种工作,而没有聪明脑袋的动物就不能完成复杂的任务?是不是只有聪明的脑袋才能完成复杂的任务?若是这样,那么脑袋是什么?是否都一定象我们现在看到的那样?是否可以有其它形式?比如我们可否将整个蚁群看成一个松散的脑袋?我想是可以这样看的。因为人和蚂蚁都是从低等单细胞生物进化而来的。一个分支进化成像人这样的大型动物(包括其中的脑袋),另一分支进化成像蚂蚁一样的蚁群。两者的不同在于前者(脑袋)是连通的,后者(蚁群)是离散的。在这样的看法下,一个蚂蚁就相当于脑中的一个细胞(神经元),蚂蚁之间的信息交流,就相当于大脑中各个细胞之间的联接。那么人工智能界用人工神经网络的技术来模拟人的大脑中某些功能,我们不就也可以用某种数学的模型来模拟群体智能”,用来说明蚂蚁筑巢的功能。所不同点在于一个是用固定连接的神经网络来模拟,另一个是用离散随机连接的神经网络来模拟。我们正是以这种想法为出发点,提出群体智能新的数学模型,并研究其基本性质(目前研究群体智能的方法多是将群体看成为一个多Agent系统进行研究。我们是从一个全新的观点出发,进行群体智能的研究)。下面简单介绍我们在这方面的工作。

假设:群体智能是指:由众多简单的个体组成的群体,若具有能通过之间的简单合作来完成一个整体的任务的能力,则称该群体具有群体智能

简单个体就是指单个个体只具有很简单的能力,这种能力我们将用某一简单功能函数来表示(就象神经元一样,用一种很简单的功能函数来表示)。

简单合作能力,就是指个体只能与其邻近的个体进行某种简单的通讯和协同动作,(如几个蚂蚁共同搬动一个物体)能力(这与前向神经网络中各神经元只与其前面一层中的神经元,可以通讯一样)。或通过环境间接与其它个体通讯(如一蚂蚁将外激素留在环境中,而其它的蚂蚁可从留下的外激素中得到一些有用的信息)。

这样,我们就可以建立群体智能的数学模型。

设有一群体,包含有n个个体(各个体的能力是相同的),每个个体具有一个能力f。即每个个体能完成某一函数运算f。其次,每个个体能与其邻近的个体进行通讯,即将一信息传给对方。各个体的行动是随机的、并行进行的。各个体接收终止的指令,就停止工作。这时,整个任务就完成。

在这种假设下,我们的蚁群就象一个随机连接的神经网络,若神经网络能模拟人的某些智能能力。那么,上述的随机连接的神经网络,就有可能模拟松散的脑袋”----群体智能.

下面以蚂蚁筑巢为兰本,建立群体智能数学模型。

蚂蚁能力:f(x),即它能将在x处的材料(如泥巴)搬到f(x)处。(简单的个体)

运货回来的蚂蚁A遇到迎面的蚂蚁B,能告诉B,自己从何处来(x处来) (简单的通讯能力),B就将所搬的材料放到f(x).

开始时,各蚂蚁是随机进行搬运的.最后有一个终止指令.“听到终止指令后,就停止工作。

. 计算机模拟结果

按照上述的模型,我们设计一个蚂蚁筑窝的算法,即设计对应的fx)函数(建筑一个形如开了一个天窗的蒙古包),计算机简单模拟的结果如下:

    建筑第一层的情况

正在建筑第二层的情况(其中紫色的点表示第二层垒上的点,右边是府视图)

第二层已筑完毕

整个蚁窝筑成后的投影图(图中只简单表示出其中五层的情况,其中左下图是筑成后蚁巢的透视图)

 

4.结论

   本文简单介绍了蚂蚁算法,主要两个内容,一是介绍目前国内外热衷研究的蚂蚁算法(主要是求最短程的算法);其次介绍我们提出的松散脑袋蚂蚁建筑巢模型,我们的工作还很初步,希望能起着抛砖引玉的作用。

参考文献

[1] Dorigo M,Gambardella L M.Ant colony system: A cooperative learning approach to the traveling salesman problem,IEEE Trans. Evolutionary Computation,1997,1(1):53-66.

[2]“Flocking and Collective Movement”,

  http://leanair4.mit.edu/docushare/dscgi/ds.py/Get/File-376/OH_EE141_W2flocking.pdf

[3]李夏,戴汝为,系统科学与复杂性,自动化学报,第24卷第4期,1998/7

[4] 樊玮,朱军,软件Agent技术的研究 航空计算技术,第29卷第4期,1999/12

[5]K. Sugawara et al., “Foraging Behavior of Multi-robot System and Emergence of Swarm Intelligence”, Systems, Man, and Cybernetics, 1999. IEEE SMC’99 Conference Proceedings. 1999 IEEE International Conference on, Volume:3, 1999 Page(s):257-262 vol 3

[6]Bill Fulkerson, Van Parunak,“The Living Factory: Applications of Artificial Life to Manufacturing”,IEEE 1995

[7]“Swarm intelligence-what is it and why is it interesting?”

   http://www.micro.caltech.edu/Courses/EE150/dungeon/Week1/OH_W1SwarmIntel.pdf

[8]Tony White,“Swarm Intelligence: A Gentle Introduction With Application”,

   http://www.sce.carleton.ca/netmanage/tony/swarm-presentation/index.htm

[9] http://www.micro.caltech.edu/Courses/EE141/Lecture/W1/RG_EE141_W1intro.pdf

[10]“Ant-Colony Optimization Algorithms(ACO)”

   http://leanair4.mit.edu/docushare/dscgi/ds.py/Get/File-378/RG_EE141_W8ACO.pdf

 

 

你可能感兴趣的:(转贴文章,人工智能,算法,optimization,网络,工作,任务,通讯)