转载自:https://blog.csdn.net/qq_44776064/article/details/108313037

带时间窗的车辆路径规划问题VRPTW

AlchemyLee 2020-11-07 11:14:55 1881 收藏 27

文章标签: 算法 python

版权

车辆路径规划问题是运筹学中经典的NP难问题,本文将选取其变种问题,结合实际生产中遇到的配送问题进行综合考虑,给出了相应的解决算法。

一、VRP问题

车辆路径规划问题(Vehicle Routing Problem,VRP)一般指的是:对一系列发货点和收货点,组织调用一定的车辆,安排适当的行车路线,使车辆有序地通过它们,在满足指定的约束条件下(例如:货物的需求量与发货量,交发货时间,车辆容量限制,行驶里程限制,行驶时间限制等),力争实现一定的目标(如车辆空驶总里程最短,运输总费用最低,车辆按一定时间到达,使用的车辆数最小等)。

二、VRPTW问题

带时间窗的车辆路径规划问题(Vehicle Routing Problem with Time Window,VRPTW)是在VRP基础上添加配送时间约束条件产生的一个新问题。在这类问题中,给定车辆到达目的地的最早时间和最晚时间,要求车辆必须在规定的时间窗内到达,早于最早时间或晚于最晚时间都要产生额外的惩罚费用。此时,决策如何规划调度车辆使得配送的总费用最小化。

VRP与VRPTW对比:

三、问题描述

本文将要研究的问题参考自文章《Fruit and Vegetable Agricultural Products Logistics Transport Routing Optimization - A Case Study of Qingdao blueberries distribution》。

某果蔬农产品运输配送中心 C0 (Center)。该配送中心有足够的能力满足顾客所有对果蔬农产品数量的要求。同时该配送中心有足够多且完全相同的车辆 J 能够完成配送活动的需要,运输车辆的最大容量为 V(Volume),配送车辆在配送活动过程中均能一次到达,中间不会出现任何阻碍和特殊情况。C={C0 ,C1 ,C2 ……Cn }。其中 C0 代表配送中心。Ci (i=1,2, ……,n)(Consumer)表示有需求的客户的需求数量;n 表示有需求的客户数量。Dik (Distance):表示顾客 Ci 到顾客 Ck 的距离(其中i不等于k);Qdi (Quantity Demanded):表示顾客 Ci 的需求量;Qg (Quality good):表示果蔬农产品刚刚采摘完,完好时的果蔬农产品的质量;[ETi ,LTi ]表示客户 Ci 对某类产品的时间窗约束。

在已知以上的条件情况下,合理安排最优的配送路线使得配送过程中满足所有条件情况下,各个费用之和最少。

四、数学模型

(具体模型参见(三)中文献)




五、算法设计

本文采用禁忌搜索算法,禁忌搜索(Tabu Search,TS)是Glover教授于1986年提出的一种亚启发式随机搜索算法。它从一个初始可行解出发,选择一系列的特定搜索方向作为试探,选择实现让特定的目标函数值变化最多的移动。逐步迭代,以逼近最优解。为了避免陷入局部最优,TS搜索中采用禁忌表的方式,对已经进行的优化过程进行记录和选择,从而指导下一步移动搜索的方向。

a)算法流程

搜索最优解(基于禁忌搜索算法)

Step1:设最优解x*=x,禁忌表为空,k=0,候选解集为S 为空;

Step2:通过邻域动作生成候选解集S;

Step3:进行特设准则判断,计算候选解的评价函数,记最小解为f(x1);

Step4:若f(x1)<f(x*),那么x*=x1;否则更新禁忌表,释放被解禁的操作算子;

Step5:重复Step2-5,直到k满足终止条件;

Step5:输出最优解x*;

b)邻域设计

本文采用的编码方式为节点编号的全排列形式,编码与解码如下所示(以7个节点为例):相应的邻域为节点编号的全排列。

本文中采用的邻域动作为1-opt操作算子,如下图所示:

图a

图b

图a表示初始解为0-2-3-0,0-4-5-0,0-1-7-6-0,车辆数目为3,1opt算子是将随机选取的节点(图中为1号节点)插入另一条车辆路径中,以形成新的解,图b表示邻域操作之后生成的新的解,虚线表示新的路径,新解即为0-2-3-0,0-4-5-1-0,0-7-6-0.

六、实验结果

相关算例与参数均采用原文章算例。节点包括青岛、烟台、东营、泰安、潍坊、日照、枣庄、聊城、济南、淄博、德州、滨州、菏泽等城市。

以某次运行的结果为例,分析该路线各个成本的表格如下所示,禁忌搜索最终解为:[7, 12], [5, 6, 3], [8, 10], [1,4], [2, 11, 9],相关信息如下:

每个车辆的时刻表:

七、可视化分析

为了更清楚展示最终结果的路线图,笔者利用百度地图API爬取了上述城市的经纬度,并利用Folium工具包将上述结果的路线在地图上进行展示。(文中只考虑两点之间的欧几里得距离)

首先需要登陆百度地图官网,申请获得密钥,利用如下代码依次获取相应城市的经纬度;

