- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编码思路遗传算法是解决NP难问题时的一种较常规的方法,逻辑思路、算法流程、代码编写都较为成熟,但普遍性的算法效果却未必俱佳。针对不同的问题,编写合适的代码极其关键。本文属于VRP的变异问题,在此作者对影响算法效果的三个关键子函数详细阐述。染色体设计染色体是遗传迭代的基础,反映的是问题模型的解,编写满足解约束的染色体是关键。本文的决策变量较多,针对路径优化问题,由于本文中单点可被两条路径覆盖,不同于常规VRP编码。在此本文编码:for j=1:Kpop(i,(j-1)*J+1:(j-1)*J+J)=round(rand(1,J));end为了提高解的可行性,作者对上述编码进行修正,要求每个配送中心至少被覆盖一次。whilepop(i,j)+pop(i,J+j)+pop(i,2*J+j)+pop(i,3*J+j)+pop(i,4*J+j)==0pop(i,21:25)=round(rand(1,J));end针对供应点的取货问题,由于只有路径上供应点才能有取货量,且要保证取货量有一定限制,作者如下编码:for j=1:chromlengthif pop(i,j)==1p(i,j)=round(rand*(Q/2-1))+1; endend同时在计算染色体适应度时,由于对路径上货量和供应点提供量的约束较为严格,作者在算法中分别计算了两者货量h_sum和z_sum,编码如下:for i=1:popsizefor j=1:Jh_sum(i,j)=sum(p(i,J*(j-1)+1:J*(j-1)+J));%%路径上总运量h_sumendfor j=1:Jz_sum(i,j)=p(i,j)+p(i,J+j)+p(i,2*J+j)+p(i,3*J+j)+p(i,4*J+j);%%供应商总运量z_sumendend交叉操作:交叉操作紧接着是染色体选择操作,选择使得适应度较高的解进入子代,经过此步骤往往解集中在局部优化,而交叉操作有助于破除局部限制。由于RDC中心同时规划多条路径,所以多条路径方案交叉互换,有一定概率取得更优化解,作者编码如下:交叉次数取决于种群规模和交叉概率,amount1=round(popsize*pc)。接下来需要随机出种群中两个交叉染色体序号num2,num3,采用while语句保证num2与num3不等。 num2=round(rand*(popsize-1))+1; num3=round(rand*(popsize-1))+1;while num2==num3 num3=round(rand*(popsize-1))+1;end交叉前也需要确定路径段中交叉的区段,num4=round(rand*(J-2))+1。同时交叉路径选择方案和供应点取货量方案,交叉操作编码如下:temp1=pop2(num2,(num4-1)*J+1:(num4-1)*J+J); pop2(num2,(num4-1)*J+1:(num4-1)*J+J)=pop2(num3,(num4-1)*J+1:(num4-1)*J+J);pop2(num3,(num4-1)*J+1:(num4-1)*J+J)=temp1;%%路径交叉temp2=p2(num2,(num4-1)*J+1:(num4-1)*J+J); p2(num2,(num4-1)*J+1:(num4-1)*J+J)=p2(num3,(num4-1)*J+1:(num4-1)*J+J);p2(num3,(num4-1)*J+1:(num4-1)*J+J)=temp2;%%取货量交叉变异操作即使经过上述交叉操作,染色体解仍有陷入局部优化的可能,因为上述操作都是在已生成解的基础上,而变异操作不同。其选中种群中某条染色体,进行随机的基因突变,所以有一定概率产生全新的解,是遗传算法寻找全局最满意解的有利保障。首先确定变异次数,amount2=round(popsize*pm)。接着随机出种群中变异染色体序号num5,变异基因位置序号num6。 num5=round(rand*(popsize-1))+1; num6=round(rand*(chromlength-1))+1;由于编码采用0-1形式,变异时只需要0-1对调,同时需要保障解的可行性,编码如下if pop3(num5,num6)==0pop3(num5,num6)=1;p3(num5,num6)=round(rand*(Q/2-1))+1; endif pop3(num5,num6)==1pop3(num5,num6)=0;p3(num5,num6)=0;end实例验证某地区有一个RDC,从周围5个供应点循环取货。该中心有5辆载重卡车,载重限额12t,车辆的装
您可能关注的文档
- 大连海事大学《现代优化技术》第1讲:优化问题与优化技术.ppt
- 大连海事大学《现代优化技术》第2讲:现代优化技术基础之数学基础.ppt
- 大连海事大学《现代优化技术》第3讲:现代优化技术基础之计算机基础.ppt
- 大连海事大学《现代优化技术》第4讲:算法及其设计与评价.ppt
- 大连海事大学《现代优化技术》第5讲:传统启发式算法之构筑法.ppt
- 大连海事大学《现代优化技术》第6讲:传统启发式算法之改善法.ppt
- 大连海事大学《现代优化技术》第7讲:传统启发式算法之改进形态.ppt
- 大连海事大学《现代优化技术》第8讲:现代启发式算法之模拟退火算法.ppt
- 大连海事大学《现代优化技术》第9讲:现代启发式算法之遗传算法.ppt
- 大连海事大学《现代优化技术》附件1:传统优化技术.PPT
- 大连海事大学Matlab作业:交通运输工程.docx
- 大连海事大学Matlab作业:遗传算法源代码.docx
- 大连海事大学关于进行2015年硕士研究生入学复试的通知.doc
- 大连海事大学硕士研究生入学考试大纲 434 国际商务专业基础.doc
- 大连海事大学硕士研究生入学考试大纲 X14 产业经济学.doc
- 大连海事大学硕士研究生入学考试大纲 X15 国际航运经济学.doc
- 大连海事大学硕士研究生入学考试大纲 X21 公司理财.doc
- 大连海事大学硕士研究生入学考试大纲 Z12 国际贸易理论与实务.doc
- 大连海事大学硕士研究生入学考试大纲 Z14 管理信息系统.doc
- 大连海事大学硕士研究生入学考试大纲 系统工程(同等学力).doc
文档评论(0)