开学季 | 第一课《车辆路径问题与算法》

时间:2022-09-25来源:佚名

请问膜拜技术大牛除了献上膝盖还有什么更好的方式?答:可以把大家的膝盖一起献上,又或者好好学习天天向上,利用碎片化时间多为自己充电,一起参与技术的交流与探讨。——四月,我们迎来了蓝芯科技的开学季,我们将在此分享机器人相关技术知识。今天是开学第一课《车辆路径问题与算法》,欢迎大家留言一起探讨。

开学季 | 第一课《车辆路径问题与算法》


一 、车辆路径问题
在介绍 (Vehicle Routing Problem,VRP)问题前,先介绍它的一个特例,旅行商问题(Traveling Salesman Problem, TSP):有一个旅行商人,要拜访n个城市,每个城市只能访问一次,后返回到原来出发的城市。该商人要选择一条路径,路径的选择目标是旅程短。

开学季 | 第一课《车辆路径问题与算法》

图1 TSP问题

车辆路径问题(Vehicle Routing Problem,VRP)早是由Dantzig和Ramser于1959年*提出,它是指一定数量有一定数量(n个)的客户,各自有不同数量的货物需求(qi),配送中心或车场(depot)向客户提供货物,由一个车队(m辆车)负责分送货物,组织适当的行车路线,目标是使得客户的需求得到满足,并能在一定的约束下(例如车辆存在载荷上限Q、里程长度上限L),达到总旅行成本小、耗费时间少等目的[1, 2]。


图 2 VRP问题

在理解了车辆路径问题后,接下来介绍几个常用的路径搜索算法。

二、路径搜索算法

在路径搜索算法中,常用的算法用Dijkstra算法和 A*算法。这里不对算法原理进行详细介绍,仅简单给出相应的使用示例。给出一个网格图,如图3所示。在该网格图中,仅横、纵向相邻网格可以通过,其中黑色背景网格不可通过。在网各图中,每移动一格会增加一个单位成本。现给定一个起点(46)和终点(49),通过Dijkstra算法和A*算法分别求解短路径。

图 3网格图示例

2.1 Dijkstra算法
该算法的思想是从起点开始,每次新扩展一个距离短的点,并更新从起点到该点的距离与路线。直到拓展到终点,并且往其他方向拓展点的距离不比该点的距离更近时停止。对图 3 的求解过程如图4所示。终的路线是。

图 4 Dijkstra算法拓展过程

2.2 A*算法在Dijkstra中,当前拓展到的点的距离为从起点到当前点的实际短距离。而A* 算法与 Dijkstra相比增加了一个启发项,即在计算当前点的路线距离时,使用从起点到当前点的实际短距离加上从当前拓展的点到终点的估计距离。因此,在实际距离相同时,估计距离近的点优先继续拓展。使用A*算法对图3 的求解结果如图5 所示。终的路线是


图 5 A*算法拓展过程示例

2.3 多访问点的路径搜索算法
前面提到的Dijkstra和 A*算法主要是针对两个点(起点、终点)寻找一条短路径,但是对于多访问点找短路的问题,比如在文初提到的TSP问题,就不适用了。我们开发了一个快速求解的算法。

我们首先使用 Dijkstra算法找出所有两点之间的短路并存储相应的路线信息。然后针对多访问点寻短路问题,分两个阶段进行搜索。
第一阶段:基于动态规划(DP)求解 TSP的框架,控制初始搜索步长快速得出初始解。
第二阶段:对第一阶段得到的初始解使用变邻域搜索(VND)进行优化。


假设我们有1个出发点(编号为)和6个访问点(编号为),车辆从出发,需要完成对所有访问点的访问。如果终让车辆停留在zui后一个访问点的访问点,这就是一个开环的路径,如果要求车辆必须返回出发地,则是闭环的路径。这里假设为开环路径,即认为路径结束的标志是完成所有任务中所有访问点的配货。

因为一共有7个点(1个出发点加6个访问点),所以搜索划分为6个step,方向为从右至左(从终点至起点),如图6所示。

图 6基于 DP框架的step示例

计算过程为,以zui后一列的点为终点,搜索第一个弧(arc),即step(1)的路径,然后再增加一个 arc,即在step(1)的基础上搜索step(2)的路径,以此类推。假设以为终点进行搜索,搜索中的部分过程如图7所示。终搜索完step(6) 时会搜索出完整的路线。需要注意的一点是,一旦发现某条路线不是可行解时(比如一个访问点在路线中多次出现),后面可以不再基于此结果进行搜索。

图7基于 DP框架的部分搜索过程示例

