采用序优化的改进蚁群算法

采用序优化的改进蚁群算法
采用序优化的改进蚁群算法

第44卷 第2期2010年2月

西 安 交 通 大 学 学 报

J OU RNAL O F XI ′AN J IAO TON G UN IV ERSIT Y

Vol.44 №2Feb.2010

收稿日期:2009Ο06Ο20. 作者简介:张兆军(1981-),男,博士生;冯祖仁(联系人),男,教授,博士生导师. 基金项目:国家自然科学基金资助项目(60875043);国家重点基础研究发展规划资助项目(2007CB311006).

采用序优化的改进蚁群算法

张兆军1,2,冯祖仁1,2,任志刚1,2

(1.西安交通大学系统工程研究所,710049,西安;2.西安交通大学机械制造

系统工程国家重点实验室,710049,西安)

摘要:为了评价蚁群算法在有限时间内所得优解的质量,基于序优化方法提出了一种改进的蚁群算法:使用盲目挑选规则选择初始解,并对信息素进行相应的初始化;确定得到满足要求的优解所需要的迭代次数,将其作为算法的终止条件;为了更好地利用每次迭代中的优解,在算法开始阶段使用前l 个迭代优解更新信息素,以增强探索能力;在算法结束阶段采用当前迭代最优解更新信息素,以加快收敛速度.改进算法在保证收敛的前提下,并没有增加算法的时间复杂度.对旅行商问题进行的仿真实验表明,改进算法在解的质量和收敛速度方面优于最大Ο最小蚂蚁系统.关键词:蚁群算法;序优化;盲目挑选;旅行商问题中图分类号:TP18 文献标志码:A 文章编号:0253Ο987X (2010)02Ο0015Ο05

Novel Ant Colony Optimization Algorithm B ased on Order Optimization

ZHAN G Zhaojun 1,2,FEN G Zuren 1,2,REN Zhigang 1,2

(1.Systems Engineering Institute ,Xi ′an Jiaotong University ,Xi ′an 710049,China ;2.State Key Laboratory

for Manufacturing Systems Engineering ,Xi ′an Jiaotong University ,Xi ′an 710049,China )

Abstract :To evaluate t he quality of optimal solutions obtained by t he ant colony optimization (ACO )algorit hm in limited time ,an imp roved ACO algorit hm is presented on t he basis of t he or 2dinal optimization.An initial solution is selected using t he blind picking rule ,and t he p heromone is initialized correspondingly.The number of iterations to achieve t he optimal solution meeting t he demand is t hen determined and is used as t he termination condition of t he algorit hm.To make better use of t he solutions obtained at each iteration ,t he first l solutions are employed to enhance search capability at t he beginning p hase of t he algorit hm.While t he current optimal solution is used at t he end p hase of t he algorit hm to accelerate t he convergence.The time complexity of t he novel algorit hm is not increased under t he condition t hat ensures t he convergence.Simulation re 2sult s on t he traveling salesman p roblem show t hat t he p roposed algorit hm is superior to t he max 2min ant system in bot h t he quality of solutions and t he speed of convergence.

K eyw ords :ant colony optimization ;ordinal optimization ;blind picking ;traveling salesman problem

蚁群算法[1]是一种仿生随机优化算法,已被成功应用于旅行商问题(TSP )、二次分配、网络路由、属性约简[2]等问题的求解,具有鲁棒性、正反馈、分布式计算和易与其他算法结合等优点.然而,现有方法也存在一些不足,如初期搜索时间偏长,容易陷入局部最优解等.为此,学者们提出了很多改进算

法,例如使用局部更新策略和全局更新策略的蚁群系统[3],限制信息素的上、下界并使用最优解更新策略的最大2最小蚂蚁系统(max 2min ant system ,MMAS )[4]等.此外,文献[5]受神经网络和遗传算法的启发,提出了一种二进制蚁群进化算法;文献[6]将分散搜索的思想融入蚁群算法,提高了算法的

全局搜索能力.

虽然蚁群算法在模型改进、拓展应用等方面取得了一系列成果,但是仍然存在一些问题有待进一步研究,其中一个问题是评价蚁群算法所得解的质量.收敛性分析表明,当搜索时间无限长时,某些蚁群算法能够以概率1找到全局最优解.然而,在实际计算中时间是有限的,因此评价有限时间内蚁群算法所得优解的质量具有实际意义.

作为一种随机优化算法,

