车辆路径问题(Vehicle Routing Problem,VRP)

什么是车辆路径问题
  车辆路线问题(VRP)是指一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物,由一个车队负责分送货物,组织适当的行车路线,目标是使得客户的需求得到满足,并能在一定的约束下,达到诸如路程最短、成本最小、耗费时间最少等目的。
  旅行商问题(Traveling Saleman Problem,TSP)是VRP的特例,由于TSP问题是NP-hard问题,因此,VRP也属于NP-hard问题。
  车辆路线问题一直是网络优化问题中最基本的问题之一,由于其应用的广泛性和经济上的重大价值,一直受到国内外学者的广泛关注。车辆路线问题可以描述如下(如图1):
  
  设有一场站(depot),共有M 辆货车,车辆容量为Q,有N位顾客(customer),每位顾客有其需求量D。车辆从场站出发对客户进行配送服务最后返回场站,要求所有顾客都被配送,每位顾客一次配送完成,且不能违反车辆容量的限制,目的是所有车辆路线的总距离最小。车辆路线的实际问题包括配送中心配送、公共汽车路线制定、信件和报纸投递、航空和铁路时间表安排、工业废品收集等。

车辆路径问题的类型
  一般而言车辆路线问题大致可以分为以下三种类型:
  1、相异的单一起点和单一终点。
  2、相同的单一起点和终点。
  3、多个起点和终点。

车辆路径问题的方法
  关于车辆路线问题之学术研究文献众多,也提出了相当多的求解策略与方法,Bodin and Golden(1981)将众多之求解方法归纳成以下七种:
数学解析法(Exact Procedure)
人机互动法(Interactive Optimization)
先分群再排路线(Cluster First–Route Second)
先排路线再分群(Route First–Cluster Second)
节省法或插入法(Saving or Insertion)
改善或交换法(Improvement or Exchanges)
数学规划近似法(Mathematical programming)。

车辆路线问题型态
  在基本车辆路线问题(VRP)的基础上,车辆路线问题在学术研究和实际应用上产生了许多不同的延伸和变化型态,包括:
  时窗限制车辆路线问题(vehicle routing problems with time windows,VRPTW)
  追求最佳服务时间的车辆路线问题(VRPDT)
  多车种车辆路线问题(fleet size and mix vehicle routing problems,FSVRP)
  车辆多次使用的车辆路线问题(vehicle routingproblems with multiple use of vehicle,VRPM)
  考虑收集的车辆路线问题(vehicle routingproblems with backhauls,VRPB)
  随机需求车辆路线问题(vehicle routing problem with stochastic demand,VRPSD)等。

求解方法
  1、求解方法演进
  综合过去有关车辆路线问题的求解方法,可以分为精确算法(exact algorithm)与启发式解法(heuristics),其中精密算法有分支界限法、分支切割法、集合涵盖法等;启发式解法有节约法、模拟退火法、确定性退火法、禁忌搜寻法、基因算法、神经网络、蚂蚁殖民算法等。1995年,Fisher曾将求解车辆路线问题的算法分成三个阶段。第一阶段是从1960年到1970年,属于简单启发式方式,包括有各种局部改善启发式算法和贪婪法(Greedy)等;第二阶段是从1970年到1980年,属于一种以数学规划为主的启发式解法,包括指派法、集合分割法和集合涵盖法;第三阶段是从1990开始至今,属于较新的方法,包括利用严谨启发式方法、人工智能方法等。
  2、启发式算法
  由于VRP是NP-hard问题,难以用精确算发求解,启发式算法是求解车辆运输问题的主要方法,多年来许多学者对车辆运输问题进行了研究,提出了各种各样的启发式方法。车辆运输问题的启发式方法可以分为简单启发式算法、两阶段启发式算法、人工智能方法建立的启发式方法。
  简单启发式方法包括节省法或插入法、路线内/间节点交换法、贪婪法和局部搜索法等方法。节省法或插入法(savings or insertion)是在求解过程中使用节省成本最大的可行方式构造路线,直到无法节省为止。交换法则是依赖其他方法产生一个起始路线,然后以迭代的方式利用交换改善法减少路线距离,直到不能改善为止。1960年,Clarke和Wright首先提出一种启发式节省法(savings methods)来建立车队配送路线。简单启发式方法简单易懂、求解速度快,但只适合求解小型、简单的VRP问题。
  两阶段方法包括先分组后定路线(clusterfirst-route second)和先定路线后分组(routefirst-cluster second)两种启发式策略。前者是先将所有需求点大略分为几个组,然后再对各个组分别进行路线排序;后者则是先将所有的需求点建构成一条路线,再根据车辆的容量将这一路线分割成许多适合的单独路线。
  人工智能方法自1990年来,在解决组合优化问题上显示出强大功能,在各个领域得到充分应用,很多学者也将人工智能引入车辆路线问题的求解中,并构造了大量的基于人工智能的启发式算法。禁忌搜索法(TS)基本上是属于一种人工智能型(AI)的局部搜寻方法,Willard首先将此算法用来求解VRP ,随后亦有许多位学者也发表了求解VRP的TS 算法。西南交通大学的袁庆达等设计了考虑时间窗口和不同车辆类型的禁忌算法,这种算法主要采用GENIUS方法产生初始解,然后禁忌算法对初始解优化。模拟退火方法具有收敛速度快,全局搜索的特点,Osman对VRP的模拟退火算法进行了研究,他提出的模拟退火方法主要适合于解决路线分组。遗传算法具有求解组合优化问题的良好特性,Holland首先采用遗传算法(GA)编码解决VRPTW 问题。现在多数学者采用混合策略,分别采用两种人工智能方法进行路线分组和路线优化。Ombuki提出了用遗传算法进行路线分组,然后用禁忌搜索方法进行路线优化的混合算法。Bent和Van Hentenryck则首先用模拟退火算法将车辆路线的数量最小化,然后用大邻域搜索法(largneighborhood search)将运输费用降到最低。
  总结几种人工智能方法可以看出:
  TS算法所得到的解最接近最优解,但其运算时间也最长,是GA算法的2~3倍,SA算法的近20倍;
  GA算法也能较好的逼近最优解,同时使运算时间大大缩短,所以GA算法能兼顾运算时间和效率两方面,是具有较好的发展前途的方法;
  SA算法求解速度非常快,也能提供一定程度上的优化方案在求解较小规模问题上具有较好效果。