我们这里控制了初始搜索步长len,意为从step(1) 到step(len) 搜索出的路径是按照 DP的方式搜索到的当前精确合适的路线,而从step(len 1)开始,只记录该step下的n条路径中合适的结果。因此,当len的值越大,终搜索的结果越接近精确合适解,但是相应的求解时间也会越长。假设通过该阶段终搜索出的合适结果为,接下来将基于此结果执行变邻域搜索操作。由于是规定的出发点需要保持在输出路径的首先位置,因此我们对序列{2,6,1,5,4,3}进行邻域搜索。VND的框架如图8 所示。

图 8 VND算法框架

在邻域搜索中,常用的变换策略有Reinsert、Exchange和Reverse,如图9所示。


图 9 三种常见的邻域变换策略

使用VND不断地对序列变换得到新的序列,并求新序列的路径成本。需要注意的是,求路径成本时要将出发点考虑在内,即将出发点添加到序列前,求该完整路径的旅行成本。经过VND过程的处理,输出的路线即作为终规划的路线,例如一个可能的终输出路径果是,需要注意的是,这里的节点相当于是“关键节点”,即只包含的出发点和需要进行配货操作的访问点。而相邻“关键节点”之间的路线,则是根据前述的 Dijkstra计算的两点之间的路线进行行驶。今天的介绍就到这里,希望小伙伴们能对路径规划问题和算法有所了解和收获!

本文为杭州蓝芯科技有限公司原创文章,转载请注明出处

    相关阅读

    避难硐室防护密闭门与避难硐室防爆隔离门相同点分析

    避难硐室防护密闭门与避难硐室防爆隔离门相同点分析 避难硐室防护密闭门与避难硐室防爆隔离门紧密的连接在一起,两个截然不同的硐室防护门有哪些共同点呢?避难硐室门煤矿用量居...
    2022-09-25

    立式车床常见问题解答

    随着科技的发展,立式车床也越来越受用户的喜爱,下面我们一起来看看立式车床常见的问题吧! 一、立式车床的应用范围? 立式车床属于大型机械设备,用于加工径向尺寸大而轴向尺...
    2021-07-20

    充电桩需要做哪些检测

    充电桩检测是一项重要的工作,它能确保充电桩的安全、可靠性和有效性。为了确保充电桩的质量,必须对其进行检测。 一般来说,对于充电桩而言,应该进行以下几方面的检测: 1...
    2023-04-13
    充电桩需要做哪些检测

    PLC数显控制柜有哪些优点?

    PLC数显控制柜的优势及其应用 PLC数显控制柜是一种基于PLC技术的智能控制装置,它具有多种优点,比如可靠性高,智能性强,易操作,稳定性好等。由于它拥有多种优势,因此受到了广...
    2023-03-20
    PLC数显控制柜有哪些优点?

    使用循环水管道缓蚀阻垢剂会不会对管道造成损害

    使用循环水管道缓蚀阻垢剂会不会对管道造成损害?我们都知道,一般家里的钢铁等金属制品长时间放置在潮湿的空气中会腐蚀生锈,造成不良影响。工业生产中,循环水管道不仅要接...
    2022-09-25
    使用循环水管道缓蚀阻垢剂会不会对管道造成损害

    热销商品

    加厚abs安全帽电工建筑工地程施工领导监理透气防砸头盔可印字V型

    这款加厚ABS安全帽专为电工、建筑工地施工人员、领导及监理设计,采用高强度ABS工程塑料,抗冲击、防砸性能优异,有效保障头部安全。帽体加厚设计,增强耐用性与防护等级...
    5.8

    水口钳高硬度模型剪钳电子钳工业级口水剪斜嘴钳偏口斜口专用钳子

    水口钳高硬度模型剪钳是一款工业级精密工具,专为电子、模型制作及精细作业设计。采用优质高碳钢材质,经热处理工艺打造,具备卓越的硬度和耐磨性,可轻松剪切金属引脚、...
    4.8

    170电子剪钳II 如意斜口钳 工业斜嘴钳水口钳 模型剪塑胶钳尖嘴钳

    170电子剪钳II如意斜口钳是一款专业级精密工具,集工业斜嘴钳、水口钳、模型剪、塑胶钳与尖嘴钳功能于一体,适用于电子维修、模型制作、手工艺及精密作业。其采用优...
    4.5

    安全帽国标工地加厚施工领导透气安全头盔建筑工程监理免费印字

    本款安全帽严格遵循国家GB 2811-2019标准,专为建筑工程、工地施工及监理人员设计。采用高强度ABS工程塑料,加厚壳体有效抗冲击,保障头部安全。帽体轻盈透气,内置可调...
    10

    包邮三角型简易螺丝刀三角十字螺丝刀螺丝批改锥起子五金工具5mm

    这款5mm三角型简易螺丝刀,专为拧紧或拆卸三角形螺丝设计,适用于电子维修、家电维护及精密仪器装配等场景。采用优质合金钢材质,刀头硬度高、耐磨损,确保长久使用不变...
    3.64

    网站栏目