✅作者简介:热爱科研的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电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除