2022年遗传算法求解TSP问题MATLAB实现 .pdf

上传人:Q****o 文档编号:30550024 上传时间:2022-08-06 格式:PDF 页数:8 大小:708.59KB
返回 下载 相关 举报
2022年遗传算法求解TSP问题MATLAB实现 .pdf_第1页
第1页 / 共8页
2022年遗传算法求解TSP问题MATLAB实现 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年遗传算法求解TSP问题MATLAB实现 .pdf》由会员分享,可在线阅读,更多相关《2022年遗传算法求解TSP问题MATLAB实现 .pdf(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、遗传算法求解TSP问题 MATLAB 实现摘要:旅行商问题( TSP)是一个经典的优化组合问题,本文采用遗传算法来求解TSP 问题,深入讨论了遗传算法解决TSP问题的求解过程, 并通过 MATLAB 对算法进行了实现,最后对实验结果进行分析,并与粒子群算法进行对比和分析。关键字:TSP ;遗传算法;粒子群算法0.引言旅行商问题是一个经典的优化组合问题,它可以扩展到很多问题,如电路布线、 输油管路铺设等, 但是, 由于 TSP 问题的可行解数目与城市数目N 是成指数型增长的,是一个 NP难问题,因而一般只能近似求解,遗传算法(GA)是求解该问题的较有效的方法之一,当然还有如粒子群算法,蚁群算法,

2、 神经网络算法等优化算法也可以进行求解。遗传算法是美国学者 Holland 根据自然界“物竞天择,适者生存”现象而提出的一种随机搜索算法,本文采用 MATLAB来实现遗传算法解决TSP 问题。1.旅行商问题旅行商问题可以具体描述为:已知 n 个城市之间的相互距离,现有一个推销员从某一个城市出发, 必须遍访这n 个城市,并且每个城市只能访问一次,最后又必须返回到出发城市,如何安排他对这些城市的访问次序,可使其旅行路线的总长度最短。用图论术语来表示,就是有一个图g=(v,e),其中 v 是定点 5,e 是边集,设d=(dij) 是有顶点i 和顶点 j 之间的距离所组成的距离矩阵, 旅行商问题就是求

3、出一条通过所有顶点且每个顶点只通过一次的最短距离的回路。若对与城市v=v1,v2,v3 vn 的一个访问顺序为t=(t1,t2,t3 ,tn), 其中 ti v(i=1,2,.n),且记 tn+1=t1,则旅行上问题的数学模型为式1:min( ( ), (1) (1,., )Id t it iin(1)2.遗传算法与粒子群算法2.1 遗传算法遗传算法的基本原理是通过作用于染色体上的基因寻找好的染色体来求解问题,它需要对算法所产生的每个染色体进行评价,并基于适应度值来选择染色体,使适应性好的染色体有更多的繁殖机会,在遗传算法中, 通过随机方式产生若干个所求解问题的数字编码,即染色体, 形成初始种

4、群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗产操作后的个体集合形成下一代新的种群,对这个新的种群进行下一轮的进化。2.2 遗传算法的过程遗传算法的基本过程是:1.初始化群体。2.计算群体上每个个体的适应度值3.由个体适应度值所决定的某个规则选择将进入下一代个体。4.按概率 Pc进行交叉操作。5.按概率 Pm 进行变异操作。6.没有满足某种停止条件,则转第2 步,否则进入第7 步。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1

5、 页,共 8 页 - - - - - - - - - 7.输出种群中适应度值最优的染色体作为问题的满意解或最优界。停止条件有两种: 一是完成了预先给定的进化代数则停止;二是种群中的最优个体在连续若干代没有改进或平均适应度在连续若干代基本没有改进时停止。遗传算法过程图如图1:开始初始化种群计算适应度值选择操作交叉操作变异操作条件停止适应度最优群体结束图 1:遗传算法过程框图3.遗传算法 MATLAB 代码实现遗传算法中控制参数如下:Clist 城市的坐标, dislist 城市距离矩阵, inn 初始种群的大小, gnmax 最大代数, pc 交叉概率 ,pm 变异概率。3.1 开始准备先读入文

6、件,读入574 个城市坐标读入矩阵,并计算城市距离。如代码:3.2 初始化种群名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 遗传算法对求解问题本身是一无所知的,这里采用随机生成初始化种群,如下:计算适应度值,适应度值是根据适应度函数来计算的,如适应度函数代码如下:3.3 选择操作选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代产生后代个体,如代码:3.4 交叉操作名师资料总结 - - -精品资料欢迎下载 - -

7、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 许多生物的繁衍是通过染色体的交叉完成的,在遗传算法中使用这一概念,并把交叉作为遗传算法的一个操作算子,其实现过程是对选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率Pc,在选择的位置实行交换,目的在于产生新的基因组合,即新的个体(这里由于源代码太多不列出)3.5 变异操作是按一定概率随机改变某个个体的基因值,以变异概率Pm 对某个个体的某些位执行变异,在变异时,对执行变异的串的对应位求反,如代码:最后根据具体条

8、件判断是否返回或是继续,最后当满足条件是输出适应度最优群体。4 实验分析实验硬件环境为普通笔记本电脑,内存2GB ,CPU频率 2.0GHz。软件环境为Windows XP Professional SP3操作系统, Matlab7.1 。实验对象是574 个城市的旅行商问题。读入 574 个城市的坐标,如图1:图 1:574 个城市坐标的两种显示4.1.改变种群数量的对比当参数设置为种群大小为100,最大迭代次数2000,交叉概率0.85,变异概率为0.05 的时候对 574 个城市求解,如图2。当参数设置为种群大小为50,最大迭代次数2000,交叉概率0.85,变异概率为0.05 的时候对

9、 574 个城市求解,如图3。当参数设置为种群50,最大迭代次数为5000,交叉概率0.85,变异概率为0.05 的时候名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 对 574 个城市求解,如图4. 图2:种群为 100最大迭代次数为2000的TSP问题求解结果图3:种群为 50最大迭代次数为2000的TSP问题求解结果图4:种群为 50最大迭代次数为5000的TSP问题求解结果通过上述种群大小可知迭代越大求解的结果越优化,但

10、是确花费了大量时间,种群越大名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 求解的结果更优化,所以在时间和求解优化解要权衡,而且改变交叉概率和变异概率也同样影响着收敛速度和优化解的得到。另外从图可以看出,算法迭代并没有稳定,那是因为迭代的次数不够,造成解的搜索没有稳定和优化,迭代次数一般可以上万次4.2 粒子群算法求解当参数为 50 个粒子迭代10 次,局部优化使用2-Opt 算法,如图4。图5:50个粒子 10次迭代的粒子群T

11、SP问题求解结果当参数为 50 个粒子迭代30 次,局部优化使用2-Opt 算法,如图5。图6:50个粒子 30次迭代的粒子群TSP问题求解结果当参数为 30 个粒子迭代30 次,局部优化使用2-Opt 算法,如图6。图7:30个粒子 30次迭代的粒子群TSP问题求解结果根据实验结果50 粒子 10 迭代时最短路径为42176,50 个粒子 30 次迭代是最短路径为名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 41619,30

12、 个粒子 30 次迭代时最短路径为40809,30 个粒子 30 次迭代时解最优,可以看出最优解的得出并不是只受迭代次数或是粒子数影响,在其它条件不变的情况下,两种都对解的求解有影响,如果考虑其它因素的话,求解更加复杂。4.3 遗传算法同粒子群算法对比取两个实验的最优解结果,即50 粒子群 30 次迭代的粒子群算法同种群大小为1200 的遗传算法的对比,如图8,图 9. 图8:30个粒子 30次迭代的粒子群TSP问题求解结果图9:种群大小为 100迭代 2000次的 TSP问题求解结果采用两种算法对同一TSP 问题进行求解,从实验明显可见粒子群算法比遗传算法得到的解更加优化,而且所花费的时间也

13、比遗传算法少得多。造成这种实验结果的原因可能是算法本身的适应问题,可能是粒子群算法更适合解此类问题; 另一方面, 可能是遗传算法的参数设置不能达到最优解,因为遗传算法的种群大小,最大迭代次数, 交叉概率和变异概率的设定对算法的收敛和最优解的得到有很大影响,可能是我们设定的这些参数不够准确,如在遗传算法中我们只设置了2000 次的最大迭代次数,明显不能满足要求,要得到更好的优化解,就必须设置好算法的参数,目前有许多研究都在改进算法,以达到满意的效果。5 总结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -

14、- - - - 第 7 页,共 8 页 - - - - - - - - - 本文采用 MATLAB实现遗传算法求解TSP 问题, 并根据实验结果进行了分析,遗传算法是一种智能优化算法,它的实现有些关键点,一是串的编码方式,本质就是问题编码,串长度及编码形式对算法收敛影响极大;二是适应函数的确定,这是选择的基础;三是自身参数的设定, 其中重要的是群体大小,最大迭代次数,交叉概率和变异概率,通过实验我们可以看到最大迭代次数对问题求解的精度有影响,交叉概率和变异概率的设定对问题的收敛速度和求解精度都有极大的影响,目前很多研究都是根据具体的领域问题,改进交叉算子, 变异算子, 寻找最优的参数设定来提高算法收敛速度和保证最优解的得到,对算子的改进和参数值的设定这是将来的研究工作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com