数学建模之求解TSP问题的遗传算法(共6页).docx
《数学建模之求解TSP问题的遗传算法(共6页).docx》由会员分享,可在线阅读,更多相关《数学建模之求解TSP问题的遗传算法(共6页).docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上求解TSP问题的遗传算法实现 邱文(湖北工业大学机械学院,湖北,武汉,)摘要:本文应用遗传算法(GA)解决TSP(travel salesman problem)问题,在此采用基于对各个城市访问顺序的编码方案,同时在探讨影响GA性能的遗传算子的基础上,介绍了可以改善解的质量的倒位算子。最后通过在VC+6.0上运行该算法的程序得到问题的最优解。关键词:遗传算法(GA)TSP问题 倒位算子 最优解Genetic Algorithm for Solving TSP Problems Qiu Wen(School of Science, Hubei University of
2、 Technology, Hubei, Wuhan,)Abstract: This paper apply genetic algorithm to solve TSP(travel salesman problems) problem .The encoding scheme based on sequence of each city .During the same time , on the studying of the performance of genetic algorithm which based on the genetic operators , we introdu
3、ce an inversion operator to improve the quality of solution . Keywords: genetic algorithm (GA); TSP problem; inversion optimal solution1 引言TSP问题(Traveling Salesman Problems 可描述为:已知n个城市之间的相互距离,现有一推销员必须遍历这n个城市,并且每个城市只能访问一次,最后又必须返回出发城市。如何安排他对这些城市的访问次序,可使其旅行路线的总长度最短。用图论的术语来说,假设有一个图G=(V,E),其中V是顶点集,E是边集,设
4、D=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,旅行商问题就是求出一条通过所有顶点且每个顶点只能通过一次的具有最短距离的回路。若对于城市V=v1,V2,V3,vn的一个访问顺序为T=(t1, t2, t3, , ti, , tn),且记tn+1=t1,则TSP问题的数学模型为:Min L=i=1ndti,ti+1TSP问题是一个典型的组合优化问题,并且是一个NP难题,其可能的路径数与城市数目n是成指数型增长的,所以一般很难精确的求出自由解因而寻找出其他有效的近似求解算法就具有重要的理论意义,另一方面,很多实际应用问题,比如印制电路板的钻孔路线方案、连锁店的货物配送路线等,经过简化处
5、理后,均可以建模为TSP问题,因而对TSP问题的求解具有重要的应用价值,同时研究TSP问题对促进遗传算法也有重大意义。遗传算法(GA)是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。它包括对表示可行解的个体编码,再对这些编码进行选择、交叉和变异等遗传操作。与传统的优化算法相比,遗传算法的优越性主要表现在:(1) 它在搜索过程中不易陷入局部最优,即使在所定义的适应函数是不连续的、非规则的或有噪声的情况下,它也能以最大的概率找到群体最优解;(2) 由于它固有的并行性,遗传算法非常适合大规模并行计算机。2 初始群体设定由于遗传操作是对众多个体同时进行的,这众多的个体组成
6、了群体,在遗传算法中考虑到初始群体的多样性,群体中的个体是随机产生的,先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数达到了预先确定的规模。/*群体初始化*/void initpop ()unsigned char j1;unsigned int j, k, j2,j3,j4,p5maxstring;j=0;for(k=0;klchrom;k+)oldpopj.chromk=k;for(k=0;klchrom;k+)p5k=oldpopj.chromk;srand(unsigned)time(NULL); for(j=0;jpopsize;
7、j+)j2=rand()%(lchrom);for(k=0;kj2+20;k+)j3=rand()%(lchrom);j4=rand()%(lchrom);j1=p5j3;p5j3=p5j4;p5j4=j1;for(k=0;klchrom;k+)oldpopj.chromk=p5k;for(k=0;klchrom;k+)for(j=0;jlchrom;j+)ddk*lchrom+j=_hypot(xk-xj,yk-yj); for(j=0;jpopsize;j+)oldpopj.x=(double)decode(oldpopj.chrom);oldpopj.fitness=objfunc (o
8、ldpopj.x);oldpopj.parent1=0;oldpopj.parent2=0;oldpopj.xsite=0;3 目标函数和适应度函数的设计遗传算法的一个特点是它仅适用所求问题的目标函数值就可以得到下一步的有关搜索信息,对目标函数值的使用是通过评价个体的适应度来体现的。评价个体适应度的一般过程是:(1)对个体编码串进行解码处理后,可得到个体的表现型。(2)由个体的表现型可计算出对应个体的目标函数值。(3)由目标函数值按一定的转换规则求出个体的适应度。在TSP的求解中,将求取距离总和L的最小值Min L作为目标函数,适应度函数常取路径长度L的倒数,即f=1/L。/*个体适应度计算*
9、/double objfunc(double x1)double y;y=100.0*ff/x1;return y;/*群体适应度统计*/void statistics( pp *pop)unsigned int j;sumfitness=pop0.fitness;min=pop0.fitness;max=pop0.fitness;maxpp=0;minpp=0;for(j=1;jmax) max=popj.fitness;maxpp=j;if(popj.fitnessmin)min=popj.fitness;minpp=j;avg=sumfitness/(double)popsize;4 遗
10、传算法4 .1 编码设计在遗传算法的运行过程中,它不对所求解的问题的实际决策直接进行操作,而是对表示可行解的个体编码施加遗传运算,通过这种遗传操作来达到优化的目的,在遗传算法中把一个问题的解空间转换到遗传算法所能处理的搜索空间的转换方法就叫做编码。在TSP问题的求解方法中,本文描述旅行路线的方法为巡回旅行路线所经过的各个城市的顺序排列。它是采用所遍历的城市的排序来表示各个个体的编码串,由于一般的个体编码方法进行的交叉运算、变异运算会使群体中产生一些不满足问题约束条件或无实际意义的巡回路线。因此本文采用Grefenstetee 等提出的一种新的巡回路线编码方法,该方法能够使得任意的基因型个体都能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 求解 TSP 问题 遗传 算法
限制150内