【VRP问题】基于节约算法CW求解带硬时间窗的车辆路径规划问题(VRPTW)matlab源码

147 阅读2分钟

1 简介

研究了物流配送中多车运输的集货与送货车辆路径规划问题,以增加时间惩罚费用的方式插入软时间窗约束,将租车费用,货车运输费用和时间惩罚费用三者之和最小作为优化目标,建立数学模型.采用启发式节约算法求解该模型,考虑时间惩罚费用和运输费用,比较每一配送节点上直接送货和间接送货的节约费用关系,求出最优配送路径.试验结果表明:当配送次数达到50次时,货车平均装载率仍能达到80%以上,该节约算法能减少货车空程行驶和租车次数,优化了全局费用.

2 部分代码

clear
clc
tic
%% 用importdata这个函数来读取文件 
rc208=importdata('rc208.txt');
cap=1000;
%% 提取数据信息
vertexs=rc208(:,2:3);                                            %所有点的坐标x和y
customer=vertexs(2:end,:);                                       %顾客坐标
cusnum=size(customer,1);                                         %顾客数
demands=rc208(2:end,4);                                          %需求量
h=pdist(vertexs);
dist=squareform(h);                                             %距离矩阵,满足三角关系,暂用距离表示花费c[i][j]=dist[i][j]
%% CW法构造CVRP初始解
[init_vc,init_TD,init_vl]=init_CVRP(rc208,cap);
initNV=size(init_vc,1);
str1=['车辆行驶总距离 = ' num2str(init_TD)];
disp(str1)
str2=['车辆使用数目 = ' num2str(initNV)];
disp(str2)
%% 判断最优解是否满足时间窗约束和载重量约束,0表示违反约束,1表示满足全部约束
flag=Judge(init_vc,cap,demands);
%% 检查最优解中是否存在元素丢失的情况,丢失元素,如果没有则为空
DEL=Judge_Del(init_vc);
%% 画出配送路线图
vertexs=rc208(:,2:3);                                            %所有点的坐标x和y
draw_Best(init_vc,vertexs);
toc

3 仿真结果

4 参考文献

[1]祁文祥, 陆志强, 孙小明. 带软时间窗的集货与送货多车辆路径问题节约算法[J]. 交通运输工程学报, 2010, 010(002):99-103.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,有科研问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。