【路径规划】基于遗传算法求解多中心带时间窗车辆路径规划问题(VRPTW)matlab代码

2021/12/6 1:20:07

本文主要是介绍【路径规划】基于遗传算法求解多中心带时间窗车辆路径规划问题(VRPTW)matlab代码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 简介

在分析时间窗的惩罚函数基础上,建立了带有时间窗的多配送中心车辆调度模型,针对模型设计了两阶段求解算法,先通过扫描算法把客户化分到不同的配送中心负责配送,然后采用遗传算法求解带有时间窗的多配送中心的车辆调度模型,最后,结合算例仿真计算验证了算法的有效性.

现有的区域内多配送中心配送多采用分区域独立配送模式.多个配送中心虽同属于一家企业,但一般情况下,企业会根据行政区划为每个配送中心划分一个业务范围,各配送中心间相对独立.在分区域独立配送模式下,一个客户会固定从属于某一特定配送中心,而不会根据客户的地理分布和需求特性进行调整,易导致各配送中心间任务分配不均.从理论研究 的 角 度 来 看,此 类 求 解 MDVRP 的 方 法 是“先分组后路径”,即分区域规划思想,将各配送中心割裂开来.分区的结果会直接影响区内路径的规划结果,不合理的分区算法常常会导致较差的路径规划.为避免此 类 问 题 的 出 现,本 文 采 用 整 体 配 送 模式,引入一个与所有的实际配送中心相连且距离为0的虚拟配送中心,所有车辆均从该虚拟配送中 心出发,经过实际配送中心对客户进行服务,然后再经实际配送中心返回该虚拟配送中心。

2 部分代码

%% 最远插入启发式:将最小插入目标距离增量最大的元素找出来

%输入removed                          被移出的顾客集合

%输入rfvc                             移出removed中的顾客后的final_vehicles_customer

%输入L                                集配中心时间窗

%输入a                                顾客时间窗

%输入b                                顾客时间窗

%输入s                                服务每个顾客的时间

%输入dist                             距离矩阵

%输入demands                          需求量

%输入cap                              最大载重量

%输出fv                               将removed中所有元素 最佳插入后距离增量最大的元素

%输出fviv                             该元素所插入的车辆

%输出fvip                             该元素所插入的车辆的坐标

%输出fvC                              该元素插入最佳位置后的距离增量

function [fv,fviv,fvip,fvC]=farthestINS(removed,rfvc,L,a,b,s,dist,demands,cap )

nr=length(removed);                   %被移出的顾客的数量

outcome=zeros(nr,3);

for i=1:nr

    %[车辆序号 插入点序号 距离增量]

    [civ,cip,C]= cheapestIP( removed(i),rfvc,L,a,b,s,dist,demands,cap);

    outcome(i,1)=civ;

    outcome(i,2)=cip;

    outcome(i,3)=C;

end

[mc,mc_index]=max(outcome(:,3));

temp=outcome(mc_index,:);

fviv=temp(1,1);

fvip=temp(1,2);

fvC=temp(1,3);

fv=removed(mc_index);

end

3 仿真结果

4 参考文献

[1]仪孝展. 基于改进遗传算法的物流车辆路径规划方法研究与应用. Diss. 西安理工大学.

图片



这篇关于【路径规划】基于遗传算法求解多中心带时间窗车辆路径规划问题(VRPTW)matlab代码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程