蚁群算法.docx

上传人:b****2 文档编号:2412408 上传时间:2023-05-03 格式:DOCX 页数:6 大小:21KB
下载 相关 举报
蚁群算法.docx_第1页
第1页 / 共6页
蚁群算法.docx_第2页
第2页 / 共6页
蚁群算法.docx_第3页
第3页 / 共6页
蚁群算法.docx_第4页
第4页 / 共6页
蚁群算法.docx_第5页
第5页 / 共6页
蚁群算法.docx_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

蚁群算法.docx

《蚁群算法.docx》由会员分享,可在线阅读,更多相关《蚁群算法.docx(6页珍藏版)》请在冰点文库上搜索。

蚁群算法.docx

蚁群算法

20世纪50年代中期出现了仿生学,人们从生物进化机理中受到启发,提出了许多用以解决复杂优化问题的新方法随着人们对生物群体行为和生物社会性的研究,出现了基于群体智能理论的算法蚁群优化(AntColonyOptimization,ACO)由意大利学者MarcoDorigo(及其导师AlbertoColorni)于1991年在其博士论文中提出,之后并和VittorioManiezzo一同设计了第一个ACO算法——蚂蚁系统(AntSystem)在提出后的近五年里,并没有在国际学术界引起广泛关注,到了1996年DorigoM等在《IEEETransactionsonSystems,Man,andCybernetics-PartB》上发表了“Antsystem:

optimizationbyacolonyofcooperatingagents”一文,这篇文章不仅更加系统地阐述了蚁群算法的基本原理和数学模型,还将其与遗传算法等进行了仿真实验比较,并把单纯地解决对称TSP拓展到解决非对称TSP、QAP和JSP,这篇文章是蚁群算法发展史上的一篇奠基性文章。

研究者们就开始对其设计进行各种改进尝试。

首先是精华蚂蚁系统(ElitistStrategyforAntSystem,EAS),主要是对解构造过程中表现优异的人工蚂蚁给予特殊的信息素释放奖励;但是这种算法有一个缺点:

若选择的精英过多,算法会较早的收敛于局部次优解而导致搜索的过早停滞。

其次是Ant-Q算法,它将蚁群算法与Q学习算法结合,采用了更大胆的行为选择规则,只增强全局最优解上路径的信息素;在应用方面,蚁群算法经历了多年的发展历程,人们对蚁群算法的研究已经从单一的TSP领域广泛渗透到了多个应用领域;由解决一维静态优化问题发展到解决多维动态组合优化问题;由离散域范围内研究拓展到连续域范围内研究。

在双桥实验中,用一个双桥连接一种阿根廷蚂蚁的蚁穴和食物源,测试了分支长短不同比例的情况,发现蚂蚁最后主要集中在了短分支上面,这是由于信息素(化学物质形式的媒介质)在短分支上不断积累强化的结果,属于一种正反馈的过程;而有很小比例的蚂蚁会选择较长的分支,这种情况可以解释为一种路径探索行为;在已经稳定的实验基础上,如果再加入更短的路径,蚂蚁不会选择这条新加入的路径,这又说明信息素的有效期长短与路径的存在时间相当。

蚁群优化(AntColonyOptimization,ACO)的灵感正是来源于蚂蚁群体寻找食物的行为,算法使用人工蚂蚁,采用概率性选择机制并正向移动地构建解。

信息素的更新是在逆向移动中做出,信息素的释放量和之前构建解的质量相关,为了更好地探索加入了信息素的蒸发机制。

ACO是一种针对难解的离散优化问题的元启发式算法,它利用一群人工蚂蚁的相互协作来找到好的解,其中蚂蚁之间的相互协作是至关重要的,计算资源被分配到一群相对简单的人工蚂蚁上,这些人工蚂蚁通过媒介质进行相互通信,而媒介质是以环境的变化为基础的,因此这样的协作是一种间接通信的协作方式。