由哈佛大学何毓琦教授提出的序优化方法[7]能够从概率上对优化结果进行定量评估,理论体系比较完善[8],适合作为许多优化算法的补充[9Ο10].本文基于序优化理论,提出一种改进的蚁群算法,以解决蚁群算法所得优解质量的评价问题.

1 最大Ο最小蚂蚁系统和序优化方法简介

111 最大2最小蚂蚁系统

由Stützle等[4]提出的最大2最小蚂蚁系统(MMAS),是目前使用比较多的一种改进蚁群算法.在蚁群系统(ant system,AS)的基础上,MMAS 主要有以下几方面的改进:①只允许1只最优蚂蚁进行信息素更新;②为了避免算法的早熟现象,把信息素设置在一个区间[τmin,τmax]内;③信息素的初始值设定为信息素的上界τmax.

为了更好地理解MMAS,下面以TSP为例来描述MMAS的基本步骤[4]:首先,初始化参数;然后,每只蚂蚁根据路径上的信息素浓度,按照路径选择策略,构造TSP的解;当所有蚂蚁完成一次循环后,按照信息素更新策略更新信息素;最后,当达到算法终止条件时,算法终止.

路径选择策略为:假设t次迭代蚂蚁k在第i 个城市,按照式(1)计算选择路径(i,j)的概率

P(j|i)=

τ(i,j)αη(i,j)β

r∈N k i

τ(i,r)αη(i,r)β

 如果j∈N k i

0 其他

(1)

式中:α、β是参数;τ(i,j)表示路径(i,j)上的信息素;N k i是与i相连的所有城市;r是N k i中的某个城市;P(?|?)表示条件概率;η(i,j)表示路径(i,j)上的启发信息.

常用的信息素更新策略为:当所有蚂蚁都获得一个完整路径后,算法按照下式更新信息素

τ

ij

(t+1)=[(1-ρ)τij(t)+Δτbest ij(t)]τmax

τ

min

(2) [x]a b=

a 若x>a

b若x

x其他

(3)式中:ρ(0<ρ≤1)表示信息素挥发系数;τmax和τmin分

别表示信息素的上界和下界;Δτbest

ij

表示路径(i,j)上的信息素增量.令S best表示用信息素更新的最优

解,Δτbest

ij

定义为

Δτ

ij

(t)=

1

f(S best)

若边出现在S best中

0其他

(4)式中:f(S best)表示最优解S best对应的路径长度,S best 可能的取值是S best ib或S best bs,S best ib表示当前迭代最优解,S best bs表示至今迭代最优解.

112 序优化方法

序优化方法有2个基本思想:第一,序比较,因为“序”比“值”更易确定,故用序比较代替值比较;第二,目标软化,即通过目标软化放松优化目标[8].序优化从工程实际出发,以寻找足够好的解为目标,进而减少搜索量.

假设在搜索空间内定义一个足够好子集G,大小是g,可以是样本集的前g个解,或是解的top2p.基于一定挑选规则选取另外一个子集S,称为选择子集,大小是s.由序优化理论可以计算出G∩S至少有k个的置信概率P AP.

恰当地选择挑选规则能够有效地节省计算量,提高置信概率.盲目挑选(blind picking,B P)规则是最基本的挑选规则,常被用来衡量其他挑选规则的效率.本文提出的改进算法中使用B P规则进行初始解的选取和终止条件的确定.

2 基于序的蚁群算法

211 问题分析

蚁群算法是一种元启发式算法,虽然在无限时间下该方法是收敛的,但是由于缺乏系统的分析方法,目前关于算法收敛时间的研究尚处于起步阶段,对有限时间所得优解的评价就更加困难.目前,优解评价的常用方法是传统的比值比较,需要知道已知最优解,但这在实际中是很难得到的,另外蚁群算法是按照概率选择构造解,参数之间的耦合性很强,分析各个参数对解的影响有很大的困难,这些都是优解评价中的难题.

进一步分析蚁群算法发现,在每次迭代中都有对迭代解的排序比较,这和序优化的思想类似,而序

61西 安 交 通 大 学 学 报 第44卷 

优化方法的解评价理论比较完善,从而为启发式算法的优解质量评价研究提供了借鉴.另外,在信息素更新中只使用最优解的更新虽然有利于充分利用每次迭代产生的最优解,但是不利于解空间的探索,如果所有解参与信息素更新(在AS 中就是采用这种方式),则又影响收敛速度,因此需要考虑一种更为有效的信息素更新方式.212 改进策略

