【路径规划】基于遗传算法求解多中心带时间窗车辆路径规划问题(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代码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南