【VRP问题】基于遗传算法求解外卖配送问题附MATLAB代码
【VRP问题】基于遗传算法求解外卖配送问题附MATLAB代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
2 部分代码
function
MeanWaitTime = WaitTime(TotalOrder,NumDeliPerson,DeliPlan,AllType,AllDistance,Velocity,X)
%
顾客等待订单平均评价时间
a
=
1;
b
=
DeliPlan(1);
EachX
=
zeros(TotalOrder,NumDeliPerson);
EachDeliActualTime
=
zeros(TotalOrder,NumDeliPerson); %每个订单的实际时间
EachDeliEvalTime
=
zeros(TotalOrder,NumDeliPerson); %每个订单的评价时间
for
j=1:length(DeliPlan)
EachX(1
:
(b-a+1),j)=X(a:b,1); %记录每位配送员的订单
%计录每位配送员的配送每一单的评价时间
for
k=1:DeliPlan(j)
%判断订单属性
switch
AllType(EachX(k,j))
case
0 %普通食物
PenaltyFactor
=
0;
case
1
PenaltyFactor
=
0.05; %冷藏食物
otherwise
PenaltyFactor
=
0.2; %冷冻食物
end
%计算订单的实际时间和评价时间
if
k==1
EachDeliActualTime(k,j)
=
AllDistance(1,EachX(k,j)+1)/Velocity+0.05; %0.05小时
EachDeliEvalTime(k,j)
=
EachDeliActualTime(k,j)*(1+PenaltyFactor);
else
EachDeliActualTime(k,j)
=
sum(EachDeliActualTime(1:k-1,j))+AllDistance(EachX(k-1,j)+1,EachX(k,j)+1)/Velocity+0.05;
EachDeliEvalTime(k,j)
=
EachDeliActualTime(k,j)*(1+PenaltyFactor);
end
end
if
j==length(DeliPlan)
break
else
a
=
a+DeliPlan(j);
b
=
b+DeliPlan(j+1);
end
end
%求顾客平均等待时间
MeanWaitTime
=
sum(sum(EachDeliEvalTime))/TotalOrder;
end
3 仿真结果
4 参考文献
[1]周屹, 李海龙, 王锐. 遗传算法求解物流配送中带时间窗的VRP问题[J]. 吉林大学学报:理学版, 2008, 46(2):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