基于序优化的改进蚁群算法主要在3个方面做了改进,具体描述如下.

(1)以一定概率选取初值,并进行信息素初值的设置.以序优化理论中的B P 规则为基础,按照一定的置信概率选择初始解,并设置信息素初值.

B P 规则[8]为:令P AP 表示置信概率,p =g/N 表示足够好解占搜索空间的比例,s =|S |表示随机抽样次数,则有

P AP S ∩G ≥1≥1-(1-p )

s

(5)又因为1-x ≤e -x ,有P AP S ∩G ≥1≥1-e ps ,两边取对数,可以得到满足置信概率P AP 的足够好解p 所需要的抽样次数

s ≤

-ln (1-P AP )

p

(6)一般P AP 和p 是预先指定的,这样就可以得到所需

要的抽样次数.

(2)终止条件的确定.根据B P 规则计算出以一定置信概率得到满足要求的足够好解所需要的迭代次数,作为蚁群算法的终止条件.这与一般使用经验确定的终止条件(如算法运行到最大迭代次数或算法陷入了停滞状态)相比,不仅更有理论依据,而且能预先估计所得优解的质量.

(3)信息素的更新方式.在实验中发现,有些解的质量虽然比最优解的质量稍差,可是仍含有一些

有用信息,合理利用这些信息将有助于找到最优解.尤其是在算法初期,解空间的探索越充分,后期得到的优解的质量就越高.但是,若所有解均参与信息素更新,又将导致收敛速度过慢.因此,在信息素更新策略中只使用部分迭代优解更新信息素,称之为按序更新策略.

按序更新策略:将t 次迭代的解排序,使用前l 个迭代优解根据式(7)更新信息素

τij (t +1)=(1-ρ)τij (t )+

∑l

ω=1

Δτω

ij (t )

τmax τmin

(7)

式中:∑l

ω=1

Δτω

ij

(t )表示l 只蚂蚁在路径(i ,j )之间根据排名对信息素进行更新;

Δτωij

(t )=1

ωf (S ω)若第ω只最好的蚂蚁经过该边0其他

(8)

表示由第ω只最好的蚂蚁引起的路径(i ,j )上的信息素增量,其中ω表示解S ω在该次迭代解中排列的顺序号,f (S ω)表示第ω只最好的蚂蚁对应的路径长度.顺序越靠前,所获得的信息素更新量就越大.

实验中发现,如果只使用按序更新策略来更新信息素(与文献[11]提出的AS rank 算法有些类似),则所得解的质量不如MMAS .因此,本文综合考虑各个因素,使用更为灵活的方式来更新信息素.令

N max 表示最大迭代次数,m 1是介于0和1之间的实

数,N C 表示迭代次数.在算法的开始阶段,即N C ≤

m 1N max 时,每次迭代中将所得的解按照构造路径的

长度从小到大进行排序,采用排在前的l 个当前迭代优解进行信息素更新,称之为按序更新策略;在算法结束阶段,即N C >m 1N max 时,使用当前迭代最优解进行信息素更新,目的是加快算法的收敛速度.213 仿真步骤和分析

下面以TSP 为例,描述本文算法的主要步骤.

第1步:初始化参数,其中包括α、β、ρ、l 、m 1等.第2步:确定终止规则.根据式(6)计算以置信概率P AP1得到足够好解p 1所需要的最大迭代次数,作为算法的终止条件.

第3步:选取初始解.根据式(6),确定满足置信概率P AP2的足够好解p 2作为初值,并对信息素矩阵进行相应的设置,初始化为最大值.

第4步:按照路径选择策略,构造TSP 的解.第5步:分阶段更新信息素.如果N C ≤

m 1N max ,则按照式(7),使用每次迭代的前l 个优解

进行按序更新;否则,按照式(2)进行更新.

第6步:判断终止条件是否满足.若满足,算法终止;否则,返回到第4步.

在第5步中,信息素更新过程包括判断信息素是否超出了上、下界.上、下界按照文献[4]中的公式确定.

下面分析本文算法的时间复杂度.令n 为TSP 中城市的数量,m 为算法中使用的蚂蚁数,则第1步的时间复杂度为O (n 2+m );第4步的时间复杂度为O (n 2m );第5步中虽然信息素更新是分阶段进行的,但是总体时间复杂度应该小于AS 算法的

