




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、传播优秀word版文档 ,希望对您有帮助,可双击去除!课程名称:数学软件与实验 成绩:旅行商问题课 程 号:50c11033课 序 号:01任课教师:邢红杰班 级:5008信计姓 名:郝杰学 号:2008477042 填写日期: 2011-5-24旅行商问题5008信息与计算科学 郝杰 20084770421、实验问题已知30个城市的坐标如下: 41 94;37 84;54 67;25 62; 7 64;2 99;68 58;71 44;54 62;83 69;64 60;18 54;22 60;83 46;91 38;25 38;24 42;58 69;71 71;74 78;87 76;1
2、8 40;13 40;82 7;62 32; 58 35;45 21;41 26;44 35;4 50一名推销员要拜访多个地点时,如何找到在拜访每个地点一次后再回到起点的最短路径。2、符号说明location 储存的是个城市的坐标d(i,j) 代表城市 i和城市j之间的距离len 路径总距离pc 交叉概率pm 变异概率3、问题分析与建模3.1 问题分析 本题中设定了我国30城市,当一个推销员拜访所有城市后回到起点, 31个地点所有路径个数是30 !个。由于其全局搜索的特性,遗传算法在解决tsp问题中有着其他算法所没有的优势。tsp 问题就是寻找一条最短的遍历n 个城市的最短路径, 或者说搜索子
3、集v=v1,v2,v3,vn ( vi的元素表示对n 个城市的编号) 的一个排列t=(t1,t2,t3,ti,tn),其中tiv(i=1,2,3,n),且记tn+1= t1, , 使len = d ( vi , vi+1) + d ( v1 , vn)取最小值, 式中的d ( vi , vi+1) 表示城市vi 到城市vi + 1的距离.标准的遗传算法包括群体的初始化,选择,交叉,变异操作。其主要步骤可描述如下1: (1)随机产生一组初始个体构成的初始种群,并评价每一个个体的适配值。 (2)判断算法的收敛准则是否满足。若满足输出搜索结果;否则执行以下步骤。 (3)根据适配值大小以一定方式执行选
4、择操作。 (4)按交叉概率pc执行交叉操作. (5)按变异概率pm执行变异操作。 (6)返回步骤(2)。3.2 程序设计3.2.1坐标系中画出个城市的坐标点矩阵location储存的是个城市的坐标(设:推销员出发点的坐标为(0,0)如下图所示:locations= 0 0;41 94;37 84;54 67;25 62; 7 64;2 99;68 58;71 44;54 62;83 69;64 60;18 54;22 60;83 46;91 38;25 38;24 42;58 69;71 71;74 78;87 76;18 40;13 40;82 7;62 32; 58 35;45 21;41
5、 26;44 35;4 50; plot(locations(:,1),locations(:,2),'b*');3.2.2 距离矩阵和适应度函数距离矩阵使用一个n×n矩阵d存储,d(i,j)代表城市 i和城市j之间的距离。 d(i,j)=sqrt((xi-xj).2+(yi-yj).2) 在该问题的求解中,用距离的总和来衡量适应度,距离的总和越大,适应度越小,进而探讨求解结果是否最优。 每个个体(每条路径距离)总合计算公式为:len=d(1,n); for i=1:(n-1) len=len+d(i,i+); end len纪录总路径格式n×1 len(i
6、)代表第i个个体(路径)距离总合。3.2.3 选择操作选择的目的是为了从当前群体中选出优良的个体,使他们有机会作为父代产生后代的个体。function seln=(s,p);inn=size(p,1);for i=1:2 r=rand; prand=p-r; j=1; while prand(j)<0 j=j+1; end seln(i)=j;endend3.2.4 交叉操作群体中的每个个体之间都以一定的概率 pc 交叉,即两个个体从各自字符串的某一位置(一般是随机确定)开始互相交换,这类似生物进化过程中的基因分裂与重组。例如,假设2个父代个体x1,x2为: x1=0100110 x2=
7、1010001 从每个个体的第3位开始交叉,交又后得到2个新的子代个体y1,y2分别为: y10100001 y21010110这样2个子代个体就分别具有了2个父代个体的某些特征。利用交又我们有可能由父代个体在子代组合成具有更高适合度的个体。function xoverkids = tsp_crossover_permutation(parents,options,nvars, . fitnessfcn,thisscore,thispopulation)nkids = length(parents)/2;xoverkids = cell(nkids,1);index = 1; for i=1:
8、nkids parent = thispopulationparents(index); index = index + 2; p1 = ceil(length(parent) -1) * rand); p2 = p1 + ceil(length(parent) - p1- 1) * rand); child = parent; child(p1:p2) = fliplr(child(p1:p2); xoverkidsi = child; end3.2.5 变异操作基因的突变普遍存在于生物的进化过程中。变异是指父代中的每个个体的每一位都以概率 pm 翻转,即由“1”变为“0”,或由“0”变为“
9、1”。遗传算法的变异特性可以使求解过程随机地搜索到解可能存在的整个空间,因此可以在一定程度上求得全局最优解。functionmutationchildren = mutate_permutation(parents ,options,nvars, . fitnessfcn,state,thisscore,thispopulation,mutationrate)mutationchildren = cell(length(parents),1);for i=1:length(parents)parent = thispopulationparents(i); p = ceil(length(pa
10、rent) * rand(1,2); child = parent; child(p(1) = parent(p(2); child(p(2) = parent(p(1);mutationchildreni = child; end4、matlb求解迭代后的最优路径如下图所示由上图可知推销员所走的最短路径fval = 504.78885、总结体会tsp问题还有很多其他算法,比如说最临近算法、模拟退火、粒子群算法、最小权匹配算法等等论文用遗传算法对tsp问题进行了求解,熟悉遗传算法地算法流程,证明了遗传算法在求解tsp问题时,具有可行性,matlab在进行算法优化编程时具有一定的优势。遗传算法在设计过程中要照顾好两个原则子代要具有父代优良的基因信息即继承性子代要保持群体的多样性,即变异。虽然这两个原则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《生产计划与调度技巧》课件
- 企业安全生产年终工作总结模版
- 《血液透析操作》课件
- 高血压并发症课件
- 科技推广示范总结模版
- 《营销的基础知识》课件
- 《节能领域先锋企业》课件
- 《中毒事故应急处理》课件
- 金融科技新质生产力
- 《严重肝肾功能障碍》课件
- 铸牢中华民族共同体意识-形考任务1-国开(NMG)-参考资料
- 汽车行业员工创新激励机制研究
- 建筑工程质量与安全控制手册
- 北京邮电大学《移动通信》2021-2022学年期末试卷
- 2024-2025学年广东省深圳市高三下学期质量调研(二模)生物试题试卷含解析
- 【中考猜想】江苏省南京市2024-2025学年初三下期末考试(一模)数学试题试卷含解析
- 2024年机修钳工(高级技师)职业鉴定考试题库(含答案)
- 2024年海南文昌中学自主招生数学试卷试题真题(含答案)
- CJT 511-2017 铸铁检查井盖
- 房地产 -魔方公寓SOP标准手册V1.7
- 肾移植与术后感染
评论
0/150
提交评论