掌桥专利:专业的专利平台
掌桥专利
首页

一种改进的插队算法在路径规划中的应用方法

文献发布时间:2024-04-18 20:02:18


一种改进的插队算法在路径规划中的应用方法

技术领域

本发明属于路径规划算法领域,涉及一种对基于插队算法的路径规划算法进行优化的技术,具体涉及一种改进的插队算法在路径规划中的应用方法,旨在提高路径规划的效率和准确性。

背景技术

随着移动互联网的迅猛发展,时空众包相关的应用层出不穷,例如快递、出行、配送等。在这类平台中,路径规划算法帮助优化任务路线安排,确保任务准确高效完成,是其中一个核心功能。

然而,现有的路径规划算法在时空众包平台上仍存在一些局限。首先,大多数传统的路径规划算法对于一个任务是基于严格的截止时间进行计算的,这意味着,如果一个任务没有在规定截止时间之前完成,算法将视其为失效。而在实际场景中由于道路网络和交通状况实时变化,平台往往给定时空众包任务一个宽松的截止时间约定。这使得传统算法无法精准模拟实际场景,算法的准确性难以保证。其次,现有的路径规划算法往往只适用于小规模的任务数量,在处理大规模数据和复杂网络时,往往面临计算效率低下的问题。这是因为许多现有算法计算复杂度高、内存消耗大、对于大数据处理的鲁棒性较差,需要耗费大量的时间和计算资源来处理大规模的任务,当任务数量急剧增加时,算法的效率和准确性会受到严重影响。这使得算法在实际应用中受到限制,无法满足实时性、准确性、高效性的需求。

发明内容

本发明一种改进的插队算法在路径规划中的应用方法,首先引入了松弛截止时间约束的定义,解决了现有算法无法精准模拟实际场景的问题;其次提出了基于绕路距离递减的剪枝策略和基于堆的加速技术,达到缩减计算规模和计算复杂性的目的,使动态共乘系统中的路径规划算子具有更高的效率和性能。

一种改进的插队算法在路径规划中的应用方法,具体步骤如下:

步骤一,定义一条已规划的路径S,对于一个待插入路径S中的任务,已知其起点o

已规划的路径S=

对于待插入路径的任务,初始化两个最大堆H

步骤二,从后向前遍历整条路径S,通过两重嵌套循环枚举起点和终点的插入位置。

首先,计算各个节点的容量松弛量slack_cap,即当前节点的司机车上的空位数量,如果没有空位,则跳过该节点,继续向前遍历;然后,对于有空位节点,进行两层嵌套循环;

两层嵌套循环具体为:第一层循环枚举终点的插入位置,第二层循环枚举起点的插入位置,且起点的插入位置始终在终点的插入位置之前。在每个循环中,使用一个指针来从后向前遍历起点或终点。

步骤三,在从后向前遍历的过程中,对每一个终点的插入位置对应的枚举起点设计绕路距离递减的剪枝策略。

剪枝策略具体来说,假设将起点插到

步骤四,对剪枝后的插入方案,设计基于堆的数据结构,存储后续被影响节点的松弛截止时间。

具体来说,起点插入到节点l

步骤4.1:初始化两个最大堆H

松弛截止时间=严格截止时间-预计到达时间

步骤4.2:在起点插入到l

步骤4.3:在终点插入到l

其中,所述堆顶元素即为后续节点中松弛截止时间最大的节点。

步骤五,对于当前枚举的起点和终点插入位置,遍历每条路径,根据相应松弛截止时间计算平台总收益的减损;

利用最大堆计算优化目标:即当前插入位置所造成的绕路开销det是否引起后续订单的延迟,如果延迟,则根据其松弛截止时间计算平台总收益的减损。

对于后续订单,根据其松弛截止时间的区间,划分为三种类型:

(a)松弛截止时间在(-∞,0]区间(L1):对于这类订单,收益减损为det;

(b)松弛截止时间在(0,cnt)区间(L2):对于这类订单,收益减损为det-s

假设一个最大堆H,堆中维护在此节点之后各个节点松弛截止时间s

(c)松弛截止时间在[cnt,+∞)区间(L3):对于这类订单,收益减损为0;

步骤六,选择平台总收益的减损最小化的枚举路径,并将任务的起点终点插入路径S的对应位置。

本发明的优点及其有益效果在于:

(1)本发明通过引入绕路距离递减的剪枝策略,有效地减少插入位置后的相关计算开销,从而提高路径规划算法的效率和性能。

(2)本发明引入了基于堆的数据结构来存储后续被影响节点的松弛截止时间,并通过分别维护两个最大堆、动态更新堆的内容以及高效的时间复杂度,实现了对后续节点信息的快速维护和管理,有助于提高路径规划算法的效率和准确性。

附图说明

图1为本发明中改进的插队算法的示意图;

图2为本发明改进的插队算法在路径规划中的应用方法的流程图;

图3为本发明中剪枝策略的原理示意图;

图4为本发明中基于最大堆的加速计算的原理示意图。

具体实施方式

本发明提出的改进的插队算法在路径规划中的应用方法,其中改进的插队算法由两个模块枚举-择优组成,在择优模块,引入基于绕路距离递减的剪枝算法和基于最大堆的快速计算方法提升算法计算效率。其基本思想是,当有新任务来临时,通过枚举-择优的方式,将其插入现有规划好的路径中。其中枚举即是将新任务的起点和终点通过遍历路径的方式,尝试插入路径中的各个节点;择优即针对每一种枚举情况,计算优化目标,并选择最优方案。

