1 简介
车辆路径问题(Vehicle Routing Problem, VRP)是物流配送过程中的关键问题之一,随着物流配送行业竞争日益激烈和客户对物流配送时效性要求越来越高,对车辆路径问题的研究,尤其是对带时间窗车辆路径问题(Vehicle Routing Problem With Time Windows, VRPTW)的研究,不仅可以帮助运输企业提高服务水平,为客户提供快捷,准时,安全,舒适的服务,而且有助于企业节约运输成本,提高车辆利用效率,缩短生产周期,加速资金周转,实现资源的合理配置,汲取"第三利润源泉"的财富,因此研究带时间窗车辆路径问题具有重要的现实意义. 本文正是基于以上背景对带时间窗的车辆路径优化问题进行了相关研究.论文从旅行商问题出发,通过分析带时问窗车辆路径优化问题的基本理论,对可用于求解VRPTW的各种优化算法进行了对比,确定了遗传算法作为本文VRPTW求解算法.在此基础上,考虑配送距离,配送及时性以及配送车辆数对配送成本的影响,构建了以配送总成本最小化为目标的带有惩罚函数的VRPTW优化模型,并设计了适合于该模型求解的染色体编码方式以及遗传算子等.最后,应用算例进行了仿真试验,利用MATLAB软件分别计算出基于改进遗传算法和基本遗传算法的最优目标函数值与最优配送路径方案,通过对试验结果的对比分析,验证了本文所建模型及求解算法的合理性和有效性.
2 部分代码
%交叉算法采用部分匹配交叉%交叉算法采用部分匹配交叉
function [a,b]=intercross(a,b)
L=length(a);
if L<=10 %确定交叉宽度
W=9;
elseif ((L/10)-floor(L/10))>=rand&&L>10
W=ceil(L/10)+8;
else
W=floor(L/10)+8;
end
p=unidrnd(L-W+1);%随机选择交叉范围,从p到p+W
for i=1:W
%交叉
x=find(a==b(1,p+i-1));
y=find(b==a(1,p+i-1));
[a(1,p+i-1),b(1,p+i-1)]=exchange(a(1,p+i-1),b(1,p+i-1));
[a(1,x),b(1,y)]=exchange(a(1,x),b(1,y));
end
%function [FARM]=intercross(FARM,D,Pc)
%[s,t]=size(FARM);%n*N
%FARM1=FARM;
%for i=1:2:s
% if Pc>rand&&i<=s-1
% crosspoint =randperm(t-1);
% if crosspoint(2)<crosspoint(1)
% p=crosspoint(2);
% crosspoint(2)=crosspoint(1);
% crosspoint(1)=p;
% end
% middle=zeros(1,crosspoint(2)-crosspoint(1));
% middle=FARM(i,crosspoint(1)+1:crosspoint(2));
% FARM(i,crosspoint(1)+1:crosspoint(2))=FARM(i+1,crosspoint(1)+1:crosspoint(2));
% FARM(i+1,crosspoint(1)+1:crosspoint(2))=middle;
% for j=1:crosspoint(1)
% while find(FARM(i,crosspoint(1)+1:crosspoint(2))==FARM(i,j))
% zhi=find(FARM(i,crosspoint(1)+1:crosspoint(2))==FARM(i,j));
% y=FARM(i+1,crosspoint(1)+zhi);
% FARM(i,j)=y;
% end
% end
% for j=crosspoint(2)+1:t
% while find(FARM(i,crosspoint(1)+1:crosspoint(2))==FARM(i,j))
% zhi=find(FARM(i,crosspoint(1)+1:crosspoint(2))==FARM(i,j));
% y=FARM(i+1,crosspoint(1)+zhi);
% FARM(i,j)=y;
% end
% end
% 如果个体退化选择父代
% for i=1:s
% if myLength(D,FARM1(i,:))<myLength(D,FARM1(i,:))
% FARM(i,:)=FARM1(i,:);
% end
% end
% end
%en
3 仿真结果
4 参考文献
[1]范月林, 周素萍. 基于改进遗传算法的带时间窗VRP问题研究[J]. 电脑知识与技术:学术交流, 2011.
5 MATLAB代码与数据下载地址
见博客主页