毕业设计 基本蚁群优化算法及其改进.docx
《毕业设计 基本蚁群优化算法及其改进.docx》由会员分享,可在线阅读,更多相关《毕业设计 基本蚁群优化算法及其改进.docx(31页珍藏版)》请在冰豆网上搜索。
毕业设计基本蚁群优化算法及其改进
摘要
自意大利学者M.Dorigo于1991年提出蚁群算法后,该算法引起了学者们的极大关注,在短短十多年的时间里,已在组合优化、网络路由、函数优化、数据挖掘、机器人路径规划等领域获得了广泛应用,并取得了较好的效果。
本文首先讨论了该算法的基本原理,接着介绍了旅行商问题,然后对蚁群算法及其二种改进算法进行了分析,并通过计算机仿真来说明蚁群算法基本原理,然后分析了聚类算法原理和蚁群聚类算法的数学模型,通过调整传统的蚁群算法构建了求解聚类问题的蚁群聚类算法。
最后,本文还研究了一种依赖信息素解决聚类问题的蚁群聚类算法,并把此蚁群聚类算法应用到对人工数据进行分类,还利用该算法对2005年中国24所高校综合实力进行分类,得到的分类结果与实际情况相符,说明了蚁群算法在聚类分析中能够收到较为理想的结果。
【关键词】蚁群算法;计算机仿真;聚类;蚁群聚类
StudyonAntColonyAlgorithmanditsApplicationinClustering
Abstract:
AstheantcolonyalgorithmwasproposedbyM.Dorigoin1991,itbringedaextremelylargeattentionofscholars,inpastshortmorethantenyears,optimized,thenetworkroute,thefunctioninthecombinationoptimizes,domainsandsoondatamining,robotwayplanhasobtainedthewidespreadapplication,andhasobtainedthegoodeffect.Thisacticlediscussedthebasicprincipleofitatfirst,thenintroducedtheTSP,thisacticlealsoanalysedtheantcolonyalgorithmanditsimprovedalgorithm,andexplanateditbythecomputersimulates,thenitanalysedtheclusteringalgorithmandtheantclusteringalgorithm,buildedtheantclusteringalgorithtosolutiontheclusteringbythetraditionedantalgorithm.Atlast,thisarticlealsoproposedtheantclusteringalgorithtosolutedtheclusteringdependentonpheromon.Carryontheclassificationtotheartificialdatausingthisantclusteringalgorithm;Usethisalgorithmtocarryontheclassificationofthesynthesizestrengthofthe2005Chinese24universities;wecanobtaintheclassifiedresultwhichmatchestotheactualsituationcase.Inthenextwork,wealsoshoulddothedifferentclusteralgorithmrespectivegoodandbadpointsaswellastheclassifiedperformanceaspectthecomparisonresearch;distinguishthedifferentperformanceofdifferentalgorithmintheanalysiswhenthedatesaredifferent.
Keywords:
Antcolonyalgorithm;Computersimulation;clustering;Antclustering
1引言
下面将介绍群智能以及蚁群算法和聚类问题。
1.1群智能
成群的鸟、鱼、浮游生物、蚂蚁、蜜蜂等都是以集群形式进行筑巢、觅食、迁徙和逃避捕食者等复杂行为,而这些行为是单个个体不可能有足够的能力来指挥完成的。
数以千计的个体如何组成一个群落,又如何相互协调、分工、合作来完成复杂任务的呢?
通过生物学家对微生物、群居昆虫、群居动物的调查得出结论,各种社会型生物的各种集体行为似乎都可以找到几个共同的属性[1]:
(1)控制充分的分布在许多个体之中;
(2)个体之间的交流为局部交流;
(3)群体的行为要明显优于个体的行为;
(4)群体对外界的变化的反应具有鲁棒性和适应性。
受社会性昆虫行为的启发,计算机工作者通过对它们的模拟产生了一系列对于传统问题的新的解决方法,这些研究就是群集智能的研究。
群集智能(SwarmIntelligence)中的群体(Swarm)指的是“一组相互之间可以进行直接通信或者间接通信(通过改变局部环境)的主体,这组主体能够合作进行分布问题求解”。
而所谓群集智能指的是“无智能的主体通过合作表现出智能行为的特性”。
群集智能在没有集中控制并且不提供全局模型的前提下,为寻找复杂的分布式问题的解决方案提供了基础。
概括地说,使得社会型生物的个体相互协作而实现神奇的群体行为的答案是个体进行相互合作时体现的自组织行为[2]。
自组织是一些动态环境条件的连续变化。
Krieger等用这种蚂蚁的阈值模型为一群在活动场地聚集目标物体的机器人定义了一个劳力分配的分布式系统[3,4]。
在他们的实验中,由基于阈值行为活动控制的机器人能够完成聚集任务,同时这个系统作为一个整体显示了固有的容错性和功能衰减。
一个或多个人行为的自适应,导致整体功能仅仅略微的降低。
最重要的是,在系统设计时在机器人之间并没有外在的交流机制,同时在机器人的控制程序里没有明确包含在错误的环境里的应对措施。
尽管这个实验是在大学的实验室条件下完成的,但它足以显示这种方法对于在开放的环境下控制工业机器人的变换是有很大的潜力的。
由此可见,群智能有着以下几个方面的特点[1,3]:
(1)由于系统中单个个体的能力比较简单,这样每个个体的执行时间比较短,实现起来比较方便,具有简单性;
(2)单个个体具有改变环境的能力和系统自调节性;
(3)无中心控制和数据源。
这样的系统更具有鲁棒性,不会由于某一个或者某几个个体的故障而影响整个问题的求解;
(4)群体中相互合作的个体是分布的。
这个特点与计算机网络的工作环境非常相似;
(5)各个体通过对环境的感知进行合作,个体的增加或减少都不会加大系统通信的开销。
这样,系统具有更好的可扩展性,同时也具有更好的安全性。
根据其特点,群智能能够被用于解决大多数优化问题或者能够转化用领域已扩展到各种工程优化问题,如电信路由选择、TSP问题、车间调度问题、二次分配问题等等,并取得了意想不到的收获。
虽说群智能的研究还处于初级阶段,并且存在着许多困难,但是可以预言群智能的研究代表了以后计算机研究发展的一个重要方向。
本文所讨论的蚁群算法就是一种群智能算法[2]。
1.2蚁群算法
蚁群觅食过程是一种典型的群智能行为过程[5],蚁群寻找食物时会派出一些蚂蚁分头在四周游荡,如果一只蚂蚁找到食物,它就返回巢中通知同伴并沿途留下“信息素”(pheromone)作为蚁群前往食物所在地的标记。
信息素会逐渐挥发,如果两只蚂蚁同时找到同一食物,又采取不同路线回到巢中,那么比较绕远的一条路上信息素的气味会比较淡,蚁群将倾向于沿另一条更近的路线前往食物所在地。
受到蚂蚁觅食时的通信机制的启发,90年代Dorigo提出了蚁群算法(antcolonyalgorithm,ACA)来解决计算机算法学中经典的“旅行商问题”--如果有n个城市,需要对所有n个城市进行访问且只访问一次的最短距离。
在解决旅行商问题时,蚁群算法设计虚拟的“蚂蚁”将摸索不同路线,并留下会随时间逐渐消失的虚拟“信息素”。
虚拟“信息素”也会挥发,每只蚂蚁每次随机选择要走的路径,他们倾向于选择路径比较短的、信息素比较浓的路径。
根据“信息素较浓的路线更近”的原则,即可以选择出最佳路线。
由于这个算法利用了正反馈机制,使得较短的路线能够有较大的机会得到选择并且采用了概率算法,所以它能够不局限于局部最优解。
蚁群算法对于解决旅行商问题并不是目前最好的方法,但首先它提出了一种解决旅行商问题的新思路;其次由于这种算法特有的解决方法,它已经成功的被应用于解决组合优化问题。
作为通用型随机优化算法,蚁群算法自问世以来表现了强大的生命力,较之以往的启发式算法不论在搜索效率上,还是在算法的时间复杂度方面都取得了令人满意的效果,现在已经陆续应用到组合优化、人工智能、通讯数据挖掘、机器人路径规划等多个领域。
另外蚁群算法的正反馈性和协同性使其可用于分布式系统,隐含的并行性更使之具有较强的发展潜力。
从数值模拟结果看,它比目前广泛研究的一些优化算法有更好的适应性[6]。
以蚁群算法为代表的群体智能已成为当今分布式人工智能研究的一个热点,许多源于蜂群和蚁群模型设计的算法已越来越多地被用于企业的运转模式的研究。
美国五角大楼正在资助关于群体智能系统的研究工作--群体战略(SWARMSTRATEGY),它的一个实战用途是通过运用成群的空中无人驾驶飞行器和地面车辆来转移敌人的注意力,让自己的军队在敌人后方不被察觉地安全行进。
英国电信公司和美国世界通信公司以电子蚂蚁为基础,对新的电信网络管理方法进行了试验。
群体智能还被应用于工厂生产计划的制定和运输部门的后勤管理。
美国太平洋西南航空公司采用了一种直接源于蚂蚁行为研究成果的运输管理软件,结果每年至少节约了1000万美元费用开支。
英国联合利华公司已率先利用群体智能技术改善其一家牙膏厂的运转状况。
美国通用汽车公司,法国液气公司,荷兰公路交通部和美国一些移民事务机构也都采用这种技术来改善其运转的机能。
又如美国MCIW公司一直研究人工蚂蚁,并用于管理公司的电话网,对用户记帐收费等工作。
另外,还设计“人工蚂蚁”打算用于因特网的路由管理。
鉴于群体智能广阔的应用前景,美国和欧洲联盟均于近几年开始出资资助基于群体智能模拟的相关研究项目,关在一些院校开设群体智能的相关课程。
牛津大学出版社1999年版的E.Bonabeau和M.Dorigo等人编写的专著《群体智能:
从自然到人工系统》(SwarmIntelligence:
FromNaturaltoArtificialSystem),以及2001年出版的J.Kennedy和R.Eberhart编著的《群体智能》(SwarmIntelligence)进一步扩大了群体智能的影响.IEEE进化计算会刊也于2002年8月出版了蚁群优化算特刊。
国内也有研究者用蚂蚁算法求解全国144个城市的最短回路问题,求得的解同其它方法求到得解一样精确,这说明蚂蚁算法不但是求解组合优化问题的可行方法,而且是一种很有竞争力的算法。
国家自然科学基金"十五"期间学科交叉类优先资助领域中的认知科学及其信息处理的研究内容中也明确列出了群体智能领域的进化,自适应与现场认知主题[7]。
而且从1999年开始,几乎每年都会有几项相关项目获得资助。
蚁群算法是一种新型的模拟进化算法,其在数据挖掘中的应用正逐步引起人们的关注。
目前,人工蚁群在知识发现的过程中主要用于发掘聚类模型和分类模型。
1.3聚类问题
聚类是将一组对象分成若干个群体,每个群体构成一个簇,使得簇内的对象尽可能具有最大的相似性,不同簇之间的对象尽可能有最大的相异性。
目前,聚类方法主要有K均值法,模糊聚类、神经网络聚类、基于遗传算法的聚类、小波变换聚类以及将这些算法有效结合而形成的改进方法。
随着蚁群算法研究的兴起,人们发现在某些方面采用蚁群模型进行聚类更加接近实际的聚类问题。
将蚁群算法用于聚类分析,灵感源于蚂蚁堆积他们的尸体和分类他们的幼体。
基于蚁群算法的聚类方法从原理上可分为两种:
一种是基于蚁堆形成原理来实现数据聚类[8,9],另一种是运用蚂蚁觅食的原理,利用信息来实现聚类分析[10]。
从实际应用的观点来看,聚类分析在科学数据探测、图像处理、模式识别、医疗诊断、计算生物学、文档检索、Web分析等领域起着非常重要的作用,它已经成为当前数据挖掘研究领域中一个非常活跃的研究课题。
1.4本文研究工作
本文在第二章中,将介绍蚁群算法基本原理和人工蚂蚁与真实蚂蚁的对比。
第三章为基本蚁群算法及其参数设置,几种典型的蚁群优化算法以及使用vc++实现基本蚁群算法。
第四章研究一种依赖信息素解决聚类问题的蚁群聚类算法,并且把它应用在人造样本检验其寻找最优分类结果的性能,最后以2005中国24所高校综合实力能力分类进行案例分析,同时验证此蚁群聚类算法的正确性。
2蚁群算法原理及算法描述
下面将介绍蚁群算法原理以及蚁群觅食过程计算机动态模拟。
2.1蚁群算法原理
自然界中蚁群的自组织行为很早就引起了昆虫学家的注意[11-13]。
Deneubourg[14]等通过“双桥实验”对蚁群的觅食行为进行了研究。
如图2-1(a)所示,对称双桥(两桥的长度相同)A、B将蚁巢与食物源分隔开,蚂蚁从蚁巢自由地向食物源移动。
图2-1(b)是经过A、B两桥的蚂蚁百分比随时间的变化情况。
实验结果显示,在初始阶段出现一段时间的震荡(由于某些随机因素,使通过某座桥上的蚂蚁数急剧增多或减少)后,蚂蚁趋向于走同一条路经。
在该实验中,绝大部分蚂蚁选择了A桥。
在实验初期,A、B两座桥上都没有外激素存在,蚂蚁将以相同的概率选择A、B两座桥,故此时蚂蚁在两座桥上留下的外激素量相等。
经过一段时间后,由于随机波动致使大部分蚂蚁选择了A桥(也有可能为B桥),因此更多的外激素将会留在A桥上,致使A桥对后来的蚂蚁有更大的吸引力。
如图2-1(b)所示,随着时间的推移,A桥上的蚂蚁数将越来越多,而B桥上正好相反。
图2-1对称双桥实验
S.Goss[15]等人给出了上述实验的概率模型。
首先,假定桥上残留的外激素量与过去一段时间经过该桥的蚂蚁数成正比(这意味着不考虑外激素蒸发的情况);其次,某一时刻蚂蚁按桥上外激素量的多少来选择某座桥,即蚂蚁选择某座桥的概率与经过该桥的蚂蚁数成正比。
当所有m只蚂蚁都经过两座桥以后,设Am、Bm分别为经过A桥和B桥的蚂蚁数(Am+Bm=m),则第m+1只蚂蚁选择A桥的概率为:
(2.1)
而选择B桥的概率为:
PB(m)=1-PA(m)(2.2)
其中参数h和k用来匹配真实实验数据。
第(m+1)只蚂蚁首先按(2.1)式计算选择概率PA(m),然后生成一个在区间[0,1]上一致分布的随机数
,如果
≤PA(m),则选择A桥,否则选择B桥。
为了求得参数k和h,通过蒙特卡罗模拟证实[17],当k≈20,h≈2时,公式(2.1)与实验数据相一致[16]。
另外,Goss[15]等人还用非对称双桥(两座桥的长度不相等)进行了实验。
如图2-2所示,图2-2(a)为蚂蚁经过非对称双桥开始觅食;图1.2(b)显示绝大多数蚂蚁选择较短的桥;图2-2(c)显示最终有80%~100%的蚂蚁选择较短的桥。
在非对称双桥实验中,随机抖动对胜出桥(有较多蚂蚁选择的桥)的影响减小,而占主导作用的是随机外激素的引导行为。
在非对称双桥实验中,随机抖动对胜出桥(有较多蚂蚁选择的桥)的影响减小,而占主导作用的是随机外激素的引导行为。
图2-2非对称双桥实验
处能够找到蚁巢和食物源之间的最短路径外,蚁群还有极强的适应环境的能力,如图2-3所示,在蚁群经过的路线上突然出现障碍物时,蚁群能够很快重新找到新的最优路径。
图2-3蚁群的自适应行为
(a)蚁群在蚁巢和食物源之间的路径上移动;(b)路径上出现障碍物,蚁群以同样的概率向左、右方向行进;(c)较短路径上的外激素以更快的速度增加;(d)所有的蚂蚁都选择较短的路径。
2.2蚁群优化的原理分析
ACO是受自然界中真实蚁群的集体觅食行为的启发而发展起来的一种基于群体的模拟进化算法,属于随机搜索算法。
M.Dorigo等人充分利用了蚁群搜索食物的过程与著名TSP问题之间的相似性,通过人工模拟蚁群搜索食物的行为来求解TSP问题。
从上节的“双桥实验”可以看出,像蚂蚁这类社会性动物,虽然个体的行为极其简单,但由这些简单个体所组成的蚁群却表现出极其复杂的行为特征。
如蚁群除了能够找到蚁巢与食物源之间的最短路径外,还能适应环境的变化,即在蚁群运动的路线上突然出现障碍物时,蚂蚁能够很快地重新找到最短路径。
蚁群是如何完成这些复杂任务的呢?
仿生学家经过大量地观察、研究发现,蚂蚁在寻找食物时,能在其经过的路径上释放一种蚂蚁特有的分泌物—外激素(eromone),使得一定范围内的其它蚂蚁能够感觉到这种物质,且倾向于朝着该物质强度高的方向移动。
因此,蚁群的集体行为表现为一种信息正反馈现象:
某条路径上经过的蚂蚁数越多,其上留下的外激素的迹也就越多(当然,随时间的推移会逐渐蒸发掉一部分),后来蚂蚁选择该路径的概率也越高,从而更增加了该路径上外激素的强度。
蚁群这种选择路径的过程被称之为自催化(Autocatalyticbehavior),由于其原理是一种正反馈机制,因此也可将蚁群的行为理解成所谓的增强型学习系统(ReinforcementLearningSystem)[16-18]。
下面用图2-4和2-5解释蚁群发现最短路径的原理和机制。
图2-4蚂蚁从A点出发,速度相同,食物在D点,可能随机选择路线ABD或ACD。
假设初始时每条分配路线一只蚂蚁,每个时间单位行走一步,本图为经过9个时间单位时的情形:
走ABD的蚂蚁到达终点,而走ACD的蚂蚁刚好走到C点,为一半路程。
图2-4蚁群觅食原理图
图2-5为从开始算起,经过18个时间单位时的情形:
走ABD的蚂蚁到达终点后得到食物又返回了起点A,而走ACD的蚂蚁刚好走到D点。
图2-5蚁群觅食原理图
假设蚂蚁每经过一处所留下的信息素为一个单位,则经过36个时间单位后,所有开始一起出发的蚂蚁都经过不同路径从D点取得了食物,此时ABD的路线往返了2趟,每一处的信息素为4个单位,而ACD的路线往返了一趟,每一处的信息素为2个单位,其比值为2:
1。
寻找食物的过程继续进行,则按信息素的指导,蚁群在ABD路线上增派一只蚂蚁(共2只),而ACD路线上仍然为一只蚂蚁。
再经过36个时间单位后,两条线路上的信息素单位积累为12和4,比值为3:
1。
若按以上规则继续,蚁群在ABD路线上再增派一只蚂蚁(共3只),而ACD路线上仍然为一只蚂蚁。
再经过36个时间单位后,两条线路上的信息素单位积累为24和6,比值为4:
1。
若继续进行,则按信息素的指导,最终所有的蚂蚁会放弃ACD路线,而都选择ABD路线。
蚁群算法就是模拟了蚂蚁觅食的这一过程,该算法的思想是用蚂蚁的行走路线表示待求问题的可行解。
每只蚂蚁在解空间独立地搜索可行解。
搜索到的解的质量越高,在“行走路线”(可行解)留下的信息素也就越多。
随着算法的推进,代表较好解的路线上的信息素逐渐增多,选择它的蚂蚁也逐渐增多,最终整个蚁群在正反馈机制的作用下集中到代表最优解的路线上,也就找到了最优解。
2.3算法基本流程
算法基本流程如图2-6。
图2-6蚁群算法流程图
当然,迄今为止蚁群算法已经有了很多的变型或改进算法,但基于蚁群算法(ACA)寻找问题近似解的思想及实现优化过程的机制还是没有改变。
由上图可见,蚁群算法区别于其他传统优化算法,因为它具有以下3个特点:
(1)模拟了一种大自然真实存在的现象,并建立模型;
(2)不可确定性;
(3)总是表现出一种并行性,不是在系统中强行加入,而是算法本身隐含具有的。
2.4蚁群觅食过程计算机动态模拟
在上面小节中我们讲到了真实蚁群的集体觅食行为,在生活中我们可以见到,但是不会注意它们寻找食物的全过程,现在本文通过计算机动态模拟来模拟真实蚁群的集体觅食行为。
使得大家对真实蚁群的集体觅食行为更加熟悉和了解,对真实蚁群的集体觅食行为的过程如图2-7、2-8、2-9、2-10所示:
程序开始运行,蚂蚁们开始从窝里出动了,寻找食物;他们会顺着屏幕爬满整个画面,直到找到食物再返回窝。
其中,‘F’点表示食物,‘H’表示窝,白色块表示障碍物,‘+’表示蚂蚁,‘O’表示找到食物的蚂蚁,粉红色的‘+’是代表第一只蚂蚁。
图2-7蚂蚁开始从蚁巢出来觅食
蚂蚁从蚁巢出发沿随机路线去寻找食物,并且在所走的路上留下信息素作为蚂蚁之间交流的介质。
图中粉红色的那只蚂蚁是特殊标记,便于研究。
图2-8蚂蚁沿各条路径随机觅食
已经有蚂蚁找到了食物并在图中用圆圈表示,最先找到食物的蚂蚁走的路线就是目前的最优路径,而且此时这条路径上的信息量浓度比别的路径大,所以有更多的蚂蚁正在沿着这条路走。
图2-9已有蚂蚁找到最短路径
找到食物的蚂蚁在随机继续寻找着路径,以便发现更优的路径,而没有找到食物的蚂蚁此时大多数都是沿着上图中的最优路径继续寻找,而且也逐渐靠近食物,而此时的最有路径的信息量浓度也越来越大,所以走这条路径的蚂蚁也越来越多。
图2-10所有蚂蚁找到最优路径
此图中所有蚂蚁都已找到最优路径,并沿着最优路径返回到蚁巢。
由以上4图我们可以清楚的知道蚁群的集体觅食行为的全过程并且得到了预期的结果——蚂蚁找到了最优路径。
2.5人工蚂蚁与真实蚂蚁的对比
蚁群算法是受到人们对自然界中真实的蚂蚁社会行为的研究成果启发而提出的一种基于种群的模拟进化算法,属于随机搜索算法。
Dorigo等人提出该算法时,正是充分利用了蚁群搜索食物的过程与旅行商问题(TSP)的相似性,通过人工模拟蚂蚁觅食的过程来求解TSP问题。
下面简单介绍蚁群算法中的人工蚂蚁与真实蚂蚁的异同点。
蚁群算法中进行搜索的人工蚂蚁(Agent)的很多观点都来源于真实蚁群,因此它们都包括下列几项[19]。
(1)存在一个群体中个体相互交流通信的机制,这里通常表现为信息素痕迹;
真实蚂蚁和人工蚂蚁都存在一种机制改变它当前所处的环境:
真实蚂蚁经过的路径上留下化学刺激物——信息素(pheromone),人工蚂蚁在它们经过的路径上改变了路径上存储的数字信息,这个信息记录了蚂蚁当前解和历史解的性能状态,而且能够被经过的其他人工蚂蚁读写。
类似的,本文称这种数字信息为人工信息素。
在蚁群优化算法中蚂蚁就是通过当前路径L的信息素进行交流协作的。
这种交流方式在收集可利用的知识上占据着重要的位置,其重要的作用在于它改变了当前蚂蚁所经过的路径周围的环境同时也像一个函数似的改变了整个蚁群所存储的历史信息。
通常,在蚂蚁优化算法中有一个挥发机制,它像真实的信息素挥发一样随着时间的推移改变路径上的人工信息素。
挥发现象使得蚁群可以逐渐的忘却历史遗留信息、这样就可以使路径的选则不局限于过去蚂蚁的路径选择经验。
(2)群体中每个个体都记录当前遍历序列;
人工蚂蚁和真实蚂蚁都要完成-个相同的任务:
寻找一