然后,将禁忌搜索得到的各条路线用不同的颜色在folium上画出来。最终以网页的形式存储。

八、说明事项

文中算例和参数信息均来自文章《Fruit and Vegetable Agricultural Products Logistics Transport Routing Optimization - A Case Study of Qingdao blueberries distribution》。

文中关于VRPTW的禁忌搜索代码只给出了相关算法设计,完整python代码获取请关注微信公众号“不想打电竞的码农不是好球迷”,并留言。

关于可视化实验结果的python代码文中已经全部给出,只需改动相应部分即可使用。

带时间窗的车辆路径规划问题(VRPTW)相关推荐

  1. 【路径规划】基于粒子群算法求解带时间窗的车辆路径规划问题VRPTW模型matlab源码

    1 模型简介 将粒子群算法(PSO)应用于带时间窗车辆路径优化问题(VRPTW),构造车辆路径问题的粒子表达方法,建立了此问题的粒子群算法,并与遗传算法作了比较.实验结果表明,粒子群算法可以快速,有效 ...

  2. 【TWVRP】基于matlab模拟退火算法结合狼群算法求解带时间窗的车辆路径规划问题【含Matlab源码 1075期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  3. 【TWVRP】基于matlab模拟退火算法求解带时间窗的车辆路径规划问题【含Matlab源码 160期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  4. 【TWVRP】基于matlab遗传算法求解多车场开放式多商品带时间窗的车辆路径规划问题【含Matlab源码 1849期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  5. 转 | 禁忌搜索算法(Tabu Search)求解带时间窗的车辆路径规划问题详解(附Java代码)

    以下文章来源于数据魔术师 ,作者周航 欲下载本文相关的代码及算例,请关注公众号[程序猿声],后台回复[TSVRPJAVA]不包括[]即可 前言 大家好呀! 眼看这9102年都快要过去了,小编也是越来越 ...

  6. MATLAB实战系列(二十四)-大规模邻域搜索(LNS)求解带时间窗的车辆路径问题(VRPTW)(附matlab源代码)

    前言 大规模邻域搜索算法(后文统一称为LNS)用MATLAB编写文中的提出的LNS求解带时间窗的车辆路径问题(后文统一称为VRPTW问题)的代码. 本文会带大家详细梳理LNS的基本流程,其实说白了LN ...

  7. 【TWVRP】基于matlab粒子群算法求解带时间窗的车辆路径规划问题(总成本最低)【含Matlab源码 2590期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  8. 【TWVRP】基于matlab蚁群算法求解带时间窗的车辆路径规划(成本最低)【含Matlab源码 2514期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  9. 【VRP问题】基于模拟退火遗传实现带时间窗的车辆路径规划问题

    模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小 ...

  10. 【TWVRP】粒子群算法求解带时间窗的车辆路径规划问题【含Matlab源码 334期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

最新文章

  1. CS研究笔记-缓存 (转)
  2. 高校一副教授2021年全部收入清单来了!对比清华大学教授工资单 ,差距究竟大不大?...
  3. 优麒麟在linux下安装教程,在优麒麟Ubuntu Kylin系统中安装百度网盘Linux版.deb的方法...
  4. 为什么铺天盖地都是Python的广告,它真的是无所不能吗?
  5. 清新BLOG-CMS博客主题源码
  6. php属性赋值吗,php – 设置类中属性的默认值
  7. 翻牌抽奖 php,PHP+jQuery开发简单的翻牌抽奖实例
  8. jar命令指定入口类
  9. L1-019. 谁先倒-PAT团体程序设计天梯赛GPLT
  10. 转 十道海量数据处理面试题与十个方法大总结
  11. cameralink解码编码FPGA代码定制
  12. 【专题5: 硬件设计】 之 【62.案例四:简易空气净化器,完整原理图】
  13. 信息学奥赛NOIP/CSP-J初赛知识点汇总
  14. python办公自动化——批量向excel填充数据
  15. 记录一下blender烘焙光照漫反射贴图
  16. 给博士一年级新生的建议!
  17. 淘宝API upload_img - 上传图片到淘宝
  18. 提高代码质量的那些建议
  19. 0002、Freemarker导出Word文档
  20. 毕设教程:基于嵌入式Linux和Qt实现的视频监控系统(Arm/树莓派/jetson)

热门文章

  1. 四川大学计算机学院2020转专业,四川大学化学学院2020年本科生转专业工作实施方案...
  2. 基于java的客户关系管理系统的设计与实现(论文+毕业设计)(完整源码可演示)
  3. solidworks新建工程图默认单位为毫米
  4. ZZNUOJ_C语言1007:鸡兔同笼(完整代码)
  5. C/C++ typedef用法详解
  6. EasyUI实现用户登录界面
  7. JMP软件在质量管理中的应用简述
  8. 初次使用dcm4che-tool-findscu做查询
  9. Google Guice 快速入门
  10. 饥荒联机建立好服务器找不到,饥荒联机版浏览世界找不到已经创建的世界 | 手游网游页游攻略大全...