基于遗传算法的tsp问题研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于遗传算法的TSP问题研究 摘要:旅行商问题是一个经典的优化组合问题,本文采用遗传算法来求解旅行商问题,深入讨论了遗传算法解决TSP问题的求解过程,并通过MATLAB对算法进行了实现,最后对实验结果进行分析。 关键字: 旅行商问题; 遗传算法 Abstract:The traveling salesman problem is a classic optimal combination problem. In this paper, we use genetic algorithm to solve the TSP problem.We discusse the solving process, and the algorithm is realized by MATLAB. Finally, the experimental results are analyzed. Key words: Traveling Salesman Problem; Genetic Algorithm 1 引言 旅行商问题(Traveling Salesman Problem,TSP)的原始问题为:一个商人欲到n个城市推销商品,每两个城市i和j之间的距离为,如何选择一条道路使得商人每个城市正好走一遍后回到起点且所走路线最短。这是一个经典的优化组合问题,它可以扩展到很多问题,如电路布线、输油管路铺设等,但是,由于TSP问题的可行解数目与城市数目N是成指数型增长的,是一个NP-hard问题,即不存在多项式时间算法。因而一般只能近似求解,遗传算法(Genetic Algorithm,GA)是求解该问题的较有效的方法之一,当然还有如粒子群算法,蚁群算法,神经网络算法等优化算法也可以进行求解。遗传算法是美国学者Holland根据自然界“物竞天择,适者生存”现象而提出的一种随机搜索算法,本文采用MATLAB来实现遗传算法解决TSP问题。 2 旅行商问题 旅行商问题可以具体描述为:已知n个城市之间的相互距离,现有一个推销员从某一个城市出发,必须遍访这n个城市,并且每个城市只能访问一次,最后又必须返回到出发城市,如何安排他对这些城市的访问次序,可使其旅行路线的总长度最短。图论模型如图1所示,构造一个图G=(V,e),顶点V表示城市,边e表示连接两城市的路,边上的权表示距离(或时间或费用)。于是旅行推销员问题就成为在加权图中寻找一条经过每个顶点正好一次的最短圈的问题,即求最佳Hamilton 圈的问题。 图1 TSP问题的图论模型 TSP问题是NP-hard问题,。也就是说,对于大型网络(赋权图),目前还没有一个精确求解TSP问题的有效算法,因此只能找能求出相当好(不一定最优)的解的算法。TSP问题的数学规划模型:设是i与j之间的距离,,其中1表示连线,0表示不连线,那么整个TSP问题的数学模型表示如下: 式中,k为v的全部非空子集;|k|为集合k中包含图G的全部顶点个数。 3 遗传算法 遗传算法(genetic algorithm,GA)起源于对生物系统所进行的计算机模拟研究,是一种借鉴生物界自然选择(Nature Selection)和自然遗传机制的随机搜索算法(Random Searching Algorithms)。其基本流程图如图2所示。该算法适宜于多峰值空间中的优化求解,能从任一初始化的群体出发,通过随机选择、交叉和变异等遗传操作,使群体逐渐进化到搜索空间越来越好的区域。遗传算法的应用已从最初的组合优化领域扩展到生产调度、自动控制、机器人学、图像处理、机器学习、数据挖掘等多个领域。遗传算法应用的关键在于如何结合应用模型构造出染色体以及交叉、变异操作。 3.1 遗传算法的运行过程 遗传算法的运算流程如图2所示。 图2 遗传算法的运算流程 由图2可以看出,使用上述三种遗传算子的遗传算法的主要运算过程如下: 编码:解空间中的解数据x,作为遗传算法的表现型形式。从表现型到基因型的映射成为编码。遗传算法在进行搜索之前先将解空间数据表示成遗传空间的基因型串结构数据,这些串结构数据的不同组合就构成了不同的点。 初始群体的生成:随机产生N个初始串结构数据,每个串结构数据成为一个个体,N个个体构成了一个群体。遗传算法以这N个串结构作为初始点开始迭代。设置进化代数器;设置最大进化代数T;随机生成M个个体作为初始群体。 适应度值评价检测:适应度函数表明个体或解得优劣性。对于不同的问题,适应度函数的定义方法不同。根据具体问题,计算群体中个体的适应度。 进行遗传操作:群体通过选择、交叉、变异运算后得到下一代群体。 终止条件判断:若,则,转到步骤(2);若,则以进化过程中所得到的最大适应度的个体作为最有解输出,终止运算。 3.2遗传算法的基本操作 遗传算法有三个基本操作:

文档评论(0)

wx171113 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档