O (n 2

);第6步的时间复杂度为O (nm ),由于在第3

7

1 第2期 张兆军,等:采用序优化的改进蚁群算法

步中使用了BP规则,故其时间复杂度是O(n2N C).虽然B P规则对时间复杂度有所影响,但是由于在整个算法中,只在开始使用了1次BP规则确定初始解,因此并不影响整个算法的整体时间复杂度.最终,改进蚁群算法的时间复杂度为O(N max n2m),这和基本蚁群算法的时间复杂度是一样的.因此,本文算法并没有增加原来算法的时间复杂度.

本文算法中有明显的信息素下界的限制,因此本文算法属于ACOτmin算法,而文献[12]表明, ACOτmin算法是收敛的,所以本文算法也是收敛的.由于信息素更新方式的不同,在问题规模较小的情况下,本文算法的收敛速度要稍慢于MMAS,但是随着问题规模的增大,本文算法的平均收敛速度要快于MMAS,而且获得的解的质量要高于MMAS.特别地,当m1=1、l=1时,本文算法与MMAS算法类似;当m1=1、l>1时,本文算法与AS rank算法类似.

3 仿真实验

为了验证本文所提改进算法的有效性,将其应用于TSP,用Matlab实现了MMAS和本文算法,运行环境为PIV210GHz CPU,1G B RAM,Win2 dows XP操作系统.测试算例选自TSPL IB,算例名称中的数字表示城市数(kro124p是个例外,它的城市数是100).本文算法中,参数α=1,β=2,初始解的挑选是以P AP2=99%挑选前p2=011%的最优解,由式(6)得到需要的抽样次数是4605.

311 参数设置

本文算法中的另外2个参数是l和m1,下面分析它们对本文算法性能的影响.实验中只改变一个参数,另一个参数保持不变.测试中蚂蚁数m=20,最大迭代次数N max=2000,每个算例独立测试10次,所得结果如表1和表2所示.由表1和表2可以看出,m1和l的取值不能过大或者过小.当l过大时,算法与AS算法类似;当m1过大时,算法则与AS rank算法类似.在相同条件下,这2种算法的性能都比MMAS差,这与文献[4]中的结果是一致的.参数m1和l要综合最优值和平均值等方面的信息后确定.

312 实验结果比较

终止条件是P AP1=99199%和p1=0101%,由式(6)得到迭代次数为92103.为了方便比较,在算法中令蚂蚁数m=31,最大迭代次数N max=3000,其他参数α=1,β=2,m1=013,l=10,每个算例独立测试25次.MMAS中的参数设置参见文献[4].

测试结果如表3所示(其中前3个算例是对称TSP,后3个算例是非对称TSP).从表3可以看出,对于各种TSP算例,无论是最优路径长度还是平均路径长度,本文的改进算法均优于MMAS,而且标准差更小,尤其是在eil51、kroA100和ry48pt 算例中均取得已知最优解.除eil51算例外,本文算法的平均迭代次数均少于MMAS的,说明本文算法的收敛速度快于MMAS的收敛速度.为更直观地描述算法的迭代过程,以kroA100为例描述了这2种算法的进化曲线,如图1所示.为了使结果更加直观以利于比较,在不影响最终结果的前提下,图1中省去了前300次迭代的比较.从图1可以看出,本文算法在900次迭代以前所获得的优解质量比MMAS的要差,这是因为本文算法在这个阶段主要是强调对解空间的探索,而在900次迭代以后,随着本文算法进入第二个阶段,更加强调了对解空间的开发,使得最终获得的优解质量要高于MMAS的优解质量.

图1 本文算法与MMAS的进化曲线

 

表1 m1=012、l取不同值时所得实验结果的对比

TSP算例

l=5

最优路径

长度

平均路径

长度

l=10

最优路径

长度

平均路径

长度

l=15

最优路径

长度

平均路径

长度

l=20

最优路径

长度

平均路径

长度

ry48p145071458810144811456013144221461719146121482816

eil5142642818427430174284301942743119

81西 安 交 通 大 学 学 报 第44卷 

表2 l=10、m1取不同值时所得实验结果的对比

TSP算例

m1=0.1

最优路径

长度

平均路径

长度

m1=0.3

最优路径

长度

平均路径

长度

m1=0.5

最优路径

长度

平均路径

长度

m1=1.0

最优路径

长度

平均路径

长度

