【多式联运】基于遗传算法求解多式联运低碳路径规划问题matlab源码

1 模型

基于集装箱多式联运在进行门到门的运输过程中可以选择多种运输方式和路径的组合进行优化运输这个特点,本文将多式联运的运输优化问题转化成为一个最短路径问题,以成本和时间为优化目标建立了选择最优路径的模型,并选择遗传算法作为求解算法对实例问题进行了求解验证.

2 部分代码

% main
clc,clear ,close all
[distance_road,distance_rail,distance_water]=data();
% 输入:公路、铁路、水路运输距离,和运输时间,起点和终点元胞数组
% 输出:最优路径和最优成本
feature jit off
% set madel parameters
Modd.Tmax=48;
%   单位运输距离成本及空间距离 
Modd.unitcost.road=9.39; %公路
Modd.unitcost.rail=2.835; %铁路
Modd.unitcost.water=2.56; %水路
Modd.distan.road=distance_road; % 公路
Modd.distan.rail=distance_rail; %铁路
Modd.distan.water=distance_water;  %水路

%   时间成本及时间距离 
% Modd.distan.lambd=10; %时间成本权重
% Modd.delivery.road=dilivery_road; %% 公路
% Modd.delivery.rail=dilivery_rail; %铁路
% Modd.delivery.water=dilivery_water; %水路

% 中转费用 
Modd.loadupcost=...
[0150826
1500976
8269760]; 
% 装卸时间 
Modd.loaduptim=[0,0.800000000000000,0.800000000000000;0.800000000000000,0,0.800000000000000;0.800000000000000,0.800000000000000,0];
%% 最多中转的次数 
Modd.maxTranfertime=4 ;  
%% Set GA Control Parameters 
GA.popsize= 200 ; %   种群规模(取偶数) 
GA.MaxCycles=500; %   最大迭代次数 
GA.Dim=  13;  %   城市是否选中 选中为1 ,不选中为0;13= 总的站点数 -1
GA.Ub=3; %   表示前五维度的选择仅有公路、铁路、水路三种 
GA.pc=0.7; % 交叉概率 
GA.pm=0.3; % 变异概率 
GA.pentcof=100 ;   %惩罚系数 
GlobalMins= zeros(GA.MaxCycles ,1);    %最优值记录 
GlobalOptpop= zeros(GA.MaxCycles,1+2*GA.Dim);    %最优方案记录 

%% 初始化操作 
pop=zeros(GA.popsize ,1+2*GA.Dim); 
obJvaL=zeros(GA.popsize , 1); 
for i=1: GA.popsize 
   pop( i ,:)=popcreat(GA.Ub,GA.Dim);
end

•            indv(kk)=unidrnd(2) -1 ;%0,1
•            mupop(i,:)=indv;
•        else
•            mupop(i,:)=indv;
•        end
•    end

%     if find( mupop(:,1: GA.Dim+1) ==0) 
%         disp('变异出毛病') 
%     end 
   %% 循环 
   pop= mupop; 
end
%% curve convergence of Transportation cost 
figure('NumberTitle',  'off',  'Name',  'Iteration of proposed GA metaheuristic', 'Color',[1 1 1]); 
plot(GlobalMins,'LineWidth',2); 
title(' Curve convergence of   total transportation cost','fontsize',13) 
set(gca, 'FontName','Times New Roman',   'Fontsize',12,'LineWidth',2 ); 
xlabel('Iteration','fontsize',15,'fontname','Times new roman'); 
ylabel('Total transportation cost','fontsize',15,'fontname','Times new roman') 
grid off ; 
box off 


%%   results display 
indv=GlobalOptpop(end ,:);
[finalObjfit, finalObjcost   , finalrouts,totalTime ]=Objfun( Modd , GA.Dim , indv ,GA.pentcof   );
starpoint={'上海', '杭州' , '南京',   '芜湖'   , '合肥'   , '九江' ,'南昌' ,'武昌' ,'汉口','荆州','长沙','宜昌','张家界','云阳'};
endpoint={ '杭州' , '南京',   '芜湖'   , '合肥'   , '九江' ,'南昌' ,'武昌' ,'汉口','荆州','长沙','宜昌','张家界','云阳','重庆'};
transportway={'公路' ,'铁路' ,'水运' };
if size(finalrouts,1)==1
   str=[ starpoint{finalrouts(1,1)   }   '   经   ',transportway{finalrouts(1,3)}       '     到 '    endpoint{ finalrouts(1,2) } ];
%     str=[ '运 输 方 式 为 :',transportway{finalrouts(end)} ];
   disp(str);
else
   for i=1:size( finalrouts,1)
       str=[ starpoint{finalrouts(i,1)   }   '   经   ',transportway{finalrouts(i,3)}       '     到 '    endpoint{ finalrouts(i,2) } ];
       disp(str);
       

   end

end
disp(sprintf('最低成本为 %8.3f   ',   finalObjcost));
disp(sprintf('总运输时间为 %8.3f   ',   totalTime));

3 仿真结果

4 参考文献

[1]杨秋秋,王辉. 基于遗传算法的多目标集装箱多式联运运输优化模型[J]. 物流科技(12):29-31.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值