收藏 分销(赏)

计算智能专业课程设计粒子群优化算法求解旅行商问题Matlab实现.doc

上传人:二*** 文档编号:4533158 上传时间:2024-09-27 格式:DOC 页数:11 大小:658.04KB
下载 相关 举报
计算智能专业课程设计粒子群优化算法求解旅行商问题Matlab实现.doc_第1页
第1页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、摘要:TSP是一个经典NPC问题。本文首先介绍旅行商问题和粒子群优化算法基础概念。然后结构一个基于交换子和交换序1概念粒子群优化算法,经过控制学习因子和、最大速度,尝试求解旅行商问题。本文以中国31个省会城市为例,经过MATLAB编程实施对旅行商问题求解,得到了一定优化程度路径,是粒子群优化算法在TSP问题中利用一次大胆尝试。关键字:TSP问题;粒子群优化算法;MATLAB;中国31个城市TSP。粒子群优化算法求解旅行商问题1. 引言1. 旅行商问题概述旅行商问题,即TSP问题(Traveling Salesman Problem)又译为旅行推销员问题货郎担问题,是数学领域中著名问题之一。假设

2、有一个旅行商人要造访n个城市,她必需选择所要走路径,路径限制是每个城市只能造访一次,而且最终要回到原来出发城市。路径选择目标是要求得路径旅程为全部路径之中最小值。TSP问题是一个组合优化问题,其描述很简单,但最优化求解很困难,若用穷举法搜索,对N个城市需要考虑N!种情况并两两对比,找出最优,其算法复杂性呈指数增加,即所谓“指数爆炸”。所以,寻求和研究TSP问题有效启发式算法,是问题关键。2. 粒子群优化算法概述粒子群优化算法(Particle Swarm optimization,PSO)又翻译为粒子群算法、微粒群算法、或微粒群优化算法。是经过模拟鸟群觅食行为而发展起来一个基于群体协作随机搜索

3、算法。通常认为它是群集智能 (Swarm intelligence, SI) 一个。它能够被纳入多主体优化系统(Multiagent Optimization System, MAOS). 粒子群优化算法是由Eberhart博士和Kennedy博士发明。PSO模拟鸟群捕食行为。一群鸟在随机搜索食物,在这个区域里只有一块食物。全部鸟全部不知道食物在那里。不过她们知道目前位置离食物还有多远。那么找到食物最优策略是什么呢。最简单有效就是搜寻现在离食物最近鸟周围区域。PSO从这种模型中得到启示并用于处理优化问题。PSO中,每个优化问题解全部是搜索空间中一只鸟。我们称之为“粒子”。全部粒子全部有一个由被

4、优化函数决定适应值(fitnessvalue),每个粒子还有一个速度决定她们翱翔方向和距离。然后粒子们就追随目前最优粒子在解空间中搜索。PSO初始化为一群随机粒子(随机解),然后经过迭代找到最优解,在每一次叠代中,粒子经过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到最优解,这个解叫做个体极值pBest,另一个极值是整个种群现在找到最优解,这个极值是全局极值gBest。另外也能够不用整个种群而只是用其中一部分最优粒子邻居,那么在全部邻居中极值就是局部极值。3. 粒子群优化算法求解旅行商问题旅行商问题是一个经典、易于描述却难于处理组合优化问题,而且是一个NP完全难题,其可能路径数目和城市数

5、目n是成指数型增加,对n个城市而言,可能路径总(n-1)!。伴随n增加,路径数将按数率急剧增加,即所谓“指数爆炸”,所以通常极难正确地求出其最优解,所以寻求出其有效近似求解算法就含相关键理论意义。而粒子群优化算法是处理复杂问题有效方法,自然也能应用于处理旅行商问题。PSO模拟鸟群捕食行为。一群鸟在随机搜索食物,在这个区域里只有一块食物。全部鸟全部不知道食物在那里。不过她们知道目前位置离食物还有多远。那么找到食物最优策略是什么呢。最简单有效就是搜寻现在离食物最近鸟周围区域。2. 粒子群算法基础思想21. 粒子群优化算法基础原理一个由个粒子(Particle)组成群体(Swarm)在维搜索空间中以

6、一定速度飞行,每个粒子在搜索时,考虑到了自己搜索到历史最好点和群体内(或领域内)其它粒子最好点,在此基础上进行位置(状态、也就是解)改变。第个粒子位置表示为:第个粒子速度表示为:,第个粒子所经历历史最好点表示为:群体内(或领域内)全部粒子所经历过最好点表示为:。通常来说,粒子位置和速度全部是在连续实数空间内进行取值,粒子位置和速度依据以下方程进行改变 其中,为惯性权重。和称为学习因子(Learning Factor)或加速系数(Acceleration Coefficient),通常为正常数。学习因子使粒子含有自我总结和向群体中优异个体学习能力,从而向自己历史最优点和群体内或领域内历史最优点靠