ry48p145071468619145071463711145161464918147141504411 eil5142843018426432114274321644945411

表3 本文算法与MMAS的实验结果比较

TSP算例算法名称最优路径长度最差路径长度平均路径长度标准差平均迭代次数

eil51

本文算法426(0100%)43642817213224144512

MMAS427(0123%)43843016314890116512 kroA100

本文算法21282(0100%)22067214491619019549198210

MMAS21305(0111%)22523216641130417325199311 d198

本文算法16002(1141%)16454161721618012880266717

MMAS16027(1157%)17020162621720717642276612 ry48p

本文算法14422(0100%)14914146271414019386169918

MMAS14446(0117%)15161146911218913272182718 ft70

本文算法39285(1158%)40363398661137912402253119

MMAS39377(1182%)41113401461042715913256114 kro124p

本文算法36990(2110%)39005378581460911594239813

MMAS37369(3114%)40300385861371518030261718

注:括号中的数值为最优路径长度与已知最优解的相对误差.

4 结 论

基于序优化方法,本文提出了一种能够评价优解质量的改进蚁群算法,详细讨论了在初始解的选取、终止条件的确定和信息素更新等方面所做的改进工作.本文算法在初始化阶段以置信概率P AP保证至少得到一个top2p的解,使用按序更新策略可以获得更多解空间的信息,进一步提高了算法所得解的质量.最后,由B P规则确定终止条件,可以使本文算法在一定的计算量下,以高置信概率找到足够好的解.仿真实验结果表明,本文所提改进算法是有效的.

参考文献:

[1] DORIGO M,MAN IEZZO V,COLORNI A.The ant

system:optimization by a colony of cooperating agents

[J].IEEE Trans on Systems,Man,and Cybernetics: B,1996,26(1):29Ο41.

[2] 任志刚,冯祖仁,柯良军.蚁群优化属性约简算法

[J].西安交通大学学报,2008,42(4):440Ο444.

REN Zhigang,FEN G Zuren,KE Liangjun.Ant colo2 ny optimization approach to attribute reduction prob2 lem[J].Journal of Xi′an Jiaotong University,2008, 42(4):440Ο444.

[3] DORIGO M,GAMBARDELL A L M.Ant colony sys2

tem:a cooperative learning approach to the traveling

salesman problem[J].IEEE Trans on Evolutionary Computation,1997,1(1):53Ο66.

[4] STΒTZL E T,HOOS H H.MaxΟmin ant system[J].

Future G eneration Computer Systems,2000,16(9): 889Ο914.

[5] 熊伟清,魏平.二进制蚁群进化算法[J].自动化学

报,2007,33(3):259Ο264.

XION G Weiqing,WEI Ping.Binary ant colony evolu2 tionary algorithm[J].Acta Automatica Sinica,2007, 33(3):259Ο264.

[6] 张晓霞,唐立新.一种求解TSP问题的ACO&SS算

法设计[J].控制与决策,2008,23(7):762Ο766.

(下转第30页)

91

 第2期 张兆军,等:采用序优化的改进蚁群算法

能够反映系统随可用组件服务数量增长而不断演进的固有特征.本文通过服务配置计划扩展Petri网建模、配置计划验证、最优服务配置选择这3个环节,实现了Qo S敏感的服务组合动态配置,有效地解决了以上问题.通过不同配置策略下的性能对比实验,说明了动态配置在实际应用中的优势,验证了所提算法的正确性和实用性.未来工作将围绕服务配置计划的自动生成与更新进一步开展深入的研究.

参考文献:

[1] HWAN G S,L IM E,L EE C,et al.Dynamic Web

service selection for reliable Web service composition

[J].IEEE Trans on Services Computing,2008,1

(2):104Ο116.

[2] XION G P,FAN Y,ZHOU M.QoS2aware Web serv2

ice configuration[J].IEEE Trans on Systems,Man,

and Cybernetics,2008,38(4):888Ο895.

[3] DM YTRO Z.A Petri net2based approach for automa2

ted goal2driven Web service composition[J].Simula2

tion,2007,83(1):33Ο63.

[4] KOB TI Z,ZHIYAN G W.An adaptive approach for

QoS2aware Web service composition using cultural al2

gorithms[C]∥The20th Australian Joint Conference

on Artificial Intelligence.Berlin,Germany:Springer,

2007:140Ο149.

[5] L IU Y,TRUON G S,CH EN S,et https://www.360docs.net/doc/ad9446148.html,posing

