问题的数学模型.PPTVIP

  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问题的描述 1 传统遗传算法实现TSP问题过程及结果分析 2 改进后的遗传算法实现TSP问题过程及结果分析 3 总结 4 旅行商问题((Traveling Salesman Problem简称TSP) 是一个典型的优化组合问题,可具体描述如下:已知n 个城市之间的相互距离,现有一个推销员从某一城市出发,必须遍访这n 个城市,并且每个城市只能访问一次,最后又必须返回到出发城市. 如何安排他对这些城市的访问次序,可使其旅行路线的总长度最短 。 TSP 问题的数学模型 假设有一个图G = ( V , E) ,其中V 是顶点集, E 是边集,设D = ( dij ) nxn 是顶点i 和顶点j 之间的距离所组成的距离矩阵,TSP 问题就是求出一条通过所有顶点且每个顶点只通过一次的具有最短距离的回路. 若dij = dji ( i ≠ j) ) ,称为对称TSP 问题,否则称为非对称TSP 问题.若对于城市W = ( v1 , v2 , ?, vn ) 的一个访问顺序为T = E { t1 , t2 , t3 , ?, tn} ,其中ti ∈V = {1 , ?, n} ,且tn- 1 = t1 ,则TSP 问题的数学模型为: 其中, d ( ti ti +1 ) 表示顶点ti 和顶点ti+1 之间的距离. 图2.1遗传算法流程图 2.传统遗传算法实现TSP问题 目标函数: 目标函数计算公式: 对于该优化问题,就是要寻找一个最优解,使得其函数值F(i)最小。 适应度函数设计: 使用改进了的评价函数eval(vi),用来对种群中的每个染色体vi设定一个概率,以使该染色体被选中的可能性与其种群中的其它染色体的适应度成比例,即通过轮盘赌,适应性强的染色体被选择产生后代的机会要大,设alpha∈(0,1),定义基于序的评价函数为式 程序中取alpha值为0.1 选择过程 编码方式 对于TSP问题,较常用的编码方式为以遍历城市的次序排列进行编码的路径表示法(Path Representation),该编码方式是把染色体表示成所有城市的一个排列。假设有n个城市,一条可能的路径编码为长度为n的整数向量(i1,i2,…in),其中ik表示第k个城市。如码示自城市1开始,依次经城市2,3,4,5,6,7,8,最后返回城市1的遍历过程。这是一种对TSP问题的最自然的编码方式。 存在的问题: 在交叉阶段出现重复的路径 Grefenstettet 编码 对于一个TSP 问题的城市列表W ,假定每个城市的一个访问顺序为T = ( t1 , t2 , t3 , ?, tn ) ,规定每访问完一个城市,就从城市列表中将该城市去掉,则用第i ( i = 1 ,2 ,3 , ?, n) 个访问的城市ti 在所有未访问城市列表W { t1 , ?, ti - 1 } 中的对应位置序号gi (1 = gi= n - i + 1) 就可表示具体访问哪个城市,如此这样直到处理完W 中所有的城市。将全部gi 顺序摆列在一起得到一个列表: G = ( g1 , ?, gn ) 就可表示一条巡回路线,它即为遗传算法中的一个个体的基因。 例如: W = (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) , 则Path = (8 15 2 10 7 4 3 11 14 6 12 9 5 13 1) , 对应Chrom = (8 14 2 8 6 3 2 5 7 3 4 3 2 2 1) 。 采用Grefenstettet编码解决了交叉后出现重复路径的问题。 例如现在有两条路径,分别为Path1和Path2,将这两条路径对应的染色体编码后进行交叉。 Path1 = (6,5,3,2,1,7,4,9,10,8); Path2 = (3,7,6,2,9,10,8,4,1,5)。 进行Grefenstettet编码后: Chrom1=(6,5,3,2,1,2,1,2,1,1); Chrom2=(3,6,5,2,5,5,4,2,1,1)。 假设在染色体序列第3位后进行交叉,交叉之后得到两条编码后的

文档评论(0)

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

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

1亿VIP精品文档

相关文档