7、近。和通常等于2。,是在区间内均匀分布伪随机数。粒子速度被限制在一个最大范围内。 当把群体内全部粒子全部作为领域组员时,得到粒子群优化算法全局版本;当群体内部分组员组成领域时得到粒子群优化算法局部版本。局部版本中,通常有两种方法组成领域,一个是索引号相邻粒子组成领域,另一个是位置相邻粒子组成领域。粒子群优化算法领域定义策略又能够称为粒子群领域拓扑结构。12. 粒子群优化算法步骤3. 粒子群优化算法关键组成要素1. 群体大小是个整型参数。当很小时候,陷入局优可能性很大。然而,群体过大将造成计算时间大幅增加。而且当群体树木增加至一定水平时,再增加将不再有显著作用。当=1时,PSO算法变成基于个体搜

8、索技术,一旦陷入局优,将不可能跳出。当m很大时,PSO优化能力很好,可是收敛速度将很慢。2. 学习因子和学习因子使粒子含有自我总结和向群体中优异个体学习能力,从而向群体内或领域内最优点靠近。和通常全部等于2,不过也可能有其它取值。不过通常等于,而且范围在0和4之间。3. 最大速度:最大速度决定粒子在一次迭代中最大移动距离。较大,探索能力增强,不过粒子轻易飞过最好解。较小时,开发能力增强,不过轻易陷入局优。有分析和试验表明,设定作用能够经过惯性权重调整来实现。所以现在试验基础上使用进行初始化,将设定为每维变量改变范围,而无须进行细致选择和调整。4. 惯性权重智能优化方法运行是否成功,探索能力和开

9、发能力平衡是很关键。对于粒子群优化算法来说,这两种能力平衡就是靠惯性权重来实现。较大惯性权重使粒子在自己原来方向上含有更大速度,从而在原方向上飞行更远,含有愈加好搜索能力;较小惯性权重使粒子继承了较少原方向上速度,从而飞行较近,含有愈加好开发能力。经过调整惯性权重能够调整粒子群搜索能力。5. 领域拓扑结构全局版本粒子群优化算法将整个群体作为粒子领域,速度快,不过有时会陷入局优;局部版本粒子群优化算法将索引号相近或位置相近个体作为粒子领域,收敛速度慢一点,不过极难陷入局部最优。显然,全局版本粒子群优化算法能够看作局部版本粒子群优化算法一个特例,立即整个群体全部作为领域。6. 停止准则通常使用最大

10、迭代次数或能够接收满意解作为停止准则。7. 粒子空间初始化很好地选择粒子初始化空间,将大大缩短收敛时间。这是问题依靠。3. 粒子群算法求解旅行商问题步骤粒子群优化算法即使成功地应用于连续优化问题中,而在离散上研究和应用还极少,尤其是用PSO处理TSP问题是一个新研究方向2。最初PSO是用来处理连续空间问题,为了适合求解TSP问题,大家对算法进行了多种改善。本文采取王岚3重新定义PSO运算符号和规则,引入交换子和交换序概念,结构一个特殊PSO用于求解TSP方法。先对这种改善PSO进行简略介绍:定义1 设n个城市TSP问题解序列为S=(ai),i=1,2,n.定义交换子SO(i1,i2)为交换解S

11、中点ai1和ai2,则S=S+ SO(i1,i2)为解S经算子SO(i1,i2)操作后新解,这里为符号“+”给予了新含义.例1 有一个有5个城市TSP问题,其解为S=(1,3,5,2,4),交换算子为SO(1,2),则S=S+SO(1,2)=(1,3,5,2,4)+SO(1,2)=(3,1,5,2,4).定义2 一个或多个交换子有序队列就是交换序,记作SS。其中,SS=(SO1,SO2,SOn),SO1,SO2,SOn是交换子,它们之间次序是有意义。交换序作用于一个TSP解上意味着这个交换序中全部交换子依次作用于该解上,即S=S+SS=S+(SO1,SO2,SOn)=(S+SO1)+SO2+S