adaptive Web services on CO TS middleware[C]∥

2008IEEE International Conference on Web Services.

Los Alamitos,CA,USA:IEEE Computer Society,

2008:377Ο384.

(编辑 苗凌)

(上接第14页)

[5] ZHAN G Xinyan,L IU Jiangchuan,L I Bo,et al.Cool2

Streaming/DONet:a data2driven overlay network for

live media streaming[C]∥Proceedings of IEEE IN2

FOCOM.Piscataway,NJ,USA:IEEE,2005:2102Ο2111.

[6] L UO Jianguang,ZHAN G Meng,ZHAO Li,et al.A

large2scale live video streaming system based on P2P

networks[J].Journal of Software,2007,18(2):391Ο399.

[7] MA GHAREI N,RE J A IE R,GUO Y.Mesh or multi2

ple2tree:comparative study of P2P live streaming serv2

ices[C]∥Proceedings of IEEE IN FOCOM.Piscat2

away,NJ,USA:IEEE,2007:1424Ο1432.

[8] H EI Xiaojun,CHAO Liang,L IAN G Jian,et al.A

measurement study of a large2scale P2P IPTV system

[J].IEEE Trans on Multimedia,2006,9(8):16722 1687.

[9] L IU Y ong,GUO Yang,L IAN G Chao.A survey on

peer2to2peer video streaming systems[J].Peer2to2Peer

Networking and Applications,2008,1(1):18Ο28. [10]FRONCZA K A,FRONCZA K P,J ANUSZ A.Ho2

lyst:average path length in random networks[J].

Physical Review E:Statistical,Nonlinear,and Soft

Matter Physics,2004,70:127.

(编辑 苗凌)

(上接第19页)

ZHAN G Xiaoxia,TAN G Lixin.An ACO&SS algo2 rithm for traveling salesman problem[J].Control and Decision,2008,23(7):762Ο766.

[7] HO Y C,SREEN IVA R S.Ordinal optimization of

discrete event dynamic systems[J].Journal of DEDS,

1992,2(2):61288.

[8] HO Y C.An explanation of ordinal optimization:soft

computing for hard problems[J].Information Sci2

ences,1999,113(3/4):1692192.

[9] 张亮,王凌,郑大钟.有限计算量下模拟退火算法的

参数序优化[J].控制与决策,2004,19(2):2262

229.

ZHAN G Liang,WAN G Ling,ZH EN G Dazhong.Pa2

rameter ordinal optimization for simulated annealing

with limited computational efforts[J].Control and

Decision,2004,19(2):2262229.

[10]MORI H,TAN I H.A hybrid method of P TS and or2

dinal optimization for distribution system service res2

toration[C].IEEE International Conference on Sys2

tems,Man and Cybernetics.Piscataway,NJ,USA:

IEEE,2003:347623483.

[11]BULL N H EIM ER B,HAR TL R F,STRAUSS C.A

new rank2based version of the ant system:a computa2

tional study[J].Central European Journal for Opera2

tions Research and Economics,1999,7(1):25Ο38. [12]STΒTZL E T,DORIGO M.A short convergence

proof for a class of ant colony optimization algorithms

[J].IEEE Trans on Evolutionary Computation,

2002,6(4):358Ο365.

(编辑 葛赵青 苗凌)

03西 安 交 通 大 学 学 报 第44卷 

蚁群算法的基本原理

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 = ,按照随机比例规则选择下一步要转

利用蚁群算法优化前向神经网络

利用蚁群算法优化前向神经网络 来源:深圳发票 https://www.360docs.net/doc/ad9446148.html,/ 内容摘要:蚁群算法(ant colony algorithm,简称ACA)是一种最新提出的新型的寻优策略,本文尝试将蚁群算法用于三层前向神经网络的训练过程,建立了相应的优化模型,进行了实际的编程计算,并与加动量项的BP算法、演化算法以及模拟退火算法进行比较,结果表明该方法具有更好的全局收敛性,以及对初值的不敏感性等特点。关键词:期货经纪公司综合实力主成分分析聚类分析 人工神经网络(ANN)是大脑及其活动的一个理论化的数学模型,由大量的处理单元(神经元)互连而成的,是神经元联结形式的数学抽象,是一个大规模的非线性自适应模型。人工神经网络具有高速的运算能力,很强的自学习能力、自适应能力和非线性映射能力以及良好的容错性,因而它在模式识别、图像处理、信号及信息处理、系统优化和智能控制等许多领域得到了广泛的应用。 人工神经网络的学习算法可以分为:局部搜索算法,包括误差反传(BP)算法、牛顿法和共轭梯度法等;线性化算法;随机优化算法,包括遗传算法(GA)、演化算法(EA)、模拟退火算法(SA)等。 蚁群算法是一种基于模拟蚂蚁群行为的随机搜索优化算法。虽然单个蚂蚁的能力非常有限,但多个蚂蚁构成的群体具有找到蚁穴与食物之间最短路径的能力,这种能力是靠其在所经过的路径上留下的一种挥发性分泌物(pheromone)来实现的。蚂蚁个体间通过这种信息的交流寻求通向食物的最短路径。已有相关计算实例表明该算法具有良好的收敛速度,且在得到的最优解更接近理论的最优解。

