资源简介
代码利用粒子群算法对带时间窗的车辆路径规划问题进行了求解,代码进行了详细的注释,易于理解和进行修改,内置了一组数据,为可执行的代码。
代码片段和文件信息
%%----评估粒子---%%
%是否为可行解--判断依据:各车辆是否超重超重
%根据目标函数计算目标值,找出粒子群的gbest和各粒子的pbest
%ijkctj1j2
function [gbestXv gbestXr fav]=eval(XvXryPEPLCTSTgvnnmspeedDSw)
fav=zeros(n1); %%%
bm=linspace(1nn);
ET=CT(:1);
LT=CT(:2);
g;
t1=0;
for i=1:n
Xvi=Xv(i:); %获取任务对应车辆编号的粒子行
Xri=Xr(i:); %获取车辆对应任务顺序行
st=zeros(vn+1m);
st(1:)=linspace(1mm);
t=0;
bmzys=zeros(1);
sg=zeros(1vn); %存储没辆车的货物
ST1=zeros(1vn);%存储每辆车的时间惩罚
juli=zeros(1vn);
%对每个粒子的Xv和Xr进行解码
for j=1:vn
colv=find(Xvi==j);
for k=1:length(colv)
st(j+1colv(k))=Xri(colv(k)); %获取每一辆车的Xr值
end
st0=st(1:)‘;
stj=st(j+1:)‘;
sst=[st0 stj];
pxst=sortrows(sst2); %%进行排序获取每辆车接送任务的顺序
for c=1:m
if pxst(c2)~=0
t=t+1;
cxh(t)=pxst(c1); %获取每辆车的进行各项任务的编号
end
end
for j1=1:t
sg(j)=sg(j)+g(cxh(j1)); %%每辆车所载货物
if j1~=t
juli(j)=juli(j)+DS(1cxh(1))+DS(cxh(j1)cxh(j1+1)); %每辆车途经距离
else
juli(j)=juli(j)+DS(cxh(t)1); %每辆车途经距离
end
if t~=1
if j1~=t
cxh(j1+1);
cxh(j1);
ST0=DS(1cxh(1))/speed+ST(cxh(1))+PE*max(ET(cxh(1))-ST(1)0)+PL*max(LT(cxh(1))-ST(1)0); %每辆车途经第一个节点时的时间(不包括时间惩罚)
ST1(j)=ST0+ST1(j)+DS(cxh(j1)cxh(j1+1))/speed+PE*max(ET(cxh(j1+1))-ST1(j)0)+PL*max(LT(cxh(j1+1))-ST1(j)0)+ST(cxh(j1));
else
ST1(j)=ST1(j)+DS(cxh(t)1)/speed;
end
else
ST0=DS(1cxh(1))/speed+ST(cxh(1))+PE*max(ET(cxh(1))-ST(1)0)+PL*max(LT(cxh(1))-ST(1)0);
ST1(j)=ST0;
end
end
if sum(sg)>w %%约束条件判断
t1=t1+1;
bmzys(t1)=j;
end
end
%%%目标函数计算
fav(i)=y*sum(juli)+sum(ST1);
end
bmzyscl=find(bmzys~=0); %%读取不满足约束的粒子
for j3=1:length(bmzyscl)
bm(bmzys(bmzyscl(j3)))=0;
fav(bmzys(bmzyscl(j3)))=inf;
end
bm1=bm(bm~=0);
for j4=1:length(bmzyscl)
lh=length(bm1);
lh1=round(rand*(lh-2)+1);
Xv(j4:)=Xv(lh1:);
end
gbestj=find(fav==min(fav));
gbestXr=Xr(gbestj:);
gbestXv=Xv(gbestj:);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 217 2018-12-21 20:56 待时间窗车辆路径规划模型求解matlab代码\CT.mat
文件 605 2018-12-21 21:09 待时间窗车辆路径规划模型求解matlab代码\DS.mat
文件 2630 2018-12-22 17:21 待时间窗车辆路径规划模型求解matlab代码\eval.m
文件 193 2018-12-21 20:52 待时间窗车辆路径规划模型求解matlab代码\g.mat
文件 4326 2018-12-22 17:20 待时间窗车辆路径规划模型求解matlab代码\main.m
文件 198 2018-12-21 20:54 待时间窗车辆路径规划模型求解matlab代码\ST.mat
目录 0 2019-01-01 13:43 待时间窗车辆路径规划模型求解matlab代码
----------- --------- ---------- ----- ----
8169 7
- 上一篇:步长加速法寻优迭代
- 下一篇:改进灰色马尔科夫模型估测湖北省用水量
相关资源
- 改进灰色马尔科夫模型估测湖北省用
- 步长加速法寻优迭代
- Matlab GUI图像图形基础教程
- 人眼检测、疲劳驾驶检测,MATLAB代码
- 小波神经网络MAtlab工具箱
- 可以运行的GA 算法 ,matlab 编写
- CRC32的FPGA并行实现原理及MATLAB仿真
- DWT小波变换MATLAB
- 读取jiason测高卫星nc文件matlab代码
-
MATLAB_SIMUli
nk系统仿真超级学习手册 - Matlab图像分割法
- MATLAB下求两幅图像的峰值信噪比PSNR
- IHS图像变换融合 matlab
- A* 路径规划算法 MATLAB仿真
- 多智能体一致性仿真程序
- MATLAB图片滑动窗口的程序
- 边界匹配算法MATLAB源程序
- 编码制作二维傅里叶全息图的Matlab程
- 用于形成libsvm训练集的matlab程序
- MATLAB实践GUI成绩管理系统
- JPDA 雷达目标跟踪算法源程序
- Matlab UDP数据通讯工具箱用法
- SAR方位向成像matlab代码及注释
- MIMO OFDM matlab仿真程序
- 风力发电matlab模型
- Z变换和差分方程的Matlab求解
- Chameleon算法Matlab实现
- k-均值k-means的Matlab静态实现
- Matlab中的YALMIP工具箱+教程
- 神经网络算法-matlab源代码
评论
共有 条评论