200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【路径规划-多式联运】基于遗传算法求解多式联运冷链运输成本优化问题附matlab代码

【路径规划-多式联运】基于遗传算法求解多式联运冷链运输成本优化问题附matlab代码

时间:2018-09-03 08:14:23

相关推荐

【路径规划-多式联运】基于遗传算法求解多式联运冷链运输成本优化问题附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法 神经网络预测 雷达通信 无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机 电力系统

⛄ 内容介绍

​在军事运输中,采用多种运输方式联合投送是加强战略投送能力建设发展的重要途径,而路径规划是制定多式联运输送保障方案的关键第一步。本文提出了一个以遗传算法为主框架的解决方案,用来求解多式联运的路径规划问题。首先,本文从运输需求内容、运输过程、应用场景等角度对多式联运在军事运输中的应用进行分析,定义多式联运路径规划问题,建立分别以时问最短、路线最短、成本最低为目标的多式联运路径规划模型。该问题是一个规模庞大的组合优化问题,属于NP-hard问题。提出了以遗传算法为主,A*算法为辅的求解思路。接着,参考层次空间推理理论,将铁路、水路、公路、航空等多种运输方式的道路网络数据融合并分层,构建多式联运路径规划专用的网络拓扑。这样的分层处理,能够将单一运输方式道路网络中的最短路这一子问题剥离出来,也能够有效地降低遗传算法搜索空间的规模。

⛄ 部分代码

function mupop=mutetu(pop,GA,Math,P,qi,zdd)

mupop=cell(size(pop));

for i=1:GA.popsize

indv=cell2mat(pop(i));

indv2= indv;

if rand< GA.pm

if length(indv)<=3

k = 2;

else

k=round(rand()*(length(indv)-3))+2;% 只能取去掉起点和终点后的点的随机索引。

%k= unidrnd(length(indv));

end

% 单点变异

if mod(k,2)==0

try

math = cell2mat(Math(indv(k-1),indv(k+1)));% 所有可行的运输方式

math2 = setdiff(math,indv(k));

catch ErrorInfo

disp(ErrorInfo);

end

if isempty(math2)

mupop(i)={indv};

else

indv2(k)= math2(randi(length(math2)));

flag = test(indv2,qi,zdd);

if flag ==1

[v1]=Objfun2( indv,Modd);

[v2]=Objfun2( indv2,Modd);

if v1>v2

mupop(i)={indv2};

else

mupop(i)={indv};

end

else

mupop(i)={indv};

end

end

else

% 节点变异

indv2 = cell2mat(proM(indv(k-1),indv(end),P,Math,1));

flag = test(indv2,qi,zdd);

%mupop(i)={indv};

if flag ==1

mupop(i)={indv2};

else

mupop(i)={indv};

end

% mu_Point(k,indv,P,Math);

end

else

mupop(i)={indv};

end

end

end

⛄ 运行结果

⛄ 参考文献

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。