基本蚁群优化算法及其改进毕业设计

基本蚁群优化算法及其改进毕业设计
基本蚁群优化算法及其改进毕业设计

摘要

自意大利学者M. Dorigo于1991年提出蚁群算法后,该算法引起了学者们的极大关注,在短短十多年的时间里,已在组合优化、网络路由、函数优化、数据挖掘、机器人路径规划等领域获得了广泛应用,并取得了较好的效果。本文首先讨论了该算法的基本原理,接着介绍了旅行商问题,然后对蚁群算法及其二种改进算法进行了分析,并通过计算机仿真来说明蚁群算法基本原理,然后分析了聚类算法原理和蚁群聚类算法的数学模型,通过调整传统的蚁群算法构建了求解聚类问题的蚁群聚类算法。最后,本文还研究了一种依赖信息素解决聚类问题的蚁群聚类算法,并把此蚁群聚类算法应用到对人工数据进行分类,还利用该算法对2005年中国24所高校综合实力进行分类,得到的分类结果与实际情况相符,说明了蚁群算法在聚类分析中能够收到较为理想的结果。

【关键词】蚁群算法;计算机仿真;聚类;蚁群聚类

Study on Ant Colony Algorithm and its Application in

Clustering

Abstract:

As the ant colony algorithm was proposed by M. Dorigo in 1991,it bringed a extremely large attention of scholars, in past short more than ten years, optimized, the network route, the function in the combination optimizes, domains and so on data mining, robot way plan has obtained the widespread application, and has obtained the good effect.This acticle discussed the basic principle of it at first, then introduced the TSP,this acticle also analysed the ant colony algorithm and its improved algorithm, and explanated it by the computer simulates, then it analysed the clustering algorithm and the ant clustering algorithm, builded the ant clustering algorith to solution the clustering by the traditioned ant algorithm. At last, this article also proposed the ant clustering algorith to soluted the clustering dependent on pheromon. Carry on the classification to the artificial data using this ant clustering algorithm; Use this algorithm to carry on the classification of the synthesize strength of the 2005 Chinese 24 universities; we can obtain the classified result which matches to the actual situation case. In the next work, we also should do the different cluster algorithm respective good and bad points as well as the classified performance aspect the comparison research; distinguish the different performance of different algorithm in the analysis when the dates are different.

Key words:

Ant colony algorithm; Computer simulation; clustering; Ant clustering

目录

1 引言 (3)

1.1群智能 (2)

1.2蚁群算法 (3)

1.3聚类问题 (4)

1.4本文研究工作 (5)

2 蚁群算法原理及算法描述 (5)

2.1蚁群算法原理 (5)

2.2蚁群优化的原理分析 (8)

2.3算法基本流程 (10)

2.4蚁群觅食过程计算机动态模拟 (11)

2.5人工蚂蚁与真实蚂蚁的对比 (13)

2.6本章小结 (14)

3 基本蚁群优化算法及其改进 (15)

3.1旅行商问题 (15)

3.2基本蚁群算法及其典型改进 (15)

3.2.1 蚂蚁系统 (15)

3.2.2 蚁群系统 (16)

3.2.3 最大-最小蚂蚁系统 (16)

3.3基本蚁群算法仿真实验 (16)

3.3.1 软硬件环境 (16)

3.3.2 重要参数设置 (16)

3.3.3仿真试验 (17)

3.4本章小结 (19)

4 蚁群聚类算法及其应用 (20)

4.1聚类问题 (20)

4.2蚁群聚类算法的数学模型 (21)

4.3蚁群聚类算法 (21)

4.3.1 蚁群聚类算法分析 (22)

4.3.2 蚁群聚类算法流程 (25)

4.4蚁群聚类算法在高校分类中的应用 (25)

4.5本章小结 (27)

5 结论与展望 (28)

参考文献 (29)

致谢 (31)

附录 (32)

1 引言

下面将介绍群智能以及蚁群算法和聚类问题。

1.1 群智能

成群的鸟、鱼、浮游生物、蚂蚁、蜜蜂等都是以集群形式进行筑巢、觅食、迁徙和逃避捕食者等复杂行为,而这些行为是单个个体不可能有足够的能力来指挥完成的。数以千计的个体如何组成一个群落,又如何相互协调、分工、合作来完成复杂任务的呢?通过生物学家对微生物、群居昆虫、群居动物的调查得出结论,各种社会型生物的各种集体行为似乎都可以找到几个共同的属性[1]:

(1)控制充分的分布在许多个体之中;

(2)个体之间的交流为局部交流;

(3)群体的行为要明显优于个体的行为;

(4)群体对外界的变化的反应具有鲁棒性和适应性。

受社会性昆虫行为的启发,计算机工作者通过对它们的模拟产生了一系列对于传统问题的新的解决方法,这些研究就是群集智能的研究。群集智能(Swarm Intelligence)中的群体(Swarm)指的是“一组相互之间可以进行直接通信或者间接通信(通过改变局部环境)的主体,这组主体能够合作进行分布问题求解”。而所谓群集智能指的是“无智能的主体通过合作表现出智能行为的特性”。群集智能在没有集中控制并且不提供全局模型的前提下,为寻找复杂的分布式问题的解决方案提供了基础。

概括地说,使得社会型生物的个体相互协作而实现神奇的群体行为的答案是个体进行相互合作时体现的自组织行为[2]。自组织是一些动态环境条件的连续变化。Krieger 等用这种蚂蚁的阈值模型为一群在活动场地聚集目标物体的机器人定义了一个劳力分配的分布式系统[3,4]。在他们的实验中,由基于阈值行为活动控制的机器人能够完成聚集任务,同时这个系统作为一个整体显示了固有的容错性和功能衰减。一个或多个人行为的自适应,导致整体功能仅仅略微的降低。最重要的是,在系统设计时在机器人之间并没有外在的交流机制,同时在机器人的控制程序里没有明确包含在错误的环境里的应对措施。尽管这个实验是在大学的实验室条件下完成的,但它足以显示这种方法对于在开放的环境下控制工业机器人的变换是有很大的潜力的。由此可见,群智能有着以下几个方面的特点[1,3]:

