CN110975291B - 一种路径提取方法及*** - Google Patents
一种路径提取方法及*** Download PDFInfo
- Publication number
- CN110975291B CN110975291B CN201911139052.6A CN201911139052A CN110975291B CN 110975291 B CN110975291 B CN 110975291B CN 201911139052 A CN201911139052 A CN 201911139052A CN 110975291 B CN110975291 B CN 110975291B
- Authority
- CN
- China
- Prior art keywords
- node
- path
- point
- jump
- starting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 21
- 238000007781 pre-processing Methods 0.000 claims abstract description 20
- 239000002131 composite material Substances 0.000 claims abstract description 5
- 239000003999 initiator Substances 0.000 claims description 27
- 238000013138 pruning Methods 0.000 claims description 26
- 230000009191 jumping Effects 0.000 claims description 14
- 239000002243 precursor Substances 0.000 claims description 7
- 238000007906 compression Methods 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 6
- 230000004888 barrier function Effects 0.000 claims description 2
- 238000012916 structural analysis Methods 0.000 claims description 2
- 230000001902 propagating effect Effects 0.000 claims 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 210000003027 ear inner Anatomy 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012812 general test Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000005155 neural progenitor cell Anatomy 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/343—Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种路径提取方法及***,该方法包括:以均匀网格地图中塌缩跳点的网格点所在位置进行预处理;获取起点和终点位置;在起点与终点之间需要寻找最优复合主序路径时,在连接过程中生成起始子节点;在路径提取过程中基于压缩模式数据库读取从每一起始子节点到达终点的最优方向及距离,并对不同路径间的相同部分进行融合,获得起点经每一起始子节点到达终点的唯一路径;对起点经所有起始子节点到达终点的路径距离进行比较,获得起点与终点之间的最优路径并存储。用于解决现有技术中在预处理过程中信息被压缩导致丢失的情况下搜索速度受限问题,实现路径规划速度大幅提升。
Description
技术领域
本发明涉及人工智能路径规划技术领域,具体是一种压缩模式数据库的路径提取方法及***。
背景技术
在人工智能领域,机器人技术和计算机游戏智能被视为建模人类在复杂环境下的感知、规划、决策和行动能力的综合领域。近年来,各类型机器人在生产生活中广泛使用,以及学界与工业界对计算机游戏智能的重视程度逐渐提高,典型的例子包括DeepMind团队开发的StarCraft游戏AI和OpenAI公司开发的Dota游戏AI等。作为机器人和游戏非玩家角色(NPC,Non-Player Characters)各方面技术的基础,基于均匀网格(uniform grids)地图的最短路径规划技术随着GPPC(Grid-based Path Planning Competitions)竞赛的举行和工业界对典型地图测试集的开放,在近十年也取得了显著的进步。作为一个基础服务,在人工智能中经典的启发式搜索问题求解技术、地图空间拓扑结构提取技术领域中,很多场景中有限的计算资源需要同时应答大量智能体的路径规划请求,因此规划技术的快速响应能力最受关注。
其中最为著名的一类算法称为跳点搜索(JPS,Jump Point Search),主要由澳大利亚莫纳什大学的Daniel Harabor博士提出(Harabor D,Grastien A.Online GraphPruning for Pathfinding on Grid Maps[C]//National Conference on ArtificialIntelligence.2011:1114–1119.Harabor D,Grastien A.Improving Jump Point Search[C]//International Conference on Automated Planning and Scheduling.2014.)。当智能体在网格地图上移动时,JPS在相同起点和终点、相等长度的对称路径中,将对角方向移动优先路径确定为主要偏序(diagonal-first canonical ordering),将不满足该原则的其他所有路径剔除在搜索空间之外。理论证明,任何可通行的两个位置之间都存在至少一条满足该规则的最短路径。如图1所示,被该偏序规则剔除的子节点(灰色所示)通常可以由当前节点的父节点从更短的路径或长度相同但对角移动出现更早的路径到达。通常,这样的剪枝递归使用可以使某一节点的子节点仅剩1个或0个,不仅降低了正在被扩展节点的分支因子,也减小了子节点的分支因子。
另外,JPS应用A*算法时并不将中间节点加入Open表中,除非遇到图1(c)中需要将前进方向向其他分支扩展的节点时,才将这样的节点加入Open表中以待扩展。中间节点都将被跳过,因此图1(c)中的特殊节点称为“跳点”。
JPS算法仅需在线处理,不涉及地图预处理,相较单纯的A*算法速度提高了一个数量级。但它的一个主要缺点是扩展节点时需要进行大量的逐行逐列的中间节点扫描和判断。基于此,JPS+在离线阶段为每一可通行节点的每一可通行方向计算和存储与通过该方向可到达的第一个跳点或障碍物的距离。这一预存信息进一步提高了搜索速度。进一步地,JPS+(P)在搜索时采用中转剪枝(intermediate pruning)技术,将对角跳点视为过渡节点不加入Open表进行处理,相比JPS+一定程度降低了Open表操作次数。
通过与压缩模式数据库(CPD,Compressed Pattern Databases)技术的结合,JPS的性能得到了进一步大幅度的提升。CPD技术是用空间换时间的基于预处理的路径规划技术,它在离线阶段通过以每个可通行节点为源发起Dijkstra搜索,为当前节点找到能够以最短路径到达其他所有连通节点的出边(outgoing edge)。若以矩阵M表示这一预处理得到的数据,则M[i,j]表示从第i个节点到达第j个节点的最短路径上源于节点i的第一边。为压缩这一矩阵的存储空间,SRC(Single-Row Compression)算法对其每一行(对应每一个源节点)采用RLE(Run-Length Encoding)方法进行数据压缩,一般可得到300-400的压缩比(Strasser B,Harabor D,Botea A.Fast First-Move Queries through Run-LengthEncoding[C]//the Seventh Annual Symposium on Combinatorial Search.2014(SoCS):157–165.Strasser B,Botea A,Harabor D.Compressing Optimal Paths with RunLength Encoding[J].Journal of Artificial Intelligence Research,2015,54:593–629.)。在线进行路径规划时,SRC则在从起点开始的每一个当前节点向CPD中检索其到达给定目标点的最佳移动,从而迭代得到完整的最短路径。其中的每一次检索都需要在对应行压缩数据中进行二分查找。SRC因为完全不需要进行A*算法的在线搜索,因此成为GPPC-2014比赛最快的算法之一。
JPS与SRC结合产生了Topping(Two-Oracle Path PlannING)算法,原理是仅在关键节点上(如起点、跳点)上进行CPD的二分查找得到最优方向,而同时访问JPS的距离表得到对应方向可以重复执行的步数,从而免去了在中间节点上多余的二分查询(Salvetti M,Botea A,Gerevini A,et al.Two-Oracle Optimal Path Planning on Grid Maps[C]//International Conference on Automated Planning and Scheduling.2018(Sturtevant2012):227–231.)。因为对JPS距离表的访问是常数级的,Topping算法相较SRC提高了数倍的路径规划效率。需要注意地是,与SRC不同,预处理阶段的Dijkstra搜索采用了与JPS一致的diagonal-first偏序,保证两者结合的最大效益,即能将CPD查询的次数降到最低。这一基于离线预先计算的剪枝技术为JPS+和SRC算法分别提升了一个数量级左右和数倍的性能提升,使其能够在经典测试集下取得微秒级别的搜索速度。然而,这一显著进步的代价则是必须在预处理阶段投入大量的CPU时间和存储空间。
若要降低这一代价,则仅需对跳点位置进行预处理即可。这一处理将造成算法预处理信息一定程度上的丢失,主要在于若起点是普通节点而非跳点,则算法无法直接检索起点到终点最优路径上的第一步移动方向,因此无法采用迭代检索的方式。然而单纯地按照JPS模式的搜索将使Topping算法的搜索速度受到非常显著的影响。
发明内容
本发明提供一种基于压缩模式数据库剪枝的路径提取方法及***,用于克服现有技术在预处理过程中信息被压缩导致丢失的情况下搜索速度受限等缺陷,在对起点进行扩展并探索的过程中通过对相同路径进行融合与共享,实现局部探索,从而省去了对相同路径的重复探索和提取,进而实现了相对于现有技术实现搜索速度大幅提升。
为实现上述目的,本发明提供一种基于压缩模式数据库的路径提取方法,包括:
以均匀网格地图进中塌缩跳点的网格点所在位置进行预处理,生成压缩模式数据库;
获取起点和终点位置;
在起点与终点之间需要寻找最优复合主序路径时,在连接过程中生成起始子节点;
在路径提取过程中基于压缩模式数据库读取从每一起始子节点到达终点的最优方向及距离,并提取获得起点经每一起始子节点到达终点的唯一路径;
对起点经所有起始子节点到达终点的路径中的重叠部分进行融合,避免重复提取,最终通过不同路径间的比较获得起点与终点之间的最优路径并存储。
为实现上述目的,本发明还提供一种基于压缩模式数据库的路径提取***,包括存储器和处理器,所述存储器存储有基于模式数据库的路径提取程序,在所述处理器运行所述基于模式数据库的路径提取程序时执行所述基于模式数据库的路径提取方法的步骤。
本发明提供的基于压缩模式数据库的路径提取方法及***,本发明Topping+PEx(Path Extraction)算法充分利用跳点位置上在预处理阶段存下的模式数据库,首先在连接过程中找到起点的子节点,为提高路径提取效率,也可以对起点的子节点(生成起始子节点时)进行剪枝,减小可待探索的节点数量。在此基础上,按照Topping的方式对起点的每一子节点进行路径提取,都可得到一条到达目标点的路径。在此过程中,对不同路径间的相同部分(又称子路subpath)进行融合,从而降低搜索代价,即可得到唯一的一条最短路径。最后通过对起点经不同起始子节点到达终点的路径长度进行比较,选择其中最短的一条即为最优路径。本发明将从充分利用稀疏的预处理数据的角度解决现有技术中搜索速度慢的问题,进行路径规划速度的提升。
附图说明
图1(a)为现有JPS技术中非跳点情景下对角移动时的剪枝示意图;
图1(b)为现有JPS技术中非跳点情景下轴向移动时的剪枝示意图;
图1(c)为现有JPS技术中在跳点位置处的剪枝示意图;
图2(a)为本发明实施例一提供的路径规划方法中轴向跳点的示意图;
图2(b)为本发明实施例一提供的路径规划方法中对角跳点的示意图;
图3为实施例一中主序路径分类示意图;
图4为实施例一中CBD进行路径规划的主要算法流程图;
图5为实施例一中Topping+PEx进行路径提取的主要流程;
图6为实施例一中对相同路径进行检测的流程图;
图7为实施例一中连接过程生成起始子节点时的剪枝示例图;
图8为实施例一中一种场景下路径提取过程的示例图;
图9为实施例一中另一种场景下路径提取过程的示例图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
如图1所示,本发明实施例提供一种基于压缩模式数据库的路径提取方法,包括:
S1以均匀网格地图进中塌缩跳点的网格点所在位置进行预处理,生成压缩模式数据库;
跳点包括轴向跳点和对角跳点,定义如下:
轴向跳点为:均匀网格地图中障碍物对角方向的可通行点;至少能在水平方向和垂直方向上移动;一个轴向跳点(straight jump point)可视为一个三元组其中包含一个网格位置n和两个轴向的移动方向。它们满足:(1)/>和/>是两个可通行的移动;(2)/>(3)/>不可通行。
直观来说,定义1中的网格位置n即为障碍物的拐角,而方向称为该跳点的父方向,为搜索的来向。以图2(a)为例,由实心圆和箭头分别表示位置和来向,图中标出了所有的轴向跳点和对应的父方向,可以看到符合条件的n一般附着有两个以上的轴向跳点。另外,将/>和/>称为该跳点的主序扩展方向。
一个对角跳点(diagonal jump point)可表示为一个二元组其中包含一个网格位置n和一个对角方向/>位置n由来自/>方向的移动到达,并可经过/>或/>到达某一以/>或/>为父方向的轴向跳点,或到达目标点。
图2(b)展示了对角跳点与轴向跳点的位置关系。空心圆圈和灰色箭头分别表示位置和来向,需要注意,同一轴向跳点可同时被多个对角跳点到达,甚至同一位置可能同时使到达某一轴向跳点的不同对角跳点的位置,如(D1/D2/D3,SW/SE)。
这里塌缩跳点的网格点的含义指的是:位于同一网格点位置至少具有来自于两个方向的父节点,该两个方向来自于:上、下、左、右、右上、右下、左上、左下中任意两个,这里的跳点可以是轴向跳点,也可以是对角跳点,也可以同时即是轴向跳点也是对角跳点;如果同一网格点塌缩多方向跳点,则仅就该位置搜索计算一次,不做重复计算;
如上所述,轴向跳点的位置可简单地根据其与障碍物的相对位置关系通过对所有格点的一次扫描而全部快速识别。然而,我们并不需要将所有的对角跳点都识别出来并对其进行包围盒计算。这里,对两类对角跳点进行区分。
一个有源对角跳点(active diagonal jump point)是具有一个轴向跳点作为其父节点,其中/>是该轴向跳点的对角主序扩展方向,n可以有s经过无障碍的/>移动到达。不满足该条件的其余位置为无源对角跳点。举例来说,图2(b)中的(F5,SE)因为有(D3,E,S)作为父节点,为一个有源对角跳点,可以通过向东运动到达另一轴向跳点(I5,E,N)。而(E5,SE)则为无源对角跳点。
所有符合diagonal-first规则的路径可以归为两类,如图3所示。第一类,我们称其为简单主序路径(Simple Canonical Paths),它们不涉及在跳点位置的搜索方向转换,这里的转换是某一轴向跳点处由其父方向转换到其中一个主序扩展方向,如图中<s1,t1>所示,寻路时可以通过一次深度优先搜索判断。第二类称为复合主序路径(CompoundCanonical Paths),可表示为<s,(ds),s1,(d1)x1,s2,(d2)x2,s3,…,sn,(dt),t>,如图中<s2,t2>所示。这类路径可划分为三个部分:(1)起始部分:从起点s到第一个轴向跳点s1,其中可能包含一个无源对角跳点ds;(2)中间部分:从第一个轴向跳点s1到最后一个轴向跳点sn,相邻两个之间有xi个有源对角跳点;(3)结尾部分:从sn到终点t,可能包含一个无源跳点。
需要说明的是,有些网格点既附着有轴向跳点,同时也有对角跳点;
获取轴向跳点和对角跳点的方法可以根据上面的定义由程序来实现,具体方法不限。在本发明一实施例中,例如:通过识别障碍物的拐点来获取轴向跳点,即通过识别与障碍物的位置关系获得;对角跳点可通过识别与轴向跳点的位置关系获得;
预处理搜索算法可以是压缩模式数据库搜索算法进行预处理;
S2获取起点和终点位置;
在本发明一实施例中,智能机器人所在网格点位置或智能游戏中可移动对象所在网格点位置形成这里的起点,由操作者或玩家输入的指定网格点位置形成终点。
S3在起点与终点之间需要寻找最优复合主序路径时,在连接过程中生成起始子节点;这里的起始子节点的含义指的是从起点出发符合对角优先原则的轴向跳点;在生成起始子节点的过程中可能同时存在不止一个轴向上节点满足起始子节点要求,上述轴向子节点均可作为起始子节点;为了减少不必要的路径规划,提升路径规划速度,在生成起始子节点时进行了剪枝:
根据压缩模式数据库存储的数据与起始子节点的主序扩展方向进行匹配对起始子节点进行筛选,仅在有可能到达终点位置的局部路径上生成起始子节点;对于不可能到达终点位置的路径进行剪枝。
S4在路径提取过程中基于压缩模式数据库读取从每一起始子节点到达终点的最优方向及距离,并对不同路径间的相同部分进行融合,获得起点经每一起始子节点到达终点的唯一路径;
这里的不同路径指的是:从不同起始子节点到终点之间存在多条路径;例如从不同的起始子节点开始探索最优路径,假如在某一子节点相遇,则相遇的节点之后的路径(从相遇子节点到达终点的路径)相同,则仅在第一个探索到该相遇子节点的起始子节点的路径中记录,后面对于其他起始子节点在该相遇子节点到终点的路径不再重复探索;通过相同路径的融合与共享,减少探索空间和时间,提升路径规划速度。
S5对起点经所有起始子节点到达终点的路径距离进行比较,获得起点与终点之间的最优路径并存储。
通过距离比较能够获得哪条路径为最优路径。计算距离的方式可采用坐标差或跳跃距离表等方式。
优选地,所述S1以均匀网格地图中塌缩跳点的网格位置进行预处理的步骤包括:
S01,对均匀网格地图进行结构分析,根据可通行点与障碍点的位置关系识别出所有轴向跳点;为均匀网格地图上所有可通行节点的所有可通行方向计算跳跃距离表,并记载与该方向上下一跳点或与障碍物的距离;
S02,根据所述轴向跳点在对角方向上的利用跳跃距离表识别出所有对角跳点;
S03,以每个跳点塌缩位置为源节点进行面向全地图的Dijkstra搜索,获取其对于所有可达节点的最优起始边;将上述对所有可达节点的最优起始边存储生成压缩模式数据库。这里的最优起始边的含义为起点到达某一确定终点的最优方向,对于任意终点位置,最优方向可能是唯一,也可能存在两个或三个等价方向。
塌缩位置指的是附着有至少两个方向轴向跳点和/或对角跳点的网格点。这里的起始边的意思指的是起始方向,八邻域网格中的八个方向作为起始方向的选择。
优选地,所述S3在连接过程中生成起始子节点的步骤包括:
S30在连接过程中生成起始子节点时,通过读取压缩模式数据库对不可能达到终点的路径进行剪枝。
所述S30在连接过程中生成起始子节点时通过读取压缩模式数据库对不可能达到终点的路径进行剪枝的步骤包括:
S301,根据跳跃距离表获得起点所有符合对角优先原则的轴向跳点子节点;
S302,在所述轴向跳点子节点的所有主序扩展方向与压缩模式数据库中存储的该节点的最优方向不存在交集时,删除该合法轴向跳点子节点;
S303,遍历所有所述轴向跳点子节点,获得所有剪枝后的起始子节点。
虽然稀疏的预处理意味着很难从起点就开始利用压缩模式数据库进行剪枝,从而减少起点的子节点数量,但是当所有合法子节点找到之后,由于它们都是轴向跳点,可利用它们已有的模式数据库信息进行延后的剪枝。算法流程如图4的Algorithm 1所示。
算法输入为起点s、终点t和跳跃距离表T,符号表示节点n在方向/>上的距离值。算法遍历所有八个方向,通过距离值快速获得所有可能的子节点(第3、13行),其中对角方向需要一个迭代的过程(第9行)。对于这些没有通过起点的模式数据库进行剪枝的节点,可以一定程度通过自身的模式数据库和主序扩展方向进行剪枝(第4-6、14-16行)。若节点的所有主序方向的集合与CPD检索出的最优方向集合没有交集,则可安全地将其剔除搜素空间而不加入待探索列表中;反之,应考虑该节点。经过这一剪枝过程,能够留下的子节点一般只有1-2个,极大地减轻了搜索负担,从而与信息完备的Topping更为接近。
优选地,所述S4在搜索过程中基于压缩模式数据库读取从每一起始子节点到达终点的最优方向及距离,并对不同路径间的相同部分进行融合,获得起点经每一起始子节点到达终点的唯一路径的步骤中:
S41在所述起始子节点的所有主序扩展方向与压缩模式数据库中存储的该节点的最优方向存在交集时;
S42从所述节点的跳跃距离表中读取该最优方向上到达下一子节点移动的距离;
S43在当前子节点未被探索过时;更新下一步节点并返回上一步骤S42,直到到达终点;
S44提取获得起点经所述起始子节点到达终点的唯一路径;
S45重复所有起始子节点的路径探索,提取起点经每一起始子节点到达终点的唯一路径。
参见图5的Algorithm 2,给出了Topping+PEx进行路径提取的主要流程。它以算法1得到的起点的少数子节点集合和预处理得到的稀疏模式数据库为输入,首先对节点的数据结构进行初始化:包括设置所有节点的父节点和子节点为空,设置一个布尔型标志位表示该节点尚未被探索过(第1行)。然后设置一个全局布尔型标志位,标识是否有路径已经找到。算法遍历所有起点子节点,任一分支能够到达目标点,标志位pathFound都被置为真(第13-14行)。在每一个分支的提取中,当前节点到达目标的最优方向都被从CPD中检索得到(第6行),若不为空,则按照Topping的模式生成子节点(第7-9行)。为了防止相同的subpath被反复探索、浪费算法运行时间,需要对其进行检测(第10行)。
优选地,所述S42从所述跳跃距离表中读取该最优方向上到达下一子节点移动的距离的步骤之后还包括;
S421在当前子节点被探索过时,比较当前到达当前子节点路径与已探索的路径;
S422a在已探索的路径优于当前到达当前子节点路径时,停止该分支方向探索;并记录起点到当前节点路径。
优选地,所述S421在当前子节点被探索过时,比较当前到达当前节点路径与已探索的路径的步骤之后还包括:
S422b在当前到达当前子节点优于已探索路径时,修改前驱关系并记录当前节点与起点距离;
这里的前驱关系指的是将已探索路径中到达当前子节点的父节点修改为当前到达当前子节点的父节点,或者说将当前探索路径中到达当前子节点的父节点付给已探索路径中到达当前子节点的父节点,即修改当前子节点的前驱关系;
S423并将上述信息向后续节点传播;
S424a在后续节点往后的路径未被探索时,当前分支方向返回S42,并继续提取,直到达到终点。
S424b在后续节点为终点或直接到达终点时,结束程序。
参见图6,该检测过程在Algorithm 3中给出,它用来判断当前分支的提取是否应当继续进行,以防后续路径已在其他分支中被探索过或将以更小的路径代价被探索。这一信息被记录在标识变量subpathMeet中。如果当前子节点c还未被其他分支探索过,算法将其更新为下一步的节点并返回(第1-5行)。反之,若当前到达该节点的路径不优于已探索到的路径,则当前分支可以停止(第7-10行)。如果当前路径更优,则需改写相关前驱关系和f-值(第12-13行,记录当前子节点到起点的距离)。算法还将把该信息向后续节点传播(第26-27行),直到出现以下三种情况:(1)从后续某一节点往后的路径尚未被探索,则需当前分支返回继续提取(第19-20行);(2)后续某一节点曾被另一分支以更小代价路径探索过,则应停止传播并停止当前分支的提取(第22-25行);(3)到达目标点(第28行)。总之,Algorithm3运行结束后若subpathMeet为真,Algorithm 2则应停止当前分支的路径提取;否则应当继续。
图7给出了一个本发明实施连接过程剪枝的示例。起点和终点分别为F2和J1。通过对有效距离值(加粗表示)的提取,快速找到了所有未经剪枝的子节点B0、F5和H5。图中将它们各自的主序扩展方向和CPD中存储的最优方向分别用灰色和黑色的短箭头标出。可以看到,仅H5向右边的主序扩展方向与最优方向重合,因此B0和F5都被剔除,仅向Open表中加入一个节点,即H5。
图8给出了当前子节点均未被探索过(路径中不存在相同部分子路径)的场景下一个路径提取过程的示例,其中起点和终点分别为A0和A5。通过连接过程,生成了唯一的起点子节点B0。对该分支进行提取时,首先读取到从B0到达目标点的最佳方向是右下,再读取距离表可知该方向的运动可执行2步到达对角跳点D2。此时,读取从D2到达目标点的最优方向为向下,步数为3步。以此类推,则可提取出唯一一条路径。
图9给出了出发于两个不同起始子节点的路径在某一子节点相遇(路径中存在相同部分即相遇子节点到终点之间的子路径)的场景下一个路径提取过程的示例,两条路径分别对应两个起始子节点s1和s1’。若先对s1’代表的分支进行提取时,探索s1分支时将在s2处发现该节点已被探索过。对比发现,s1分支到达s2的代价更小,因此将s2的父节点从s1’更新为s1,并将代价向后传播直到终点。中间没有再发现未经探索的节点。
如前所述,一般网格地图中两类跳点塌缩位置的数量远小于所有可通行节点的总量。因此本发明将大大地节省所需的预处理时间和空间。这里以取自https://movingai.com的通用测试集为地图,其基本信息如表1所示。其中既包含典型的游戏地图,也有人工合成的房间和迷宫。每张地图中还包含大量的路径规划测试问题。
实验结果如表2所示。其中,SRC和Topping为原算法,Topping+PEx为本发明。我们另外加入了Topping+WSSP和Topping+的变形,第一个没有采用起始子节点剪枝,且采用了A*搜索进行寻路而非路径提取;第二个采用了起始子节点剪枝但仍没有采用路径提取。展示该变形的实验结果可以清楚地看到本发明的两个技术分别对搜索速度起到的提升的作用。结果表明,在预处理信息相对稀疏的情况下,通过本发明提出的起点子节点剪枝和部分扩展技术,Topping+PEx算法的搜索速度相较SRC提升了数倍,与Topping已相当接近,基本在一个数量级上。同时,通过与Topping+WSSP和Topping+两个变形的比较,可以看出起始子节点剪枝和路径提取方式的采用对路径搜索效率的提高有明显的帮助。前者帮助减少待探索的分支数量,后者减少了对Open表的频繁重排序的操作。
表1实验所用地图
表2路径搜索结果对比。指标为平均搜索时间,单位为微秒。
StarCraft | DAO | BG | Warcraft | Rooms | Mazes | |
SRC | 42.0 | 16.5 | 15.8 | 22.4 | 37.3 | 52.1 |
Topping | 16.2 | 5.8 | 5.0 | 6.0 | 15.5 | 44.9 |
Topping+WSSP | 25.5 | 10.7 | 5.1 | 7.7 | 15.2 | 73.1 |
Topping+ | 19.5 | 9.2 | 4.5 | 6.6 | 14.9 | 72.9 |
Topping+PEx | 18.0 | 6.7 | 3.9 | 6.6 | 12.0 | 49.6 |
实施例二
在实施例一的基础上,本发明实施例提供一种基于模式数据库的路径提取***,包括存储器和处理器,所述存储器存储有基于模式数据库的路径提取程序,在所述处理器运行所述基于模式数据库的路径提取程序时执行上述任意实施例方法的步骤。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (7)
1.一种路径提取方法,其特征在于,包括:
以均匀网格地图中塌缩跳点的网格点所在位置进行预处理,生成压缩模式数据库;
获取起点和终点位置;
在起点与终点之间需要寻找最优复合主序路径时,在连接过程中生成起始子节点;
在路径提取过程中基于压缩模式数据库读取从每一起始子节点到达终点的最优方向及距离,并对不同路径间的相同部分进行融合,获得起点经每一起始子节点到达终点的唯一路径;
对起点经所有起始子节点到达终点的路径距离进行比较,获得起点与终点之间的最优路径并存储;
所述以均匀网格地图中塌缩跳点的网格位置进行预处理的步骤包括:
对均匀网格地图进行结构分析,根据可通行节点与障碍点的位置关系识别出所有轴向跳点;
为均匀网格地图上所有可通行节点的所有可通行方向计算跳跃距离表,并记载与该方向上下一跳点或与障碍物的距离;
根据所述轴向跳点在对角方向上利用跳跃距离表识别出所有对角跳点;
以每个跳点塌缩位置为源节点进行面向全地图的Dijkstra搜索,获取其对于所有可达节点的最优起始边即最优方向;将上述所有可达节点的最优方向存储生成压缩模式数据库;
所述在路径提取过程中基于压缩模式数据库读取从每一起始子节点到达终点的最优方向及距离,并对不同路径间的相同部分进行融合,获得起点经每一起始子节点到达终点的唯一路径的步骤中:
在所述起始子节点的所有主序扩展方向与压缩模式数据库中存储的该节点的最优方向存在交集时;
从所述节点的跳跃距离表中读取该最优方向上到达下一子节点移动的距离;
在当前子节点未被探索过时;更新下一步节点并返回上一步骤,直到到达终点;
提取获得起点经所述起始子节点到达终点的唯一路径;
重复所有起始子节点的路径探索,提取起点经每一起始子节点到达终点的唯一路径。
2.如权利要求1所述的路径提取方法,其特征在于,所述在连接过程中生成起始子节点的步骤包括:
在连接过程中生成起始子节点时,通过读取压缩模式数据库对不可能达到终点的路径进行剪枝。
3.如权利要求2所述的路径提取方法,其特征在于,所述在连接过程中生成起始子节点时通过读取压缩模式数据库对不可能达到终点的路径进行剪枝的步骤包括:
根据跳跃距离表获得起点所有符合对角优先原则的轴向跳点子节点;
在所述轴向跳点子节点的所有主序扩展方向与压缩模式数据库中存储的该节点的最优方向不存在交集时,删除该轴向跳点子节点;
遍历所有所述轴向跳点子节点,获得起始子节点。
4.如权利要求1所述的路径提取方法,其特征在于,从所述跳跃距离表中读取该最优方向上到达下一子节点移动的距离的步骤之后还包括;
在当前子节点被探索过时,比较当前到达该子节点路径与已探索的路径;
在已探索的路径优于当前到达当前子节点路径时,停止该最优方向探索;并记录起点到当前节点路径。
5.如权利要求4所述的路径提取方法,其特征在于,所述在当前子节点被探索过时,比较当前到达当前节点路径与已探索的路径的步骤之后还包括:
在当前到达该子节点优于已探索路径时,修改前驱关系并记录当前节点与起点距离;
并将修改后的所述前驱关系和当前节点与起点距离向后续节点传播;
在后续节点往后的路径未被探索时,当前分支方向返回从所述节点的跳跃距离表中读取该最优方向上到达下一子节点移动的距离的步骤,并继续提取,直到达到终点。
6.如权利要求5所述的路径提取方法,其特征在于,所述并将上述修改后的所述前驱关系和当前节点与起点距离向后续节点传播的步骤之后还包括:
在后续节点为终点时,结束当前分支的提取。
7.一种路径提取***,包括存储器和处理器,所述存储器存储有基于模式数据库的路径提取程序,在所述处理器运行所述基于模式数据库的路径提取程序时执行权利要求1~6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911139052.6A CN110975291B (zh) | 2019-11-20 | 2019-11-20 | 一种路径提取方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911139052.6A CN110975291B (zh) | 2019-11-20 | 2019-11-20 | 一种路径提取方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110975291A CN110975291A (zh) | 2020-04-10 |
CN110975291B true CN110975291B (zh) | 2023-11-10 |
Family
ID=70085099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911139052.6A Active CN110975291B (zh) | 2019-11-20 | 2019-11-20 | 一种路径提取方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110975291B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112088349A (zh) | 2020-07-31 | 2020-12-15 | 深圳信息职业技术学院 | 目标追踪方法、装置、终端设备及存储介质 |
CN113848897B (zh) * | 2021-09-17 | 2023-12-12 | 宁波大学 | 用于对无人水面艇进行路径规划的方法、***和相关产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493329A (zh) * | 2008-01-23 | 2009-07-29 | 华东师范大学 | 一种多目标点路径规划方法和装置 |
CN105630984A (zh) * | 2015-12-25 | 2016-06-01 | 中国民航信息网络股份有限公司 | 一种运价搜索*** |
CN105955280A (zh) * | 2016-07-19 | 2016-09-21 | Tcl集团股份有限公司 | 移动机器人路径规划和避障方法及*** |
CN106651987A (zh) * | 2016-10-10 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 路径规划方法及装置 |
CN109115226A (zh) * | 2018-09-01 | 2019-01-01 | 哈尔滨工程大学 | 基于跳点搜索的多机器人冲突避免的路径规划方法 |
CN110006430A (zh) * | 2019-03-26 | 2019-07-12 | 智慧航海(青岛)科技有限公司 | 一种航迹规划算法的优化方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8155391B1 (en) * | 2006-05-02 | 2012-04-10 | Geoeye Solutions, Inc. | Semi-automatic extraction of linear features from image data |
CA2707246C (en) * | 2009-07-07 | 2015-12-29 | Certusview Technologies, Llc | Automatic assessment of a productivity and/or a competence of a locate technician with respect to a locate and marking operation |
-
2019
- 2019-11-20 CN CN201911139052.6A patent/CN110975291B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493329A (zh) * | 2008-01-23 | 2009-07-29 | 华东师范大学 | 一种多目标点路径规划方法和装置 |
CN105630984A (zh) * | 2015-12-25 | 2016-06-01 | 中国民航信息网络股份有限公司 | 一种运价搜索*** |
CN105955280A (zh) * | 2016-07-19 | 2016-09-21 | Tcl集团股份有限公司 | 移动机器人路径规划和避障方法及*** |
CN106651987A (zh) * | 2016-10-10 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 路径规划方法及装置 |
CN109115226A (zh) * | 2018-09-01 | 2019-01-01 | 哈尔滨工程大学 | 基于跳点搜索的多机器人冲突避免的路径规划方法 |
CN110006430A (zh) * | 2019-03-26 | 2019-07-12 | 智慧航海(青岛)科技有限公司 | 一种航迹规划算法的优化方法 |
Non-Patent Citations (1)
Title |
---|
Yue Hu 等."Improving the Combination of JPS and Geometric Containers".Proceedings of the International Conference on Automated Planning and Scheduling.2019,第29卷第209-213 页. * |
Also Published As
Publication number | Publication date |
---|---|
CN110975291A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110975290B (zh) | 一种基于模式数据库的路径规划方法及*** | |
CN110967015B (zh) | 一种路径规划方法及*** | |
CN109115226B (zh) | 基于跳点搜索的多机器人冲突避免的路径规划方法 | |
Harabor et al. | Improving jump point search | |
US20170219353A1 (en) | Method and system for determining a path of an object for moving from a starting state to an end state set avoiding one or more obstacles | |
CN110975291B (zh) | 一种路径提取方法及*** | |
CN108444490B (zh) | 基于可视图和a*算法深度融合的机器人路径规划方法 | |
CN112325897A (zh) | 基于启发式深度强化学习的路径规划方法 | |
US20030223373A1 (en) | Dual Dijkstra search for planning multipe paths | |
CN113485369A (zh) | 改进a*算法的室内移动机器人路径规划和路径优化方法 | |
CN111104471B (zh) | 基于跳点路径搜索的模式数据库信息压缩方法及*** | |
Sigurdson et al. | Automatic algorithm selection in multi-agent pathfinding | |
CN115167474A (zh) | 一种移动机器人路径规划优化方法 | |
CN113009916A (zh) | 一种基于全局地图探索的路径规划方法、芯片及机器人 | |
CN111829526B (zh) | 一种基于防撞半径的距离地图重构与跳点路径规划方法 | |
CN114859909A (zh) | 一种针对叉车式agv的路径规划方法及装置 | |
CN114721370A (zh) | 基于双启发函数的机器人快速最优路径规划方法 | |
CN113848911A (zh) | 基于Q-learning和RRT*的移动机器人全局路径规划方法 | |
CN116560360A (zh) | 面向复杂动态场景的医用护理机器人实时动态路径规划方法及*** | |
CN110975288A (zh) | 基于跳点路径搜索的几何容器数据压缩方法及*** | |
CN110222055A (zh) | 一种动态图下多边更新的单轮核值维护方法 | |
CN114577217B (zh) | 基于冯洛诺伊图的路径规划方法、装置、设备及存储介质 | |
CN116449826A (zh) | 基于路径平滑和双向跳点搜索的移动机器人路径规划方法 | |
CN115392539A (zh) | 一种基于贪婪算法的路径规划算法 | |
CN111323036B (zh) | 原料场智能寻优路径方法、***、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |