1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【路径规划】基于遗传算法求解多中心VRP问题matlab源码

【路径规划】基于遗传算法求解多中心VRP问题matlab源码

时间:2022-12-19 00:41:56

相关推荐

【路径规划】基于遗传算法求解多中心VRP问题matlab源码

约束条件:

拥有多个物流中心。车辆从某一个物流中心出发,完成配送任务后,可以不回到原来出发的物流中心,返回距离最近的物流中心,即开放式车辆路径。当然,根据车辆服务最后一个客户与所有物流中心的距离,如果与原来出发的物流中心是最短距离,也可以返回原来出发的物流中心。优化目标:车辆固定使用成本(200元/辆)、车辆行驶时间成本(0.3元/分钟)、车辆等待时间成本(0.3元/分钟)、车辆服务时间(0.3元/分钟)成本之和最小。约束条件:(1)不超过车辆容量限制(车辆容量为1000单位),(2)服务必须在客户时间窗内进行,(3)车辆可以提前到达客户,产生等待时间。(4)设定车辆从物流中心的出发时间为0时刻,即第0分钟。

%%遗传算法求解vrp问题(为选择操作从新设计后程序)%D是距离矩阵,n为种群个数%C为停止代数,遗传到第 C代时程序停止,C的具体取值视问题的规模和耗费的时间而定%交叉概率Pc,变异概率Pm %R为最短路径,Rlength为路径长度function VRPvolume_shangyuan=30; %一架飞机对伤员的载量约束volume_wuzi=200; %一架飞机对物资的载量约束sudu_feiji=200; %一架飞机的速度base_num1=5; %各个仓库的飞机数量base_num2=5;base_num3=5;n=100; %个体数C=100; %迭代次数Pc=0.8;Pm=0.3;%主程序入口 tab=2 ; %tab=1,则程序跑的是所有点%tab=2,则程序跑的是有缺失的点if tab==1%初始化load('h.mat');demand_shangyuan(1,:)=a(:,4);demand_wuzi(1,:)=a(:,6);zuobiao(1,:)=a(:,2);zuobiao(2,:)=a(:,3);timewindow(1,:)=a(:,8);timewindow(2,:)=a(:,9);D = linjiejuzhen( zuobiao ); [N,NN]=size(D);%初始化点的出发仓库和回归仓库for i=1:N;dis(1,i)=sqrt((zuobiao(1,i)-22)^2+(zuobiao(2,i)-75)^2);dis(2,i)=sqrt((zuobiao(1,i)-75.8)^2+(zuobiao(2,i)-80.1)^2);dis(3,i)=sqrt((zuobiao(1,i)-53.4)^2+(zuobiao(2,i)-59.9)^2);if (dis(1,i)<=dis(2,i))if (dis(1,i)<=dis(3,i))dis(4,i)=1;elsedis(4,i)=3;endelseif (dis(2,i)<=dis(3,i))dis(4,i)=2;elsedis(4,i)=3;endend endclear i;[R,minlen]=geneticVRP(D,dis,timewindow,demand_shangyuan,demand_wuzi,volume_shangyuan,volume_wuzi,sudu_feiji,base_num1,base_num2,base_num3,n,C,Pc,Pm,zuobiao);%运算返回最优路径R和其总距离Rlengthelse%初始化delete=[49 34 9 10 58];%要删除的点delete=sort(delete,'descend');[M,MM]=size(delete);load('h.mat');demand_shangyuan(1,:)=a(:,4);demand_wuzi(1,:)=a(:,6);zuobiao(1,:)=a(:,2);zuobiao(2,:)=a(:,3);timewindow(1,:)=a(:,8);timewindow(2,:)=a(:,9);xiba=0;for i=1:MMxiba=xiba+demand_shangyuan(1,delete(i))+demand_wuzi(1,delete(i));end[B,BB]=size(demand_shangyuan);old=(1:BB);for new=1:MMold(delete(new))=[];demand_shangyuan(delete(new))=[ ];demand_wuzi(delete(new))=[];zuobiao(:,delete(new))=[];timewindow(:,delete(new))=[];endD = linjiejuzhen( zuobiao ); [N,NN]=size(D);%初始化点的出发仓库和回归仓库for i=1:N;dis(1,i)=sqrt((zuobiao(1,i)-22)^2+(zuobiao(2,i)-75)^2);dis(2,i)=sqrt((zuobiao(1,i)-75.8)^2+(zuobiao(2,i)-80.1)^2);dis(3,i)=sqrt((zuobiao(1,i)-53.4)^2+(zuobiao(2,i)-59.9)^2);if (dis(1,i)<=dis(2,i))if (dis(1,i)<=dis(3,i))dis(4,i)=1;elsedis(4,i)=3;endelseif (dis(2,i)<=dis(3,i))dis(4,i)=2;elsedis(4,i)=3;endend endclear i;[R,minlen]=geneticVRP_delete(old,xiba,D,dis,timewindow,demand_shangyuan,demand_wuzi,volume_shangyuan,volume_wuzi,sudu_feiji,base_num1,base_num2,base_num3,n,C,Pc,Pm,zuobiao);%运算返回最优路径R和其总距离Rlengthend

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