蚁群算法(antcolonyoptimization,ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。

它由MarcoDorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。

蚁群算法的由来:

蚂蚁是地球上最常见、数量最多的昆虫种类之一,常常成群结队地出现在人类的日常生活环境中。

这些昆虫的群体生物智能特征,引起了一些学者的注意。

意大利学者M.Dorigo,V.Maniezzo等人在观察蚂蚁的觅食习性时发现,蚂蚁总能找到巢穴与食物源之间的最短路径。

经研究发现,蚂蚁的这种群体协作功能是通过一种遗留在其来往路径上的叫做信息素(Pheromone)的挥发性化学物质来进行通信和协调的。

化学通信是蚂蚁采取的基本信息交流方式之一,在蚂蚁的生活习性中起着重要的作用。

通过对蚂蚁觅食行为的研究,他们发现,整个蚁群就是通过这种信息素进行相互协作,形成正反馈,从而使多个路径上的蚂蚁都逐渐聚集到最短的那条路径上。

这样,M.Dorigo等人于1991年首先提出了蚁群算法。

其主要特点就是:

通过正反馈、分布式协作来寻找最优路径。

这是一种基于种群寻优的启发式搜索算法。

它充分利用了生物蚁群能通过个体间简单的信息传递,搜索从蚁巢至食物间最短路径的集体寻优特征,以及该过程与旅行商问题求解之间的相似性。

得到了具有NP难度的旅行商问题的最优解答。

为什么小小的蚂蚁能够找到食物?

他们具有智能么?

如果我们要为蚂蚁设计一个人工智能的程序,那么这个程序要多么复杂呢?

首先,你要让蚂蚁能够避开障碍物,就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物,其次,要让蚂蚁找到食物,就需要让他们遍历空间上的所有点;再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小。

然而,事实并没有你想得那么复杂,上面这个程序每个蚂蚁的核心程序编码不过100多行!

为什么这么简单的程序会让蚂蚁干这样复杂的事情?

答案是:

简单规则的涌现。

事实上,每只蚂蚁并不是像我们想象的需要知道整个世界的信息,他们其实只关心很小范围内的眼前信息,而且根据这些局部信息利用几条简单的规则进行决策,这样,在蚁群这个集体里,复杂性的行为就会凸现出来。

1、范围:

蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径(一般是3),那么它能观察到的范围就是3*3个方格世界,并且能移动的距离也在这个范围之内。

2、环境:

蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一

种是找到窝的蚂蚁洒下的窝的信息素。

每个蚂蚁都仅仅能感知它范围内的环境信息。

环境以一定的速率让信息素消失。

3、觅食规则:

在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接过去。

否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁都会以小概率犯错误,从而并不是往信息素最多的点移动。

蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。

4、移动规则:

每只蚂蚁都朝向信息素最多的方向移,并且,当周围没有信息素指引的时候,蚂蚁会按照自己原来运动的方向惯性的运动下去,并且,在运动的方向有一个随机的小的扰动。

为了防止蚂蚁原地转圈,它会记住最近刚走过了哪些点,如果发现要走的下一点已经在最近走过了,它就会尽量避开。

5、避障规则:

如果蚂蚁要移动的方向有障碍物挡住,它会随机的选择另一个方向,并且有信息素指引的话,它会按照觅食的规则行为。

6、播撒信息素规则:

每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多,并随着它走远的距离,播撒的信息素越来越少。

根据这几条规则,蚂蚁之间并没有直接的关系,但是每只蚂蚁都和环境发生交互,而通过信息素这个纽带,实际上把各个蚂蚁之间关联起来了。

比如,当一只蚂蚁找到了食物,它并没有直接告诉其它蚂蚁这儿有食物,而是向环境播撒信息素,当其它的蚂蚁经过它附近的时候,就会感觉到信息素的存在,进而根据信息素的指引找到了食物。

说了这么多,蚂蚁究竟是怎么找到食物的呢?

?

在没有蚂蚁找到食物的时候,环境没有有用的信息素,那么蚂蚁为什么会相对有效的找到食物呢?

这要归功于蚂蚁的移动规则,尤其是在没有信息素时候的移动规则。

首先,它要能尽量保持某种惯性,这样使得蚂蚁尽量向前方移动(开始,这个前方是随机固定的一个方向),而不是原地无谓的打转或者震动;其次,蚂蚁要有一定的随机性,虽然有了固定的方向,但它也不能像粒子一样直线运动下去,而是有一个随机的干扰。

这样就使得蚂蚁运动起来具有了一定的目的性,尽量保持原来的方向,但又有新的试探,尤其当碰到障碍物的时候它会立即改变方向,这可以看成一种选择的过程,也就是环境的障碍物让蚂蚁的某个方向正确,而其他方向则不对。

这就解释了为什么单个蚂蚁在复杂的诸如迷宫的地图中仍然能找到隐蔽得很好的食物。

当然,在有一只蚂蚁找到了食物的时候,大部分蚂蚁会沿着信息素很快找到食物的。

但不排除会出现这样的情况:

在最初的时候,一部分蚂蚁通过随机选择了同一条路径,随着这条路径上蚂蚁释放的信息素越来越多,更多的蚂蚁也选择这条路径,但这条路径并不是最优(即最短)的,所以,导致了迭代次数完成后,蚂蚁找到的不是最优解,而是次优解,这种情况下的结果可能对实际应用的意义就不大了。

蚂蚁如何找到最短路径的?

这一是要归功于信息素,另外要归功于环境,具体说是计算机时钟。

信息素多的地方显然经过这里的蚂蚁会多,因而会有更多的蚂蚁聚集过来。

假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样多(或者较长的路上蚂蚁多,这也无关紧要)。

当蚂蚁沿着一条路到达终点以后会马上返回来,这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下更多的信息素……;而长的路正相反,因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就近似找到了。

也许有人会问局部最短路径和全局最短路的问题,实际上蚂蚁逐渐接近全局最短路的,为什么呢?

这源于蚂蚁会犯错误,也就是它会按照一定的概率不往信息素高的地方走而另辟蹊径,这可以理解为一种创新,这种创新如果能缩短路途,那么根据刚才叙述的原理,更多的蚂蚁会被吸引过来。

引申编辑本段跟着蚂蚁的踪迹,你找到了什么?

通过上面的原理叙述和实际操作,我们不难发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面的特点:

1、多样性2、正反馈多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环,正反馈机制则保证了相对优良的信息能够被保存下来。

我们可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力。

正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来了。

引申来讲,大自然的进化,社会的进步、人类的创新实际上都离不开这两样东西,多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合。

如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强,那么系统就好比一潭死水。

这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整。

既然复杂性、智能行为是根据底层规则涌现的,既然底层规则具有多样性和正反馈特点,那么也许你会问这些规则是哪里来的?

多样性和正反馈又是哪里来的?

我本人的意见:

规则来源于大自然的进化。

而大自然的进化根据刚才讲的也体现为多样性和正反馈的巧妙结合。

而这样的巧妙结合又是为什么呢?

为什么在你眼前呈现的世界是如此栩栩如生呢?

答案在于环境造就了这一切,之所以你看到栩栩如生的世界,是

因为那些不能够适应环境的多样性与正反馈的结合都已经死掉了,被环境淘汰了!

蚁群算法的实现下面的程序开始运行之后,蚂蚁们开始从窝里出动了,寻找食物;他们会顺着屏幕爬满整个画面,直到找到食物再返回窝。

其中,‘F’点表示食物,‘H’表示窝,白色块表示障碍物,‘+’就是蚂蚁了。

参数说明:

最大信息素:

蚂蚁在一开始拥有的信息素总量,越大表示程序在较长一段时间能够存在信息素。

信息素消减的速度:

随着时间的流逝,已经存在于世界上的信息素会消减,这个数值越大,那么消减的越快。

错误概率表示这个蚂蚁不往信息素最大的区域走的概率,越大则表示这个蚂蚁越有创新性。

速度半径表示蚂蚁一次能走的最大长度,也表示这个蚂蚁的感知范围。

记忆能力表示蚂蚁能记住多少个刚刚走过点的坐标,这个值避免了蚂蚁在本地打转,停滞不前。

而这个值越大那么整个系统运行速度就慢,越小则蚂蚁越容易原地转圈。

旅行商问题:

是指一名推销员要拜访多个地点时,如何找到在拜访每个地点一次后再回到起点的最短路径。

P问题是可以在多项式时间内被确定机(通常意义的计算机)解决的问题.NP(Non-DeterministicPolynomial,非确定多项式)问题,是指可以在多项式时间内被非确定机(它可以猜,他总是能猜到最能满足你需要的那种选择,如果你让他解决n皇后问题,他只要猜n次就能完成----每次都是那么幸运)解决的问题。

可以在多项式的时间里猜出一个解的问题。

比方说,我RP很好,在程序中需要枚举时,我可以一猜一个准。

NP完全(NPComplete,NPC)问题是指这样一类NP问题,所有的NP问题都可以用多项式时间划归到他们中的一个.所以显然NP完全的问题具有如下性质:

它可以在多项式时间内求解,当且仅当所有的其他的NP-完全问题也可以在多项式时间内求解。

时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。

也就是说,对于高速处理数据的计算机来说,处理某一个特定数据的效率不能衡量一个程序的好坏,而应该看当这个数据的规模变大到数百倍后,程序运行时间是否还是一样,或者也跟着慢了数百倍,或者变慢了数万倍。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2