数学建模中的常用算法课程介绍.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Algorithms in Mathematical Modeling * * * TSP复杂性 搜索空间庞大 TSP涉及求多个变量的函数的最小值,求解很困难。 其可能的路径条数随着城市数目n成指数增长,如, 5个城市对应12条路径;10个城市对应181 440条 路径;100个城市对应4.6663X10155条路径。如此 庞大的搜索空间,常规解法和计算工具都遇到计算上 的困难。只能寻找近似解法,如神经网络方法、模拟 退火法、遗传算法等。 * TSP编码:路径表示 染色体表示成所有城市的一个排列,若有n个城市,一 条可能路径编码为长度为n的整数向量(i1,i2,…,in),其中 ik表示第ik个城市。 例如: 路径编码向量(5 1 7 8 9 4 6 2 3)直接表示一条 旅行路程(5-1-7-8-9-4-6-2-3)。 此向量是1到n的一个排列,即从1到n的每个整数在这 个向量中正好出现一次,不能有重复。这样,基本遗传 算法的基因操作生成的个体不能满足这一约束条件,需 寻求其他遗传操作。 * TSP交叉 需其他方式的交叉(重组)操作, 如部分匹配交叉(Partially Matched Crossover,PMX)、 顺序交叉(Ordered Crossover,OX)、 循环交叉(Cycle Crossover,CX)、 边重组(Edge Recombination)。 1 2 3 4 5 5 4 3 2 1 1 2 3 2 1 5 4 3 4 5 一般的交叉操作会产生不合适的解,如 * TSP交叉1:部分匹配交叉(PMX) 双亲P1,P2随机选取两个交叉点,得到一个匹配段,根据交叉点中间段给出映射关系。 1 2 3 4 5 6 7 8 9 9 3 7 8 2 6 5 1 4 x x x 4 5 6 7 x x x x x 8 2 6 5 x x P1 P2 映射关系: 4 ?8、5 ?2、7 ?5 c1 c2 交换两个交叉点之间的编码,(X表示未定码) * TSP交叉1:部分匹配交叉(PMX) 子个体C1,C2分别从其父个体中继承未映射城市码 1 2 3 4 5 6 7 8 9 9 3 7 8 2 6 5 1 4 9 3 x 4 5 6 7 1 x 1 x 3 8 2 6 5 x 9 P1 P2 c1 c2 映射关系: 4 ?8、5 ?2、7 ?5 9 3 2 4 5 6 7 1 8 1 7 3 8 2 6 5 4 9 c1 c2 再根据映射关系,对以上未定码,使用最初双亲码,得到子个体的对应码。映射关系存在传递关系,则选择未定码交换。 * TSP交叉2:顺序交叉(OX) 双亲P1,P2随机选取两个交叉点 1 2 3 4 5 6 7 8 9 9 3 7 8 2 6 5 1 4 P1 P2 x x x 4 5 6 7 x x x x x 8 2 6 5 x x c1 c2 两个交叉点间的中间段保存不变 子个体C1的未定码的确定需要父个体P2的未选定城市码,子个体C2的未定码的确定需要父个体P1的未选定城市码。 * TSP交叉2:顺序交叉(OX) 记取父个体P2从第二个交叉点开始城市码的排列顺序,当到达表尾时,返回表头继续记录,直到第二个交叉点。 9 3 7 8 2 6 5 1 4 P2 x x x 4 5 6 7 x x c1 3 8 2 4 5 6 7 1 9 c1 3 4 7 8 2 6 5 9 1 c2 得到父个体P2的排列顺序1-4-9-3-7-8-2-6-5,并将C1已有 城市码4,5,6,7从中去掉,得到排列顺序1-9-3-8-2,再将此顺 序复制到C1,复制点也是从第二个交叉点开始,得到C1。 同理的C2, * TSP交叉3:循环交叉(CX) CX操作中子个体中的城市码顺序根据任一父个体产生 确定循环编码 复制循环编码到子个体 * TSP变异 Insert Mutation 随机选取个体中两个编码,然后把第二个编码放在第一 个编码之后,其他编码顺次调节位置。 Swap mutation 随机选取个体中两个编码,然后交换它们的位置。 * TSP变异 Inversion mutation 随机选取个体中一段编码,然后颠倒这段编码的顺序。 Scramble mutation 随机选取个体上一段编码,然后打乱这段编码的顺序。 选取的编码不一定是邻接编码 * TSP的GA过程 从N个随机起点开始产生N条路径,N为种群的规模; 利用最优方法搜索每条路径的局部最优解; 选择交叉对使在平均性能之上的个体得到更多的子代; 交叉和变异; 搜索每条路径得到其极小解,如果不收敛,则回到第3步;否则,停止。 * GA的MATLAB实现 软件平台(Software Platforms): MATL

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档