(1)由于系统中单个个体的能力比较简单,这样每个个体的执行时间比较短,实现起来比较方便,具有简单性;

(2)单个个体具有改变环境的能力和系统自调节性;

(3)无中心控制和数据源。这样的系统更具有鲁棒性,不会由于某一个或者某几个个体的故障而影响整个问题的求解;

(4)群体中相互合作的个体是分布的。这个特点与计算机网络的工作环境非常相似;

(5)各个体通过对环境的感知进行合作,个体的增加或减少都不会加大系统通信的开销。这样,系统具有更好的可扩展性,同时也具有更好的安全性。

根据其特点,群智能能够被用于解决大多数优化问题或者能够转化用领域已扩展到各种工程优化问题,如电信路由选择、TSP 问题、车间调度问题、二次分配问题等等,并取得了意想不到的收获。虽说群智能的研究还处于初级阶段,并且存在着许多困难,但是可以预言群智能的研究代表了以后计算机研究发展的一个重要方向。本文所讨论的蚁群算法就是一种群智能算法[2]。

1.2 蚁群算法

蚁群觅食过程是一种典型的群智能行为过程[5],蚁群寻找食物时会派出一些蚂蚁分头在四周游荡,如果一只蚂蚁找到食物,它就返回巢中通知同伴并沿途留下“信息素”(pheromone)作为蚁群前往食物所在地的标记。信息素会逐渐挥发,如果两只蚂蚁同时找到同一食物,又采取不同路线回到巢中,那么比较绕远的一条路上信息素的气味会比较淡,蚁群将倾向于沿另一条更近的路线前往食物所在地。受到蚂蚁觅食时的通信机制的启发,90年代Dorigo提出了蚁群算法(ant colony algorithm,ACA)来解决计算机算法学中经典的“旅行商问题”--如果有n 个城市,需要对所有n个城市进行访问且只访问一次的最短距离。在解决旅行商问题时,蚁群算法设计虚拟的“蚂蚁”将摸索不同路线,并留下会随时间逐渐消失的虚拟“信息素”。虚拟“信息素”也会挥发,每只蚂蚁每次随机选择要走的路径,他们倾向于选择路径比较短的、信息素比较浓的路径。根据“信息素较浓的路线更近”的原则,即可以选择出最佳路线。由于这个算法利用了正反馈机制,使得较短的路线能够有较大的机会得到选择并且采用了概率算法,所以它能够不局限于局部最优解。蚁群算法对于解决旅行商问题并不是目前最好的方法,但首先它提出了一种解决旅行商问题的新思路;其次由于这种算法特有的解决方法,它已经成功的被应用于解决组合优化问题。作为通用型随机优化算法,蚁群算法自问世以来表现了强大的生命力,较之以往的启发式算法不论在搜索效率上,还是在算法的时间复杂度方面都取得了令人满意的效果,现在已经陆续应用到组合优化、人工智能、通讯数据挖掘、机器人路径规划等多个领域。另外蚁群算法的正反馈性和协同性使其可用于分布式系统,隐含的并行性更使之具有较强的发展潜力。从数值模拟结果看,它比目前广泛研究的一些优化算法有更好的适应性[6]。

以蚁群算法为代表的群体智能已成为当今分布式人工智能研究的一个热点,许多源于蜂群和蚁群模型设计的算法已越来越多地被用于企业的运转模式的研究。美国五角大楼正在资助关于群体智能系统的研究工作--群体战略(SWARM STRATEGY),它的一个实战用途是通过运用成群的空中无人驾驶飞行器和地面

车辆来转移敌人的注意力,让自己的军队在敌人后方不被察觉地安全行进。英国电信公司和美国世界通信公司以电子蚂蚁为基础,对新的电信网络管理方法进行了试验。群体智能还被应用于工厂生产计划的制定和运输部门的后勤管理。美国太平洋西南航空公司采用了一种直接源于蚂蚁行为研究成果的运输管理软件,结果每年至少节约了1000万美元费用开支。英国联合利华公司已率先利用群体智能技术改善其一家牙膏厂的运转状况。美国通用汽车公司,法国液气公司,荷兰公路交通部和美国一些移民事务机构也都采用这种技术来改善其运转的机能。又如美国MCI https://www.360docs.net/doc/671053166.html,公司一直研究人工蚂蚁,并用于管理公司的电话网,对用户记帐收费等工作。另外,还设计“人工蚂蚁”打算用于因特网的路由管理。鉴于群体智能广阔的应用前景,美国和欧洲联盟均于近几年开始出资资助基于群体智能模拟的相关研究项目,关在一些院校开设群体智能的相关课程。牛津大学出版社1999年版的E.Bonabeau和M.Dorigo等人编写的专著《群体智能:从自然到人工系统》(Swarm Intelligence: From Natural to Artificial System),以及2001年出版的J.Kennedy和R.Eberhart编著的《群体智能》(Swarm Intelligence)进一步扩大了群体智能的影响.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 只蚂蚁都经过两座桥以后,设 A m 、B m 分别为经过 A 桥和 B 桥的蚂蚁数(A m + B m = m ),则第 m+1 只蚂蚁选择 A 桥的概率为:

()()()()

h

m A h h m m A k p m A k B k +=+++ (2.1) 而选择 B 桥的概率为:

P B (m) = 1- P A(m) (2.2)其中参数h 和k 用来匹配真实实验数据。第(m+1)只蚂蚁首先按(2.1)式计算选择概率P A(m),然后生成一个在区间[0,1]上一致分布的随机数,如果

≤P A(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),使得一定范围内的其它蚂蚁能够感觉到这种物质,且倾向于朝着该物质强度高的方向移动。因此,蚁群的集体行为表现为一种信息正反馈现象:某条路径上经过的蚂蚁数越多,其上留下的外激素的迹也就越多(当然,随时间的推移会逐渐蒸发掉一部分),后来蚂蚁选择该路径的概率也越高,从而更增加了该路径上外激素的强度。蚁群这种选择路径的过程被称之为自催化(Autocatalytic behavior),由于其原理是一种正反馈机制,因此也可将蚁群的行为理解成所谓的增强型学习系统(Reinforcement Learning System)[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)群体中每个个体都记录当前遍历序列;

人工蚂蚁和真实蚂蚁都要完成-个相同的任务:寻找一个从源节点(巢穴到目的节点(食物源)的最短路径,它们都不具有跳跃性,都只能在相邻节点之间一步一步移动直至选择完所有城市得到一个遍历序列。为了能在多次寻优过程中找到最短路径,记录当前移动序列是必须的。

(3)利用当前信息进行路径的随机选择策略;

蚁群算法中人工蚂蚁从一个节点移动到下一个节点的求解方法是利用概率选择策略实现的,概率选择策略只利用当前的信息去预测未来的情况,而不能利用未来的信息,因此,该选择策略利用的都是当前信息。

在从真实妈蚁的行为中获得启发构造蚁群算法的过程中,人工蚂蚁还具备了真实蚂蚁不具有的一些特性[20]:

(1) 人工蚂蚁存在于一个离散的空间中,它们的移动是一个状态到另一个状态的转换;

(2) 人工蚂蚁具有一个记忆了它本身过去行为的内在状态;

(3) 人工蚂蚁更新信息素的时机是随不同问题而变化的,不反映真实蚁群的行为。如:有的问题中人工蚂蚁在产生一个解后改变信息量,有的问题中蚂蚁每做出一步选择就更改信息量。但无论哪种方法,信息素的更新并不是随时可以进行的。

(4) 为了改善系统的性能,人工蚁群算法中可以增加一些性能,如:预测未来、局部优化、回退等,这些行为在真实蚂蚁中是不存在的。在很多应用中人工蚂蚁可以在局部优化过程中相互交换信息,还有一些蚁群算法实现了简单预测。

2.6 本章小结

本章阐述了ACO 产生的背景、原理、模型及其研究现状。首先通过著名的“双桥实验”分析了蚁群的自组织行为及对该行为的数学建模。在此基础上,阐述了ACO 的原理并给出了蚁群算法的流程,而且还用计算机动态模拟了蚁群觅食过程。最后,进行了人工蚂蚁与真实蚂蚁的对比和分析。

3 基本蚁群优化算法及其改进

下面介绍基本蚁群算法及其典型的改进算法和对基本蚁群算法进行了计算机仿真。

3.1 旅行商问题

一般地,旅行商问题(Traveling Salesman Problem, 简称TSP)可描述如下:设C = {c1,c2,…,c n}为n 个城市的集合,L = {l ij |c i,c j∈C }是C 中元素两两连接的集合,G = (C,L)是一个图,TSP 问题的目的是从G 中找出长度最短的Hamiltonian 圈,即找出对C = {c1,c2,…,c n}中n 个城市访问且只访问一次的最短的一条封闭曲线。目前TSP 问题分为对称型和非对称型。在对称型TSP 问题中,有d ij = d ji,νc i,c j∈C(1,2,L,n),d ij是l ij的长度,问题文件的后缀名为.tsp;而在非对称型TSP 问题中,至少存在一对c i,c j∈C ,使d ij≠d ji ,问题文件的后缀名为.atsp,对于部分对称型TSP 问题和非对称型TSP 问题,TSPLIB中还收集了到目前为止已知的最优解,其文件名为相应TSP问题名+.opt. tour。

3.2 基本蚁群算法及其典型改进

本小节将介绍蚁基本蚁群算法及其2种典型的改进算法。

3.2.1 蚂蚁系统

AS 算法具有如下优点:

(1)较强的鲁棒性:对AS 算法的模型稍加修改,便可以应用于其它问题;

(2)分布式计算:AS 算法是一种基于种群的进化算法,本质上具有并行性,易于并行实现;

(3)易于与其它方法结合:AS 算法很容易与多种启发式算法结合,以改善算法的性能。

虽然AS 算法有许多优点,但同时也存在一些缺陷,如:

(1)限于局部最优解,从算法解的性质而言,蚁群算法也是在寻找一个比较好的局部最优解,而不是强求是全局最优解。

(2)工作过程的中间停滞问题(stagnation behaviour),和算法开始时收敛速度快一样, 在算法工作过程当中, 迭代到一定次数后, 蚂蚁也可能在某个或某些局部最优解的邻域附近产生停滞。

(3)较长的搜索时间,尽管和其他算法相比,蚁群算法在迭代次数和解的质量上都有一定的优势,但对于目前计算机网络的实际情况,还是需要较长的搜索

时间。虽然计算机计算速度的提高和蚁群算法的并行性在一定程度上可以缓解这一问题, 但是对于大规模复杂的计算机网络,这还是一个很大的障碍。

对于以上三个问题,已经引起了许多研究者的注意,并提出了若干改进的蚂蚁算法,如M. Dorigo 提出的蚁群系统(ACS)[22]和T. Stützle[23-26]等人提出的最大-最小蚂蚁系统(MMAS)等。下面就代表性的改进算法本文将对3种改进算法进行讨论。

3.2.2 蚁群系统

蚁群系统(Ant Colony System,简称ACS)[22]是AS 最成功的后续算法之一,与AS 算法的主要区别在于:(i)在选择下一座城市时,ACS 算法更多地利用了当前的较好解;(ii)只在全局最优解所属的边上增加信息素;(iii)每次当蚂蚁从城市i 转移到城市j 时,边ij 上的信息素将会适当的减少。

3.2.3 最大-最小蚂蚁系统

最大-最小蚂蚁系统(MAX-MIN Ant System, 简称MMAS)[23-26]是Thomas St ützle(2000)[23]提出的。它的基本思想是在信息素更新过程中,只允许最好的解可以增加信息素实现对已有经验的利用;同时,利用一个限制信息素强度的简单机制,这样成功的避免了在搜索过程中蚂蚁过早的集中到同一条路径上去,而且通过加入局部搜索,MAX-MIN 蚂蚁系统是很容易进行扩展的,有利于算法的拓展。

3.3 基本蚁群算法仿真实验

在3.2.1小节中本文详细介绍了基本蚁群算法的原理等,在本小节中将通过计算机仿真来理解基本蚁群算法的原理,并将作出的路径图和最终结果自动保存到文本文档(.txt)与Excel(.xls)中。

3.3.1 软硬件环境

本实验采用的硬件/软件环境分别为:CPU 3.0GHz,内存256M,硬盘容量80G,操作系统是Microsoft windows XP Service Pack 2,开发平台是Microsoft Visual C++ 6.0、MATLAB 7.0。

3.3.2 重要参数设置

蚁群算法在TSP问题的应用中取得了良好的效果,但也存在一些不足:①如果参数α、β、ρ、m、Q等设置不当,导致求解速度很慢且所得解的质量特别差;

②基本蚁群算法计算量大,求解所需的时间较长;③基本蚁群算法中理论上要求所有的蚂蚁选择同一路线,该线路即为所求的最优线路;但在实际计算中,在给

定一定循环次数的条件下很难实现这种情况。另一方面,在其他的实际应用中,如图像处理中寻求最优模板问题,并不要求所有的蚂蚁都能找到最优模板,而只需要一只找到即可。如果要求所有的蚂蚁都找到最优模板,反而影响了计算效率。目前,对基本蚁群算法的参数设置和属性的研究大多还处于实验阶段,M. Dorigo [31, 32]等人通过大量的实验对蚂蚁系统的参数和基本属性进行了探讨。所以本实验中重要参数设置如下:

信息素浓度影响力参数α:所有算法α设为1.0。

启发式信息影响力参数β:所有算法β设为5.0。

信息素蒸发系数ρ((1-ρ)表示信息素的持久性系数):所有算法ρ设为0.5(1-ρ即为0.5)。

蚂蚁数目m:本文将m设为问题规模n的2/5即m=n*2/5在算法开始时蚂蚁随机分布在各个城市上。(n为其中TSP问题中后面的数字,如:ATT48.TSP中48即为n 值)。

TSP问题:本文使用ATT48.TSP的TSP问题。

3.3.3仿真试验

用上两小节中设置的基本蚁群算法的条件进行计算机仿真,以此来说明基本蚁群算法的原理并更充分的了解基本蚁群算法。

图3-1 参数输入

在DOS环境下首先输入城市数目,蚂蚁数目,迭代次数,还有相关重要参数

α、β、ρ、Q,并且该程序具有容错能力。

图3-2 结果输出

图3-3 结果输出自动保存到.txt中

把刚才在DOS环境下运行时输入的参数和最后的输出结果在运行时就自动保存在此文本文档中,以便参考分析和下次运行时直接调用。

蚁群算法的基本原理

2.1 蚁群算法的基本原理 蚁群优化算法是模拟蚂蚁觅食的原理,设计出的一种群集智能算法。蚂蚁在觅食过程中能够在其经过的路径上留下一种称之为信息素的物质,并在觅食过程中能够感知这种物质的强度,并指导自己行动方向,它们总是朝着该物质强度高的方向移动,因此大量蚂蚁组成的集体觅食就表现为一种对信息素的正反馈现象。某一条路径越短,路径上经过的蚂蚁越多,其信息素遗留的也就越多,信息素的浓度也就越高,蚂蚁选择这条路径的几率也就越高,由此构成的正反馈过程,从而逐渐的逼近最优路径,找到最优路径。 蚂蚁在觅食过程时,是以信息素作为媒介而间接进行信息交流,当蚂蚁从食物源走到蚁穴,或者从蚁穴走到食物源时,都会在经过的路径上释放信息素,从而形成了一条含有信息素的路径,蚂蚁可以感觉出路径上信息素浓度的大小,并且以较高的概率选择信息素浓度较高的路径。 (a) 蚁穴 1 2 食物源 A B (b) 人工蚂蚁的搜索主要包括三种智能行为: (1)蚂蚁的记忆行为。一只蚂蚁搜索过的路径在下次搜索时就不再被该蚂蚁选择,因此在蚁群算法中建立禁忌表进行模拟。 (2)蚂蚁利用信息素进行相互通信。蚂蚁在所选择的路径上会释放一种信息素的物质,当其他蚂蚁进行路径选择时,会根据路径上的信息素浓度进行选择,这样信息素就成为蚂蚁之间进行通信的媒介。 (3)蚂蚁的集群活动。通过一只蚂蚁的运动很难达到事物源,但整个蚁群进行搜索就完全不同。当某些路径上通过的蚂蚁越来越多时,路径上留下的信息素数量也就越多,导致信息素强度增大,蚂蚁选择该路径的概率随之增加,从而进一步增加该路径的信息素强度,而通过的蚂蚁比较少的路径上的信息素会随着时间的推移而挥发,从而变得越来越少。3.3.1蚂蚁系统 蚂蚁系统是最早的蚁群算法。其搜索过程大致如下: 在初始时刻,m 只蚂蚁随机放置于城市中, 各条路径上的信息素初始值相等,设为:0(0)ij ττ=为信息素初始值,可设0m m L τ=,m L 是由最近邻启发式方法构 造的路径长度。其次,蚂蚁(1,2,)k k m = ,按照随机比例规则选择下一步要转

13基于蚁群算法的连续函数优化通用MATLAB源代码

基于蚁群算法的连续函数优化通用MATLAB源代码 此源码是对人工蚁群算法的一种实现,用于无约束连续函数的优化求解,对于含有约束的情况,可以先使用罚函数等方法,把问题处理成无约束的模型,再使用本源码进行求解。 function [BESTX,BESTY,ALLX,ALLY]=ACOUCP(K,N,Rho,Q,Lambda,LB,UB) %% Ant Colony Optimization for Unconstrained Continuous Problem %% ACOUCP.m %% 无约束连续函数的蚁群优化算法 %% 此函数实现蚁群算法,用于求解无约束连续函数最小化问题 %% 对于最大化问题,请先将其加负号转化为最小化问题 % GreenSim团队——专业级算法设计&代写程序 % 欢迎访问GreenSim团队主页→https://www.360docs.net/doc/671053166.html,/greensim %% 输入参数列表 % K 迭代次数 % N 蚁群规模 % Rho 信息素蒸发系数,取值0~1之间,推荐取值0.7~0.95 % Q 信息素增加强度,大于0,推荐取值1左右 % Lambda 蚂蚁爬行速度,取值0~1之间,推荐取值0.1~0.5 % LB 决策变量的下界,M×1的向量 % UB 决策变量的上界,M×1的向量 %% 输出参数列表 % BESTX K×1细胞结构,每一个元素是M×1向量,记录每一代的最优蚂蚁 % BESTY K×1矩阵,记录每一代的最优蚂蚁的评价函数值 % ALLX K×1细胞结构,每一个元素是M×N矩阵,记录每一代蚂蚁的位置 % ALLY K×N矩阵,记录每一代蚂蚁的评价函数值 %% 测试函数设置 % 测试函数用单独的子函数编写好,在子函数FIT.m中修改要调用的测试函数名即可 % 注意:决策变量的下界LB和上界UB,要与测试函数保持一致 %% 参考设置 % [BESTX,BESTY,ALLX,ALLY]=ACOUCP(50,30,0.95,1,0.5,LB,UB) %% 第一步:初始化 M=length(LB);%决策变量的个数 %蚁群位置初始化 X=zeros(M,N); for i=1:M x=unifrnd(LB(i),UB(i),1,N); X(i,:)=x; end %输出变量初始化 ALLX=cell(K,1);%细胞结构,每一个元素是M×N矩阵,记录每一代的个体 ALLY=zeros(K,N);%K×N矩阵,记录每一代评价函数值

粒子群算法和蚁群算法的结合及其在组合优化中的应用e

2007年第2期空间电子技术收稿日期:2006-04-03;收修改稿日期:2006-04-30 粒子群算法和蚁群算法的结合及其在 组合优化中的应用 张长春苏昕易克初 (西安电子科技大学综合业务网国家重点实验室,西安710071) 摘要文章首次提出了一种用于求解组合优化问题的PAAA 算法。该算法有效地 结合了粒子群算法和蚁群算法的优点,先利用粒子群算法的随机性、快速性、全局性得到 初始信息素分布(即粗搜索),再利用蚁群算法的并行性、正反馈性、求解精度高等优点求 精确解(即细搜索)。将文中提出的算法用于经典TSP 问题的求解,仿真结果表明PAAA 算 法兼有两种算法的优点,同时抛弃了各自的缺点。该算法在时间效率上优于蚁群算法,在 求精效率上优于粒子群算法,是综合了两种算法长处的一种新的启发式算法,达到时间性 能和优化性能上的双赢,获得了非常好的效果。 主题词蚁群算法粒子群算法旅行商问题PAAA 0引言 近年来对生物启发式计算(Bio-inspired Computing )的研究,越来越引起众多学者的关注和兴趣,产生了神经网络、遗传算法、模拟退火、粒子群算法、蚁群算法等许多用于解决复杂优化问题的新方法。然而,面对各种问题的特殊性和复杂性,每种算法都表现出了自身的优势和缺陷,都存在时间性能和优化性能不能兼得的矛盾。 粒子群优化(Particie Swarm Optimization ,PSO )算法[1, 2]是由Eberhart 和Kennedy 于1995年提出的一种全局优化算法,该算法源于对鸟群觅食行为的模拟。它的优势在于:(1) 算法简洁,可调参数少,易于实现;(2) 随机初始化种群,具有较强的全局搜索能力,类似于遗传算法;(3)利用评价函数衡量个体的优劣程度,搜索速度快;(4)具有较强的可扩展性。其缺点是:不能充分利用系统中的反馈信息,求解组合优化问题的能力不强。 蚁群算法[3,4](Ant Coiony Optimization ,ACO ) 是由意大利学者M.Dorigo ,V.Maniezzo 和A.Coiorni 于20世纪90年代初提出的一种新型的智能优化算法,已经被应用到TSP 问题[5,6]、二次分配问题、工 件调度问题、图着色问题等许多经典组合优化问题中,取得了很好的效果。它的优点是:(1)采用一种正反馈机制,通过信息素的不断更新,达到最终收敛于最优路径上的目的;(2)是一种分布式的优化方法,易于并行实现;(3)是一种全局优化的方法,不仅可用于求解单目标优化问题,而且可用于求解多目标优化问题;(4)适合于求解离散优化问题;(5)鲁棒性强。但由于在算法的初始阶段信息素匮乏,所以求解速度较慢。 文章将粒子群算法和蚁群算法有机地结合,提出了PAAA 算法。它利用粒子群算法的较强的全局搜索能力生成信息素分布,再利用蚁群算法的正反馈机制求问题的精确解,汲取各自的优势,以达空间电子技术 SPACE ELECTRONIC TECHNOLOGY !"

基本蚁群优化算法及其改进毕业设计

摘要 自意大利学者M. Dorigo于1991年提出蚁群算法后,该算法引起了学者们的极大关注,在短短十多年的时间里,已在组合优化、网络路由、函数优化、数据挖掘、机器人路径规划等领域获得了广泛应用,并取得了较好的效果。本文首先讨论了该算法的基本原理,接着介绍了旅行商问题,然后对蚁群算法及其二种改进算法进行了分析,并通过计算机仿真来说明蚁群算法基本原理,然后分析了聚类算法原理和蚁群聚类算法的数学模型,通过调整传统的蚁群算法构建了求解聚类问题的蚁群聚类算法。最后,本文还研究了一种依赖信息素解决聚类问题的蚁群聚类算法,并把此蚁群聚类算法应用到对人工数据进行分类,还利用该算法对2005年中国24所高校综合实力进行分类,得到的分类结果与实际情况相符,说明了蚁群算法在聚类分析中能够收到较为理想的结果。 【关键词】蚁群算法;计算机仿真;聚类;蚁群聚类

Study on Ant Colony Algorithm and its Application in Clustering Abstract: As the ant colony algorithm was proposed by M. Dorigo in 1991,it bringed a extremely large attention of scholars, in past short more than ten years, optimized, the network route, the function in the combination optimizes, domains and so on data mining, robot way plan has obtained the widespread application, and has obtained the good effect.This acticle discussed the basic principle of it at first, then introduced the TSP,this acticle also analysed the ant colony algorithm and its improved algorithm, and explanated it by the computer simulates, then it analysed the clustering algorithm and the ant clustering algorithm, builded the ant clustering algorith to solution the clustering by the traditioned ant algorithm. At last, this article also proposed the ant clustering algorith to soluted the clustering dependent on pheromon. Carry on the classification to the artificial data using this ant clustering algorithm; Use this algorithm to carry on the classification of the synthesize strength of the 2005 Chinese 24 universities; we can obtain the classified result which matches to the actual situation case. In the next work, we also should do the different cluster algorithm respective good and bad points as well as the classified performance aspect the comparison research; distinguish the different performance of different algorithm in the analysis when the dates are different. Key words: Ant colony algorithm; Computer simulation; clustering; Ant clustering 目录

智能优化算法(蚁群算法和粒子群算法)

7.1 蚁群优化算法概述 ?7.1.1 起源 ?7.1.2 应用领域 ?7.1.3 研究背景 ?7.1.4 研究现状 ?7.1.5 应用现状

7.1.1 蚁群优化算法起源 20世纪50年代中期创立了仿生学,人们从生物进化的机理中受到启发。提出了许多用以解决复杂优化问题的新方法,如进化规划、进化策略、遗传算法等,这些算法成功地解决了一些实际问题。

20世纪90年代意大利学者M.Dorigo,V.Maniezzo,A.Colorni等从生物进化的机制中受到启发,通过模拟自然界蚂蚁搜索路径的行为,提出来一种新型的模拟进化算法——蚁群算法,是群智能理论研究领域的一种主要算法。

背景:人工生命 ?“人工生命”是来研究具有某些生命基本特征的人工系统。人工生命包括两方面的内容。 ?研究如何利用计算技术研究生物现象。?研究如何利用生物技术研究计算问题。

?现在关注的是第二部分的内容,现在已经有很多源于生物现象的计算技巧。例如,人工神经网络是简化的大脑模型,遗传算法是模拟基因进化过程的。 ?现在我们讨论另一种生物系统-社会系统。更确切的是,在由简单个体组成的群落与环境以及个体之间的互动行为,也可称做“群智能”(swarm intelligence)。这些模拟系统利用局部信息从而可能产生不可预测的群体行为(如鱼群和鸟群的运动规律),主要用于计算机视觉和计算机辅助设计。

?在计算智能(computational intelligence)领域有两种基于群智能的算法。蚁群算法(ant colony optimization)和粒子群算法(particle swarm optimization)。前者是对蚂蚁群落食物采集过程的模拟,已经成功运用在很多离散优化问题上。

蚁群优化算法

蚁群优化算法
目录 [隐藏]
? ?
比较
1 2
蚁群算法的提出: 人工蚂蚁与真实蚂蚁的异同
o o ? ? ? ? ?
3 4 5 6 7
2.1 2.2
相同点比较 不同点比较
蚁群算法的流程图 基本蚁群算法的实现步骤 蚁群算法的 matlab 源程序 蚁群算法仿真结果 版权声明
[编辑]蚁群算法的提出:
人类认识事物的能力来源于与自然界的相互作用,自然界一直是人类创造力 的源泉。 自然界有许多自适应的优化现象不断地给人以启示,生物和自然中的生 态系 统可以利用自身的演化来让许多在人类看来高度复杂的优化问题得到几乎完美 的解决。近些年来,一些与经典的数学问题思想不同的,试图通过模拟自然生态 系统 来求解复杂优化问题的仿生学算法相继出现,如蚁群算法、遗传算法、粒子群算 法等。 这些算法大大丰富了现在优化技术,也为那些传统最优化技术难以处理的 组 合优化问题提供了切实可行的解决方案。 生物学家通过对蚂蚁的长期的观察发现,每只蚂蚁的智能并不高,看起来没 有集中的指挥,但它们却能协同工作,集中事物,建起坚固漂亮的蚁穴并抚养后 代, 依靠群体能力发挥出超出个体的智能。 蚁群算法是最新发展的一种模拟昆虫王国 中蚂蚁群体智能行为的仿生优化算法,它具有较强的鲁棒性、优良的分布式计算 机 制、易于与其他方法相结合等优点。尽管蚁群算法的严格理论基础尚未奠定,国 内外的相关研究还处于实验阶段, 但是目前人们对蚁群算法的研究已经由当初单 一 的旅行商问题(TSP)领域渗透到了多个应用领域,由解决一维静态优化问题发展 到解决多维动态组合优化问题, 由离散域范围内的研究逐渐扩展到了连续域范围 内的

蚁群算法原理与应用讲解

蚁群算法在物流系统优化中的应用 ——配送中心选址问题 LOGO https://www.360docs.net/doc/671053166.html,

框架 蚁群算法概述 蚁群算法模型 物流系统中配送中心选择问题 蚁群算法应用与物流配送中心选址 算法举例

蚁群算法简介 ?蚁群算法(Ant Algorithm简称AA)是近年来刚刚诞生的随机优化方法,它是一种源于大自然的新的仿生类算法。由意大利学者Dorigo最早提出,蚂蚁算法主要是通过蚂蚁群体之间的信息传递而达到寻优的目的,最初又称蚁群优化方法(Ant Colony Optimization简称ACO)。由于模拟仿真中使用了人工蚂蚁的概念,因此亦称蚂蚁系统(Ant System,简称AS)。

蚁群觅食图1 ?How do I incorporate my LOGO and URL to a slide that will apply to all the other slides? –On the [View]menu, point to [Master],and then click [Slide Master]or [Notes Master].Change images to the one you like, then it will apply to all the other slides. [ Image information in product ] ?Image : www.wizdata.co.kr ?Note to customers : This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use.

蚁群优化算法在解决TSP问题中的应用

还有页眉没有添加,页眉上写章标题,把我给你标注的问题改完就 可以打印了 摘要 根据蚂蚁生态学提出的蚁群算法是一种新颖的用于求解复杂组合优化问题的模拟进化算法,具有典型的群体智能特征,表现出较强的学习能力和适应能力。本文阐述了该算法的基本原理、算法模型和在TSP( Traveling Salesman Problem,旅行商)问题中的具体应用过程,并对算法进行了总结和展望。 关键词:蚁群算法,旅行商问题,外激素

目录 摘要Ⅰ 目录II 第一章引言 (1) 第二章蚁群算法的基本原理和模型 (2) 2.1 蚁群算法的基本原理 (2) 2.2 蚁群算法的模型 (3) 第三章基于蚁群算法的TSP求解 (5) 3.1 TSP问题的描述 (5) 3.2 基于蚁群算法的TSP求解 (5) 3.3 蚁群算法的局限性 (6) 第四章蚁群算法的改进 (8) 4.1 优选参数m (8) 4.2 参数 的调整 (8) 4.3 信息素的更新 (8) 4.4 信息素链表L 和禁忌链表TL 的构建 (9) 第五章改进的算法基本流程 (10) 第六章结论 (11) 参考文献 (12)

第一章引言 研究群居性昆虫行为的科学家发现,昆虫在群落一级上的合作基本上是自组织的,在许多场合中尽管这些合作可能很简单,但它们却可以解决许多复杂的问题。蚁群算法就是利用群集智能解决组合优化问题的典型例子。蚁群算法(Ant Colony Algorithm, ACA)是由意大利学者M.Dorigo,V.Mzniezzo,A.Colorni 等人在20世纪90年代初首先提出来的。它是继模拟退火算法、遗传算法、禁忌搜索算法、人工神经网络算法等元启发式搜索算法以后的又一种应用于组合优化问题的启发式搜索算法。 蚁群算法不仅能够智能搜索、全局优化,而且具有稳健性A、鲁棒性B、正反馈、分布式计算、易与其它算法结合等特点。利用正反馈原理,可以加快进化过程;分布式计算使该算法易于并行实现,个体之间不断进行信息交流和传递,有利于找到较好的解,不容易陷入局部最优;该算法易与多种启发式算法结合,可改善算法的性能;由于鲁棒性强,故在基本蚁群算法模型的基础上进行修改,便可用于其它问题。因此,蚁群算法的问世为诸多领域解决复杂优化问题提供了有力的工具。 TSP 问题,又称旅行商问题,就是一个销售商从n 个城市中的某一城市出发,不重复地走完其余n﹣1 个城市并回到原出发点,在所有可能的路径中求出路径长度最短的一条。它是组合优化中研究最多的问题之一,是一个经典的NP 难题。 第二章蚁群算法的基本原理和模型

蚁群优化算法

蚁群优化算法ACO 一、蚁群算法的背景信息 蚁群优化算法(ACO)是一种模拟蚂蚁觅食行为的模拟优化算法,它是由意大利学者Dorigo M等人于1991年首先提出,之后,又系统研究了蚁群算法的基本原理和数学模型,并结合TSP优化问题与遗传算法、禁忌搜索算法、模拟退火算法、爬山法等进行了仿真实验比较,为蚁群算法的发展奠定了基础,并引起了全世界学者的关注与研究 蚁群算法是一种基于种群的启发式仿生进化系统。蚁群算法最早成功应用于解决著名的旅行商问题(TSP),该算法采用了分布式正反馈并行计算机制,易于与其他方法结合,而且具有较强的鲁棒性。 二、蚁群算法的原理[1] 蚁群算法是对自然界蚂蚁的寻径方式进行模似而得出的一种仿生算法。蚂蚁在运动过程中,能够在它所经过的路径上留下一种称之为外激素(pheromone)的物质进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向,因此由大量蚂蚁组成的蚁群集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。 基本的ACO模型由下面三个公式描述: 式(2-1)、式(2-2)和式(2-3)中:m为蚂蚁个数;n为迭代次数;i为蚂蚁所在位置;j为蚂蚁可以到达的置;为蚂蚁可以到达位置的集合;为启发性信息

,这里为由i到j的路径的能见度,即;为目标函数,这里为两点间欧氏(Euclidean)距离;为由i到j的路径的信息素强度;为蚂蚁k由i到j的路径上留下的信息素数量;为路径权;为启发性信息的权;为路径上信息素数量的蒸发系数;Q为信息素质量系数;为蚂蚁k从位置i移动到位置j的转移概率。 三、改进的蚁群算法[3] 蚁群算法具有如下一些优点:①通用性较强,能够解决很多可以转换为连通图结构的路径优化问题;②同时具有正负反馈的特点,通过正反馈特点利用局部解构造全局解,通过负反馈特点也就是信息素的挥发来避免算法陷入局部最优; ③有间接通讯和自组织的特点,蚂蚁之间并没有直接联系,而是通过路径上的信息素来进行间接的信息传递,自组织性使得群体的力量能够解决问题。 但是,基本蚁群算法也存在一些缺点:①从蚁群算法的复杂度来看,该算法与其他算法相比,所需要的搜索时间较长;②该算法在搜索进行到一定程度以后,容易出现所有蚂蚁所发现的解完全一致这种“停滞现象”,使得搜索空间受到限制 3.1基于遗传学的改进蚁群算法研究 该文献[2]提出的算法弥补了基本蚁群算法中“容易陷入停滞状态”和“盲目随机搜索”的不足。文献中提出的解决办法是在每一次迭代搜索后,都把当前解和最优解进行交叉变异,这样既能搜索更大的解空间,又能使系统陷入局部最优后跳出停滞状态。 这种基于遗传学的蚁群算法(G-蚁群算法)的基本思想是在以蚁群算法为主体的基础上引入遗传算法的思想,目的是让蚁群算法经过迭代产生遗传算法所需的初始种群数据,提高种群数据的多样性。然后,遗传算法经过选择、交叉和变异操作,将处理后的数据交由蚁群算法模块进行判断处理,若满足结束条件则退出系统,否则重新进行迭代操作。 该文献中的交叉操作采用了Davis提出的OX交叉算子,即按照交叉概率Pc进行交叉操作,通过一个亲体中挑选出的子序列路径作为后代相对位置的子序列,变异操作以变异概率Pm执行变异操作,在子代序列路径中随机选择两点进行变异操作,在交叉变异操作结束后,判断当前解是否满足收敛条件,若满足收敛条件则更新当前最优解,返回蚁群算法程序,执行下一次的迭代操作。若不满足收敛条件则继续进行遗传算法的交叉变异操作。

蚁群优化算法的JAVA实现

蚁群优化算法的JAVA实现 一、蚁群算法简介 蚁群算法是群智能算法的一种,所谓的群智能是一种由无智能或简单智能的个体通过任何形式的聚集协同而表现出智能行为,它为在没有集中控制且不提供全局模型的前提下寻找复杂的分布式问题求解方案提供了基础,比如常见的蚂蚁觅食,大雁南飞等行为。蚁群算法是模拟自然界中蚂蚁觅食的一种随机搜索算法,由Dorigo等人于1991年在第一届欧洲人工生命会议上提出[1] 。 二、蚁群算法的生物原理 通过观察发现,蚁群在觅食的时候,总能找到一条从蚁巢到食物之间的一条最短的路径。这个现象引起了生物学家的注意,根据研究,原来是蚂蚁在行进的过程中,会分泌一种化学物质——信息素,而蚂蚁在行进时,总是倾向于选择信息素浓度比较高的路线。这样,在蚁巢和食物之间假如有多条路径,初始的时候,每条路径上都会有蚂蚁爬过,但是随着时间的推迟,单位时间内最短的那条路上爬过的蚂蚁数量会比较多,释放的信息素就相对来说比较多,那么以后蚂蚁选择的时候会大部分都选择信息素比较多的路径,从而会把最短路径找出来。 蚁群算法正是模拟这种蚁群觅食的原理,构造人工蚂蚁,用来求解许多组合优化问题。 有关蚁群算法的详细信息,可参考[2]——[5]。 三、蚁群算法的JAVA实现 我个人认为利用JAVA编写一些计算密集型的算法不是一个好的选择。本身一些算法是要要求高效率的,但是我感觉JAVA语言的性能不够,所以编写算法最好用c,其次也可以用c++。当然,这仅是一家之言,欢迎拍砖。 四、算法说明 算法以求解TSP问题为例,用来演示ACO的框架。 算法设定了两个类,一个是ACO,用来处理文件信息的读入,信息素的更新,路径的计算等;另一个是ant,即蚂蚁的信息。 算法中用到的数据,可以从TSPLib 上面下载,使用的是对称TSP数据,为了简化算法的代码,下载下来的数据需要做一个简单处理,即把TSP文件中除去城市节点信息部分之外的内容都删除掉,然后在文件首插入一行,写入此文件包含的城市的数目,以att48.tsp为例,下载下来的文件内容如下:

相关文档
最新文档