12、On.定义3 不一样交换序作用于同一解上可能产生相同新解,全部有相同效果交换序集合称为交换序等价集。定义4 若干个交换序能够合并成一个新交换序,定义为两个交换序合并算子。例2 设两个交换序SS1和SS2按前后次序作用于解S上,得到新解S。假设另外有一个交换序SS作用于同一解上,能够得到相同解S,可定义SS=SS1+SS2。SS和SS1+SS2属于同一等价集。通常来说,SS不唯一。定义5 在交换序等价集中,拥有最少交换子序称为该等价集基础交换序。可按以下方法结构一个基础交换序。设给定两个解路径A和B,需要结构一个基础交换序SS,使得B+SS=A。A:(1,2,3,4,5); B:(2,3,1,5

13、,4)能够看出,A(1)=B(3)=1,所以第一个交换子是SO(1,3),B1=B+SO(1,3),得到B1(1,3,2,5,4);A(2)=B1(3)=2,所以第二个交换子是SO(2,3),B2=B1+SO(2,3),得到B2=(1,2,3,5,4);同理,第三个交换子是SO(4,5),得到B3=B2+SO(4,5)=A。这么就得到一个基础交换序:SS=A-B=(SO(1,3),SO(2,3),SO(4,5)。基础PSO算法中速度算式在基于以上交换子和交换序概念下各符号有了新定义。其中、仍为学习因子,、仍为 0,1内 随机数;表示基础交换序以概率保留,表示基础交换序以概率保留。由此能够看出值

14、越大,保留交换子就越多,影响就越大;同理,值越大, 影响也就越大。这也正是学习因子含义所在。求解TSPPSO算法步骤描述以下:(1). 初始化粒子群,即给群体中每一个粒子赋一个随机初始解和交换序;(2). 假如满足条件,转步骤(5);(3). 依据粒子目前位置,计算下一个位置,即新解:i. 计算和之间差A,A=,其中A是一个基础交换序表示A作用于得到;ii. 计算B=,其中B也是一个基础交换序;iii. 由计算出速度,并将交换序转换为一个基础交换序;iv. 假如找到一个愈加好解,则更新(4). 假如群体找到一个愈加好解,则更新,转步骤(2);(5). 输出结果。4. 实例验证表一:中国31个省

15、会城市坐标城市序号12345678横坐标13043639417737123488332632384196纵坐标23121315224413991535155612291044城市序号910111213141516横坐标43124386300725622788238113323715纵坐标79057019701756149116766951678城市序号1718192021222324横坐标39184061378036764029426334293507纵坐标21792370221225782838293119082376城市序号25262728293031横坐标3394343929353140

16、254527782370纵坐标2643320132403550235728262975(表中数据来自网站)本文以中国31个省会城市旅行商问题作为验证标准,验证以上改善粒子群算法实用效果。编写基于以上思想求解中国31个城市旅行商问题matlab程序(代码见附件),当关键参数为编号snnvmaxc1c2gnmax11003022100(其中snn为最初粒子数,vmax为最大速度, c1为粒子基于自己目前位置和自己历史最优位置自我学习因子, c2 为粒子基于自己目前位置和群体最优位置群体学习因子,gnmax为最大迭代次数。)时,进行十次试验,得到次数12345路径长度3199731653318043

17、194631056次数678910路径长度3229833198313353241632964可知第二次得到结果最好,其对应遍历路径为L: 6 4 11 13 29 21 5 16 14 30 15 28 26 27 25 17 24 20 19 3 22 18 10 2 7 12 1 31 23 8 9 、对应最好粒子改变趋势及最好路径图为:此结果和其它算法得到最优值相差较大,不过能够看出,粒子确实在往好方面改变。所以能够尝试改变参数,数次试验,看能否得到更优值。5. 算法改善数次试验结果以下:编号snnvmaxc1c2gnmax最优值11003013100315562100251310032

18、211310020131003164841001513100326495100101310031787610051310030590710051210032491810051110033169910052310032863101005331003210911150513100311781220051310032106132505131003194014300513100300501535051310030148164005131003106917300513503222218300513150297461930051320029803203005132503059821300513300290

19、42由以上试验结果可知,当初始化粒子总数snn为300,最大速度vmax为5,学习因子c1为1,c2为3,最大迭代次数为300时(即编号为21试验),得到最短遍历长度为29042,其对应遍历路径为L: 21 22 16 29 11 5 13 4 1 15 24 17 18 12 14 7 6 23 8 9 10 2 3 27 25 28 20 、对应最好粒子改变趋势及最好路径图为: 6. 结论改变各个参数值后求得最优值差异不大,而且所得最优值和其它算法求得最优值相比更劣(遗传算法求解一样问题得到最优值为154043),不过路径确实优化了,这种基于交换子和交换序改善粒子群优化算法求解TSP问题是

20、有一定成效。由最好粒子改变趋势图可知最优值改变依靠于突变,而且这种突变发生效率很低,然而经过修改学习因子c1、c2、和最大速度vmax并不能显著改变这种突变率。我想是因为这种基于交换子和交换序改善粒子群优化算法性质所决定。当然也有可能因为编码不合适造成,不过现在我还未找到愈加好编码方法。这种源于大自然群体智能粒子群优化算法一定含有一定通用性,我相信经过合适改善一定能够用于现实生活中绝大多数优化问题。本文所用交换子和交换序概念和对应编码方法也一定能够改善。7. 参考文件1 黄岚,王康平,周春光,庞魏,董龙江,彭利.粒子群优化算法求解旅行商问题.吉林大学学报(理学版),,4:477-480.2 汪定伟,王俊伟,王洪峰等.智能优化方法.高等教育出版社.3 丛爽,贾亚军.进化策略和蚁群算法融合求解旅行商问题.控制工程.,v.8,no.1.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服