本文尝试将蚁群算法引入到前向神经网络的优化训练中来,建立了基于该算法的前向神经网络训练模型,编制了基于C++语言的优化计算程序,并针对多个实例与多个算法进行了比较分析。 前向神经网络模型 前向人工神经网络具有数层相连的处理单元,连接可从一层中的每个神经元到下一层的所有神经元,且网络中不存在反馈环,是常用的一种人工神经网络模型。在本文中只考虑三层前向网络,且输出层为线性层,隐层神经元的非线性作用函数(激活函数)为双曲线正切函数: 其中输入层神经元把输入网络的数据不做任何处理直接作为该神经元的输出。设输入层神经元的输出为(x1,x2,Λ,xn),隐层神经元的输入为(s1,s2,Λ,sh),隐层神经元的输出为 (z1,z2,Λ,zh),输出层神经元的输出为(y1,y2,Λ,ym),则网络的输入-输出为: 其中{w ij}为输入层-隐层的连接权值,{w i0}隐层神经元的阈值,{v ki}为隐层-输出层的连接权值,{v k0}为输出层神经元的阈值。网络的输入-输出映射也可简写为: 1≤k≤m (5)

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

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)。前者是对蚂蚁群落食物采集过程的模拟,已经成功运用在很多离散优化问题上。

粒子群算法和蚁群算法的结合及其在组合优化中的应用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 !"

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/ad9446148.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矩阵,记录每一代评价函数值

蚁群算法路径优化算法

其中,表示在t时刻蚂蚁k由元素(城市)i转移到元素(城市)j的状态转移概率。allowedk = C ? tabuk表示蚂蚁k下一步允许选择的城市。α为启发式因子,表示轨迹的相对重要性,反映了蚂蚁在运动过程中所积累的信息在蚂蚁运动时所起的作用,其值越大,则该蚂蚁越倾向于选择其他蚂蚁经过的路径,蚂蚁之间的协作性越强。β为期望启发式因子,表示能见度的相对重要性,反映了蚂蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度,其值越 大,则该状态转移概率越接近于贪心规则;ηij(t) 为启发函数,表达式为。式中,dij表示相邻两个城市之间的距离。(6)修改禁忌表指针,即选择好之后将蚂蚁移动到新的元素(城市),并把该元素(城市)移动到该蚂蚁个体的禁忌表中。(7)若集合C中元素(城市)未遍历完,即k

for i=1:NC % 计算各城市间的距离 for j=1:NC distance(i,j)=sqrt((CooCity(i,2)-CooCity(j,2))^2+(CooCity(i,3)-CooCity(j,3))^2); end end MAXIT=10;%最大循环次数 Citystart=[]; % 起点城市编号 tau=ones(NC,NC); % 初始时刻各边上的信息痕迹为1 rho=0.5; % 挥发系数 alpha=1; % 残留信息相对重要度 beta=5; % 预见值的相对重要度 Q=10; % 蚁环常数 NumAnt=20; % 蚂蚁数量 routelength=inf; % 用来记录当前找到的最优路径长度 for n=1:MAXIT for k=1:NumAnt %考查第K只蚂蚁 deltatau=zeros(NC,NC); % 第K只蚂蚁移动前各边上的信息增量为零 %[routek,lengthk]=path(distance,tau,alpha,beta,[]); % 不靠率起始点[routek,lengthk]=path(distance,tau,alpha,beta,Citystart); % 指定起始点if lengthk

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

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

蚁群优化算法在解决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为例,下载下来的文件内容如下:

相关文档
最新文档