VRPTW算法性能评测来啦!

累计运行6135432秒,只为做出更全面的评测。

往期优质资源


     经过一年多的创作,目前已经成熟的代码列举如下,如有需求可私信联系 ,原创不宜,有偿获取。
VRP问题GAACOALNSDEDPSOQDPSOTSSA
CVRP
VRPTW
MDVRP
MDHVRP
MDHVRPTW
SDVRP
SDVRPTW

     对于VRPTW系列算法,大家最关心的问题可归结为以下两点:

  • 哪个算法性能最好?
  • 算法的最优参数如何设置?

     今天,小编将通过累计运行 【6135432秒≈102257分钟≈1704小时≈71天】 的实验来回答以上问题。也许你只需要花费1分钟完成本文的阅读,但只要能帮助到大家就值得!

1. VRPTW标准数据集

     本次测评采用的是Transportation Optimization Portal (TOP)网站提供的数据集。
在这里插入图片描述
     小编选取了C101、C105、C201、C205、R101、R105、RC101、RC201。参与测评的8个数据集的最优解信息如下。
在这里插入图片描述
     以上8组数据集中,C101-C105为一组,C201-C205为一组,R101-R105为一组,RC101-RC201为一组,其需求点的坐标相同,但时间窗不同。具体数据分布如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上数据中C101-C105,C201-C205,R101-R105,RC101-RC201两两为一组,需求点的坐标相同,但时间窗不同。

2 实验准备

2.1 计算机配置

     本次采用Python3.8编程实现,电脑配置为 Intel® Core™ i7-9700F CPU @ 3.00GHz 3.00 GHz,24G内存。

2.2 调参方法

     继续采用贝叶斯调参方法,具体实现见上一篇帖子,这里不再赘述。

2.3 参数设定

     不同算法在不同算例上的参数搜索空间基本一样,但由于ALNS算法在大规模算例上的求解较为耗时,因此部分算例上做了缩小,这里仅给出其一种搜索空间。

在这里插入图片描述
在这里插入图片描述

2.4 实验方法

     由于元启发式算法具有很大的随机性,相同的参数设置也可能跑出不同的结果,因此设定每组“算法-参数-算例”组合均运行3次,取最好的一组用于反馈贝叶斯。
     为了加快进度,早一点分享给大家,这里同时运行三组代码,因此可能会对解的质量及求解时间产生干扰。

小编实现的VRPTW代码对于时间窗的要求是:车辆必须在时间窗内到达且完成服务,即节点最早开始时刻+节点服务时长 <= 节点最晚结束时刻。但目前普遍数据集对于时间窗的要求是:车辆在时间窗内到达即可,因此在进行代码测试时,对时间窗约束进行了微调。

3 实验结果

3.1 最优解统计

3.1.1 总体求解情况:目标函数值

     可以看出,ALNS算法在各个数据集上的表现均是最佳的,且与最优解的gap保持在2.7%~9.5%之间。ACO算法的表现要差一些,GA与DPSO、DE的表现大致在同一梯队,QDPSO与SA、TS的表现在同一梯队。
在这里插入图片描述

3.1.2 各数据集上的算法性能对比

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 调参时间统计

3.2.1 总体求解情况:求解时间

由于实验耗时工作量大、耗时长,因此实验期间使用电脑同步办公,因此不同实验不同实验受干扰程度不同,各实验测评时间仅供参考。

注意:测评时间包括算法求解过程和贝叶斯调参过程,此外每组参数组合需独立运行3次。因此测评时间不等于算法单次运行时间。

在这里插入图片描述

可以看出,ALNS算法需要消耗大量的时间资源来逼近最优解;SA和TS算法耗时最短,但找到的局部最优解的质量最差;ACO和DE耗时基本相当。

3.2.2 各数据集上的运算时间对比

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 最优参数统计

3.3.1 ACO

在这里插入图片描述

3.3.2 ALNS

在这里插入图片描述
在这里插入图片描述

3.3.3 DE

在这里插入图片描述

3.3.4 DPSO

在这里插入图片描述

3.3.5 GA

在这里插入图片描述

3.3.6 QDPSO

在这里插入图片描述

3.3.7 SA

在这里插入图片描述

3.3.8 TS

在这里插入图片描述

3.4 最优解路径

3.4.1 C101数据集

在这里插入图片描述

3.4.1 C105数据集

在这里插入图片描述

3.4.1 C201数据集

在这里插入图片描述

3.4.1 C205数据集

在这里插入图片描述

3.4.1 R101数据集

在这里插入图片描述

3.4.1 R105数据集

在这里插入图片描述

3.4.1 R101数据集

在这里插入图片描述

3.4.1 R101数据集

在这里插入图片描述

4 需求调查

     大家还想了解哪类VRP扩展问题的优化算法,欢迎留言。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VRPTW(Vehicle Routing Problem with Time Windows,具有时间窗口的车辆路径问题)是指在一定时间窗口内,将一批配送点分配给一定数量的车辆,并在满足时间窗口的同时,使得总配送成本最小化的问题。 遗传算法是一种常用的优化算法,它通过模拟生物进化的过程,通过选择、交叉和变异等操作,逐步优化问题的解。在解决VRPTW问题时,可以运用遗传算法来找到最优的车辆路径方案。 Matlab是一种常用的科学计算和数据分析软件,它提供了一系列工具和函数,便于进行矩阵运算和数值计算。在编写VRPTW遗传算法时,可以使用Matlab的编程环境来实现算法的各个步骤,包括问题建模、适应度函数定义、选择、交叉和变异等操作的实现,以及结果的可视化和分析等。 具体实现VRPTW遗传算法的步骤包括: 1. 定义问题:将VRPTW问题转化为遗传算法的优化问题,确定目标函数(例如最小化总配送成本)和约束条件(例如时间窗口)。 2. 建立适应度函数:根据目标函数定义适应度函数,用于评估每个个体的优劣。 3. 初始化种群:随机生成一定数量的个体,表示不同的解决方案。 4. 选择操作:根据适应度函数选择优秀个体,用于繁殖下一代。 5. 交叉操作:对选出的个体进行交叉操作,产生新的解决方案。 6. 变异操作:对交叉后的个体进行变异操作,增加种群的多样性。 7. 更新种群:根据适应度函数对变异后的个体进行评估,并更新种群。 8. 终止条件判断:根据预设的终止条件(例如迭代次数达到一定阈值)判断是否终止算法。 9. 结果分析:根据最优解进行结果的可视化和分析,评估算法性能和效果。 通过使用Matlab的相关函数和工具,结合上述步骤,可以实现VRPTW遗传算法的开发和应用,并得到一种或多种可行的车辆路径方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Better.C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值