本发明的实施平台是使用C++构建的模拟器。如图1所示,模拟器加载任务数据,模拟司机和乘客的行为(即订单到达、司机接单送单、乘客拒单等),对于每个订单,都会将其与可配对司机组合,调用一种改进的插队算法在路径规划中的应用及优化技术,输入为已规划好路径的司机和订单组成的起点终点,本发明依次执行初始化、枚举、剪枝、构建更新最大堆、计算和插入六个步骤之后向模拟器输出此订单的路径规划结果。

一种改进的插队算法在路径规划中的应用方法,如图2所示,具体步骤如下:

步骤1:定义一条已规划的路径S,对于一个待插入路径S中的任务,已知其起点o

已规划的路径S=

对于待插入路径的任务,初始化两个最大堆H

步骤2:从后向前遍历整条路径S,通过两重嵌套循环枚举起点和终点的插入位置。

具体来说,使用两层嵌套循环,第一层循环枚举终点的插入位置,第二层循环枚举起点的插入位置,且起点的插入位置始终在终点的插入位置之前。在每个循环中,使用一个指针来从后向前遍历起点或终点。

步骤3:在从后向前遍历的过程中,对每一个终点的插入位置对应的枚举起点,设计绕路距离递减的剪枝策略。

如图3所示,剪枝策略具体来说,假设将起点插到

本发明引入了绕路距离的概念来衡量插入位置的影响。绕路距离定义为经过插入点的路径总长度与直线距离之差,用于评估插入位置的优劣。根据观察到的现象,如果在规划路径中的某个点插入了起点或终点,但这次插入所导致的绕路距离要长于之前在规划路径中的另一个位置的插入所导致的绕路距离,那么就可以推断更长的绕路距离会导致更少的总收益。因此,可以利用这一观察,通过比较当前节点的绕路距离与后续节点的绕路距离,来决定是否需要剪枝当前节点,以减少搜索空间。

步骤4:在从后向前遍历的过程中,对剪枝后的插入方案,设计基于堆的数据结构,存储后续被影响节点的松弛截止时间(即严格截止时间-预计到达时间)。

如图4所示,具体来说,起点插入到l

步骤4.1:初始化两个最大堆H

步骤4.2:在起点插入到l

步骤4.3:在终点插入到l

引入最大堆数据结构:传统的路径规划算法通常使用数组等数据结构来存储节点和相关信息。而在该步骤中,引入了基于堆的数据结构,即最大堆,来存储后续被影响节点的松弛截止时间。最大堆具有自动维护最大值的特性,可以快速获取并更新堆顶元素,从而高效地管理后续节点的松弛截止时间。

分别维护两个最大堆:在路径规划过程中,起点和终点分别插入到路径的不同位置,对后续节点的影响也是不同的。为了准确地维护后续节点的松弛截止时间,步骤4引入了两个最大堆H

动态更新堆的内容:在起点插入到l

基于堆的数据结构具有高效的插入和弹出操作,其时间复杂度为O(log(n)),其中n是堆的大小。通过使用最大堆来存储后续节点的松弛截止时间,可以在遍历过程中快速更新和维护后续节点的信息,而不需要遍历整个节点集合。这样可以提高路径规划算法的执行效率。

步骤5:对于当前枚举的起点和终点插入位置,遍历整条路径,计算此时的优化目标和约束条件;

(1)利用最大堆计算优化目标:即当前插入位置所造成的绕路开销det是否引起后续订单的延迟,如果延迟,则根据其松弛截止时间计算平台总收益的减损;

对于后续订单,根据其松弛截止时间的区间,划分为三种类型:

(d)松弛截止时间在(-∞,0]区间(L1):对于这类订单,收益减损为det;

(e)松弛截止时间在(0,det)区间(L2):对于这类订单,收益减损为det-s

(f)松弛截止时间在[det,+∞)区间(L3):对于这类订单,收益减损为0;

因此,当计算松弛截止时间在区间L2内订单的收益减损时,需要借用最大堆的数据结构区间求和。假设一个最大堆H,堆中维护在此节点之后各个节点松弛截止时间s

(2)计算约束条件:整条路径是否符合松弛截止时间的约束、司机的容量约束和订单先后顺序的约束。

松弛截止时间约束:整条路径一旦有节点超时,平台总收益需有一定减损。该约束条件一般判断为满足,其对应计算在上一步(1)中已完成;

司机容量约束:对于每一个司机,其容量为一个固定值,任意时刻同时载乘的订单数目不超过这一容量。采用动态规划的方式预先计算各个节点的容量松弛量,在步骤二枚举插入点的过程中检查这一松弛量是否足以满足此订单插入,即:对于路径的每个节点,都可以预先计算一个数组slack_cap(当前节点司机车上还有几个空位),如果节点l

订单先后顺序约束:对于任意一个订单,其对应的共乘司机需要先到达其起点,再到达其终点。插队算法枚举的情况(终点在起点之后)天然性地满足这一条件。假设路径S中的每个订单,都是先到它的起点,再到它的终点。那么,对于新到达的订单r,只要枚举r的起点插入r的终点前即可。

步骤6:在满足约束条件的路径中选择优化目标(平台总收益)最大化的枚举路径,并将任务的起点终点插入对应位置。

本发明将改进的插队算法应用在路径规划中,第一引入了绕路距离的概念,并通过比较当前节点的绕路距离与后续节点的绕路距离来决定是否进行剪枝操作。这一结构特点带来以下优点:减少搜索空间、提升计算效率。第二是引入基于堆的数据结构,来存储后续被影响节点的松弛截止时间。这一结构特点带来以下优点:降低计算复杂度、提升计算效率。

相关技术
  • 一种自适应蚁群算法在移动机器人路径规划中的应用方法
  • 一种自适应蚁群算法在移动机器人路径规划中的应用方法
技术分类

06120116582281