本文转自:车辆路径问题-MBA智库

【数据结构与算法】车辆路径问题(Vehicle Routing Problem,VRP)相关推荐

  1. VRPB(Vehicle Routing Problem Backhauls)说明+pythoncode

    Vehicle Routing Problem Backhauls 模型说明:Vehicle Routing Problem(VRP)+Backhauls VRP:即多个车辆从depot点出发,向客户 ...

  2. Efficiently Solving the Practical Vehicle Routing Problem: A Novel Joint Learning Approach(GCN-NPEC)

    Efficiently Solving the Practical Vehicle Routing Problem: A Novel Joint Learning Approach(GCN-NPEC) ...

  3. LEARN TO DESIGN THE HEURISTICS FOR VEHICLE ROUTING PROBLEM翻译

    摘要 本文提出了一种学习局部搜索启发式方法的方法,该方法可迭代改进车辆路由问题 (VRP) 的解决方案. 局部搜索启发式算法由破坏候选解的破坏算子和将被破坏的解重建为新解的后续修复算子组成. 所提出的 ...

  4. Deep Reinforcement Learning Approach to Solve Dynamic Vehicle Routing Problem with Stochastic Custom

    摘要 在现实的城市物流运作中,路线和任务的变化是对动态事件的响应.为了确保消费者的需求得到满足,规划者需要快速(有时是瞬间)做出这些改变.本文提出了一个带时间窗的动态车辆路径问题,它是一个基于路径的马 ...

  5. Adaptive large neighborhood search Heuristics for the vehicle routing problem with stochastic deman

    这篇论文主要是交通大数据这方面的论文,收录在 Transportation Research Part E 2016,讲的是路径规划问题.

  6. Efficiently Solving the Practical Vehicle Routing Problem: A Novel Joint Learning Approach

    https://blog.csdn.net/yinyu19950811/article/details/111694606

  7. vrp车辆路径问题 php,车辆路径问题

    车辆路径问题(Vehicle Routing Problem,VRP) [编辑] 什么是车辆路径问题 车辆路线问题(VRP)最早是由Dantzig和Ramser于1959年首次提出,它是指一定数量的客 ...

  8. vrp车辆路径问题 php,蚁群算法在车辆路径问题(VRP)中的应用.ppt

    蚁群算法在车辆路径问题(VRP)中的应用 ◆割平面法(Cutting Planes Approach)[6] 割平面法求解VRP问题(A)的基本思想是,在求解相应的不含整数约束的VRP问题(B)上,增 ...

  9. 带时间窗的车辆路径问题的多目标模因算法

    求解带时间窗车辆路径问题的多目标模因算法 1.问题描述和数学建模建立 多目标模因算法 解的构造 自适应局部搜索链 (1)多方向局部搜索策略 (2)强化的局部搜索链技术 (3)自适应局部搜索链过程 (4 ...

  10. vrp车辆路径问题 php,车辆路径问题(VRP)

    [绘芯滑轨屏推荐]车辆路径问题(VRP)一般定义为:对一系列装货点和卸货点,组织适当的行车线路,使车辆有序地通过它们,在满足一定的约束条件(如货物需求量.发送量.交发货时间.车辆容量限制.行驶里程限制 ...

最新文章

  1. SQL操作语句中的注意点
  2. 基于深度学习的Person Re-ID(特征提取)
  3. 【深度学习】当YOLOv5遇见OpenVINO!
  4. 杨辉三角java代码_【LeetCode】118. 杨辉三角(Pascal#x27;s Triangle)解题思路
  5. C++算法一:交换算法
  6. 根据数组中的某个键值大小进行排序,仅支持二维数组
  7. Discuz!NT 在线用户功能简介(转)
  8. 20200530每日一句
  9. 杭电acm题库 1001 统计气球问题
  10. Qt界面显示OpenCV读取的图片
  11. LCP插件创建对等物理接口
  12. 单片机和嵌入式区别?
  13. Eric,基于多搜索引擎的自动问答机器人
  14. 笑坏肚皮的俏皮男女趣语
  15. 【历史上的今天】7 月 5 日:Google 之母出生;同一天诞生的两位图灵奖先驱
  16. GDrive首次现身!
  17. 使用PlatformIO IDE开发Arduino如何安装和调用外部库文件【基于Visual Studio Code平台】
  18. cad移动时捕捉不到基点_CAD中捕捉基点不能用怎么办?就是用fro不行?
  19. 雨听 | 英语学习笔记(五)~作文范文:学生退学
  20. 网络问题 – bitbucket同步数据

热门文章

  1. CenterOS安装
  2. Linux如何一键配置网络ip?
  3. Go语言躲坑经验总结
  4. Unity3D 最实用的插件推荐
  5. Python | 实现双色球选号(educoder)
  6. 如何在Angular中引入AliPlayer
  7. 超级详细的java Collection集合面试题
  8. 【数据结构实验】单链表实验
  9. 峥果智能连接不到服务器,峥果浴霸 ESP8285版本 固件
  10. 关于烧写ESP8285核心板的相关事项