CN107644076B - 路径更新方法及装置 - Google Patents
路径更新方法及装置 Download PDFInfo
- Publication number
- CN107644076B CN107644076B CN201710847107.3A CN201710847107A CN107644076B CN 107644076 B CN107644076 B CN 107644076B CN 201710847107 A CN201710847107 A CN 201710847107A CN 107644076 B CN107644076 B CN 107644076B
- Authority
- CN
- China
- Prior art keywords
- shortest path
- landmark
- path tree
- edge
- node
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供的一种路径更新方法及装置,涉及路径处理技术领域。所述方法包括获取时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树;当检测到所述时变道路网络中的一边的权值发生变化时,获取与所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新。利用时变道路网络中构造的各个地标对应的前向最短路径树和后向最短路径树的结构特性,减少冗余计算,提高最短路径树的动态更新效率,从而降低预处理数据的更新代价。
Description
技术领域
本发明涉及路径处理技术领域,具体而言,涉及一种路径更新方法及装置。
背景技术
最短路径算法诞生于运筹学和计算机科学,是图论的经典算法。通过数据结构等计算机技术可将很多其它领域的实际问题抽象成运筹学中的最短路径问题(ShortestPath,SP),如交通路径规划等。传统最短路径模型都是基于静态网络结构,即形式化网络图的结构已知,且弧(或边)的权值不变。然而在实际的交通路网中,各弧边的权重会随时间发生变化,比如道路的通行力及车速会受到交通状况等动态因素的影响而有所变动。对于时变网络(Time-Dependent Networks,TDN),现有技术中通过改进Dijkstra算法等经典算法来求解TDN网络的SP问题。现有技术中如三角启发算法(A*Landmarks Triangle,ALT)存在一些缺点,当TDN网络中某边更新后的权值小于初始权值时,需要重新计算预处理数据,会产生大量不必要的更新操作。
发明内容
本发明的目的在于提供一种路径更新方法及装置,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:
第一方面,本发明实施例提供了一种路径更新方法,所述方法包括获取时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树;当检测到所述时变道路网络中的一边的权值发生变化时,获取与所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新。
第二方面,本发明实施例提供了一种路径更新装置,所述装置包括构造单元和更新单元。构造单元,用于获取时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树。所述更新单元,用于当检测到所述时变道路网络中的一边的权值发生变化时,获取与所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新。
本发明实施例提供的一种路径更新方法及装置,获取时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树;当检测到所述时变道路网络中的一边的权值发生变化时,获取与所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新。利用时变道路网络中构造的各个地标对应的前向最短路径树和后向最短路径树的结构特性,减少冗余计算,提高最短路径树的动态更新效率,从而降低预处理数据的更新代价。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为一种可应用于本发明实施例中的电子设备的结构框图;
图2为本发明实施例提供的路径更新方法的流程图;
图3为本发明实施例提供的路径更新方法的子步骤S211的流程图;
图4为本发明实施例提供的路径更新方法的子步骤S212的流程图;
图5为本发明实施例提供的路径更新方法的步骤S230-步骤S233的流程图;
图6为本发明实施例提供的路径更新方法与ALT算法预处理数据占用空间对比示意图;
图7为本发明实施例提供的路径更新方法与现有算法平均查询时间对比示意图;
图8为本发明实施例提供的路径更新方法与现有算法平均扫描时间对比示意图;
图9为本发明实施例提供的路径更新方法与DSPT算法平均更新时间第一对比示意图;
图10为本发明实施例提供的路径更新方法与DSPT算法平均扫描次数第一对比示意图;
图11为本发明实施例提供的路径更新方法与DSPT算法平均更新时间第二对比示意图;
图12为本发明实施例提供的路径更新方法与DSPT算法平均扫描次数第二对比示意图;
图13为本发明实施例提供的路径更新装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1示出了一种可应用于本发明实施例中的电子设备100的结构框图。如图1所示,电子设备100可以包括存储器102、存储控制器104、一个或多个(图1中仅示出一个)处理器106、外设接口108、输入输出模块110、音频模块112、显示模块114、射频模块116和路径更新装置。
存储器102、存储控制器104、处理器106、外设接口108、输入输出模块110、音频模块112、显示模块114、射频模块116各元件之间直接或间接地电连接,以实现数据的传输或交互。例如,这些元件之间可以通过一条或多条通讯总线或信号总线实现电连接。路径更新方法分别包括至少一个可以以软件或固件(firmware)的形式存储于存储器102中的软件功能模块,例如所述路径更新装置包括的软件功能模块或计算机程序。
存储器102可以存储各种软件程序以及模块,如本申请实施例提供的路径更新方法及装置对应的程序指令/模块。处理器106通过运行存储在存储器102中的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本申请实施例中的路径更新方法。
存储器102可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器106可以是一种集成电路芯片,具有信号处理能力。上述处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述外设接口108将各种输入/输入装置耦合至处理器106以及存储器102。在一些实施例中,外设接口108、处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
输入输出模块110用于提供给用户输入数据实现用户与电子设备100的交互。所述输入输出模块110可以是,但不限于,鼠标和键盘等。
音频模块112向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示模块114在电子设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示模块114可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器106进行计算和处理。射频模块116用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通信网络或者其他设备进行通信。
可以理解,图1所示的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
于本发明实施例中,电子设备100可以作为用户终端,或者作为服务器。用户终端可以为PC(personal computer)电脑、平板电脑、手机、笔记本电脑、智能电视、机顶盒、车载终端等终端设备。在本实施例中,PC电脑的配置可以是,但不限于INTEL Core i7-4790 CPU3.60GHz、8GB RAM。
请参阅图2,本发明实施例提供了一种路径更新方法,所述方法可以包括步骤S200、步骤S210和步骤S220。
步骤S200:创建不含负全边的所述时变道路网络;其中,所述不含负全边的所述时变道路网络为拓扑图模型G=(V,E,W),V表示所述时变道路网络中的节点集合,E表示所述时变道路网络中的边集合,W表示所述时变道路网络中的边的权值集合,L为地标集,地标集包括所述多个地标,且
道路可以为公路、铁路、河流、管线等。在本实施例中,以公路为例,即创建不含负全边的所述时变道路网络可以为创建不含负全边的所述时变公路网络。例如,可以选用但不限于文献(A.Karduni,A.Kermanshah,and S.Derrible.A protocol to convertspatial polyline data to network formats and applications to world urban roadnetworks.Sci.Data 3:160046doi:10.1038/sdata.2016.46)提供的城市路网数据,各个城市路网数据的简称、节点数、边数和数据大小如表1所示(以路网规模大小升序排列)。
表1各个城市路网数据的简称、节点数、边数和数据大小
步骤S210:获取时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树。
步骤S200和步骤S210可定义为预处理阶段,基于步骤S200,创建的拓扑图模型G=(V,E,W),还可以包括其对应的数据结构。数据结构定义,具体地,连边e=(i,j)∈E表征以节点i为起点、节点j为终点所对应的路段,S(e)和D(e)分别表征连边e的起点和终点,w(e)表征边e的权值,w′(e)表征边e发生变化后的权值。
对于任意节点n∈V,I(n)={e∈E|D(e)=n}表征节点n的入度边集合,O(n)={e∈E|S(e)=n}表征节点n的出度边集合。
Dist(s,t)表征从节点s出发到达节点t的最短路径,d(s,t)表征对应的最短路径值。Dist(s,t)与Dist(t,s)并不等价,且d(s,t)与d(t,s)也不一定相等。
SPT(s,t)表征最短路径树SPT中,从节点s出发到达节点t的路径。SPT(s,t)与SPT(t,s)并不等价。
l.FSPT表征地标l∈L的前向最短路径树,从根节点l到树中任意节点n的路径FSPT(l,n)均为最短路径Dist(l,n),对应的最短路径值为d(l,n),对于节点i∈l.FSPT,sub(i)表征l.FSPT中节点i的子孙节点集合且包含节点i,sub(i)中的节点n按d(l,n)升序排列。
l.TSPT表征地标l∈L为根的后向最短路径树,从树中任意节点n到根节点l的路径TSPT(l,n)均为最短路径Dist(n,l),对应的最短路径值为d(n,l),对于节点i∈l.TSPT,sup(i)表征l.TSPT中节点i的祖先节点集合且包含节点i,sup(i)中的节点n按d(n,l)升序排列。
若连边e=(i,j)∈l.FSPT,则称节点i为节点j的父节点,表征为P(j)=i;若连边e=(i,j)∈l.TSPT,则称节点j为节点i的子节点,表征为C(i)=j。
基于步骤S210,进一步地,步骤S210可以包括子步骤S211和子步骤S212。
子步骤S211:构造每个所述地标对应的前向最短路径树,并基于每个所述地标对应的前向最短路径树,存储每个所述地标到该地标对应的前向最短路径树中的所有节点的最短路径及最短路径值;
子步骤S212:构造每个所述地标对应的后向最短路径树,并基于每个所述地标对应的后向最短路径树,存储所述地标对应的后向最短路径树中的所有节点到该地标的最短路径及最短路径值。
请参阅图3,进一步地,子步骤S211可以包括子步骤S211a、子步骤S211b和子步骤S211c。
子步骤S211a:创建第一队列openQueue1和第二队列closedQueue2,所述第一队列openQueue1存放待扩展的节点,所述第二队列closedQueue2存放已经计算出最短路径的已扩展节点;
子步骤S211b:创建第一标签shortestNode1和第二标签shortestValue2,所述第一标签shortestNode1记录当前计算出最短路径的已扩展节点,所述第二标签shortestValue2记录所述第一标签shortestNode1中已扩展节点相应的路径值;
子步骤S211c:对于所述多个地标中的一个地标l,将所述第一标签shortestNode1存放的已扩展节点添加于该地标对应的前向最短路径树l.FSPT和所述第二队列closedQueue2,根据所述第一标签shortestNode1存放的已扩展节点的出度边集合O(shortestNode1)进行扩展,依次将出度边的终点n添加于所述第一队列openQueue1并更新该地标l到终点n的最短路径值d(l,n)及所述终点的父节点P(n);计算所述第一队列openQueue1中当前距离该地标l最近的节点并更新所述第一标签shortestNode1和所述第二标签shortestValue2;重复以上操作直至所述第一标签shortestNode1内的最后一个可达节点添加于所述第二队列closedQueue2,获得更新后的该地标对应的前向最短路径树l.FSPT。初始状态下第一标签shortestNode1存放的为地标l,所述第二标签shortestValue2的值为0;
其中,openQueue1为所述第一队列,openQueue2为所述第二队列,shortestNode1为所述第一标签,shortestValue2为所述第二标签,l为所述地标,l.FSPT为该地标对应的前向最短路径树;O(shortestNode1)为已扩展节点的出度边集合,d(l,n)为该地标l到终点n的最短路径值,n为所述出度边的终点,P(n)为所述终点的父节点。
请参阅图4,进一步地,子步骤S212可以包括子步骤S212a、子步骤S212b和子步骤S212c。
子步骤S212a:创建第三队列openQueue3和第四队列closedQueue4,所述第三队列openQueue3存放待扩展的节点,所述第四队列closedQueue4存放已经计算出最短路径的已扩展节点;
子步骤S212b:创建第三标签shortestNode3和第四标签shortestValue4,第三标签shortestNode3记录当前计算出最短路径的已扩展节点,第四标签shortestValue4记录所述第三标签shortestNode3中已扩展节点相应的路径值;
子步骤S212c:对于所述多个地标中的一个地标l,将所述第三标签shortestNode3存放的已扩展节点添加于该地标对应的后向最短路径树l.TSPT和所述第四队列closedQueue4,根据所述第三标签shortestNode3存放的已扩展节点的入度边集合I(shortestNode3)进行扩展,依次将入度边的起点m添加于所述第三队列openQueue3并更新所述入度边的起点m到该地标l最短路径值d(m,l)及所述入度边的起点的子节点C(m);计算所述第三队列openQueue3中当前距离该地标l最近的节点并更新所述第三标签shortestNode3和所述第四标签shortestValue4;重复以上操作直至所述第三标签shortestNode3内最后一个可达节点添加于所述第四队列closedQueue4,获得更新后的该地标对应的后向最短路径树l.TSPT。初始状态下第三标签shortestNode3存放的为地标l,所述第四标签shortestValue4的值为0;其中,openQueue3为所述第三队列,openQueue4为所述第四队列,shortestNode3为所述第三标签,shortestValue4为所述第四标签,l为所述地标,l.TSPT为该地标对应的后向最短路径树;I(shortestNode3)为已扩展节点的入度边集合,d(m,l)为所述入度边的起点m到该地标l最短路径值,m为所述入度边的起点,C(m)为所述入度边的起点的子节点。
步骤S220:当检测到所述时变道路网络中的一边的权值发生变化时,获取所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新。
步骤S220可定义为更新阶段,基于步骤S220,进一步地,若所述边e=(i,j)∈E的权值增加,对所述边相关联的地标l对应的前向最短路径树或后向最短路径树中的受所述权值增加影响的节点进行更新,e=(i,j)∈E为所述边,l为所述地标。
具体地,若所述边e=(i,j)∈E的权值增加,对所述边相关联的地标l对应的前向最短路径树FSPT受影响,则对地标l的FSPT中受权值增加影响的节点进行更新,使用队列Q记录受影响的节点,首先将sub(j)中的节点加入队列Q,节点i的增量标签i.inc设为w′(e)-w(e),然后依次循环遍历Q中的节点n,将其增量标签n.inc更新为父节点的增量标签P(n).inc,路径值标签d(l,n)更新为d(l,n)+n.inc,再遍历节点n的入度边集合I(n)中起点不存在于Q的连边,若存在连边e′使得节点n获取到一条新的最短路径,则将P(n)更新为该连边的起点S(e′),同时对n.inc和d(l,n)进行相应的更新。
具体地,若所述边e=(i,j)∈E的权值增加,对所述边相关联的地标l对应的后向最短路径树TSPT受影响,则对地标l的TSPT中受权值增加影响的节点进行更新,使用队列Q记录受影响的节点,首先将sup(i)中的节点加入队列Q,节点j的增量标签j.inc设为w′(e)-w(e),然后依次循环遍历Q中的节点n,将其增量标签n.inc更新为子节点的增量标签C(n).inc,路径值标签d(n,l)更新为d(n,l)+n.inc,再遍历节点n的出度边集合O(n)中终点不存在于Q的连边,若存在连边e′使得节点n获取到一条新的最短路径,则将C(n)更新为该连边的终点D(e′),同时对n.inc和d(n,l)进行相应的更新。
若所述边e=(i,j)∈E的权值减小,且所述边相关联的地标l对应的前向最短路径树满足d(l,i)+w′(e)<d(l,j),对所述边相关联的地标l对应的前向最短路径树中的受所述权值减小影响的节点进行更新。
具体地,若所述边e=(i,j)∈E的权值减小,且所述边相关联的地标l对应的前向最短路径树满足d(l,i)+w′(e)<d(l,j),则对地标l的FSPT中受权值减小影响的节点进行更新,使用队列Q记录受影响的节点,队列closedQ记录队列Q中已更新的节点,首先将sub(j)中的节点加入队列Q,节点j的父节点P(j)更新为节点i,并将节点i的增量标签i.inc设为d(l,i)+w′(e)-d(l,j),然后依次循环遍历Q中不存在于closedQ的节点n,若节点n是首次更新则将其增量标签n.inc更新为父节点的增量标签P(n).inc,路径值标签d(l,n)更新为d(l,n)+n.inc,再遍历节点n的出度边集合O(n)中终点不存在于sub(j)的连边,若对于连边e′,节点n使得终点D(e′)获取到一条新的最短路径,则将D(e′)加入Q和closedQ,P(D(e′))更新为节点n,D(e′).inc更新为D(e′).inc+d(l,n)+w(e)-d(l,D(e′)),d(l,D(e′))更新为d(l,n)+w(e),同时将终点D(e′)的所有直接子孙节点b加入Q并对所有子孙节点的增量标签b.inc和地标l到所有直接子孙节点对应的最短路径值d(l,b)进行相应的更新。
若所述边e=(i,j)∈E的权值减小,且所述边相关联的地标对应的后向最短路径树满足d(j,l)+w′(e)<d(i,l),对所述边相关联的地标对应的后向最短路径树中的受所述权值减小影响的节点进行更新。
具体地,若所述边e=(i,j)∈E的权值减小,且所述边相关联的地标对应的后向最短路径树满足d(j,l)+w′(e)<d(i,l),对地标l的TSPT中受权值减小影响的节点进行更新,使用队列Q记录受影响的节点,队列closedQ记录队列Q中已更新的节点,首先将sup(i)中的节点加入队列Q,节点i的父节点P(j)更新为节点j,并将节点j的增量标签j.inc设为d(j,l)+w′(e)-d(i,l),然后依次循环遍历Q中不存在于closedQ的节点n,若节点n是首次更新则将其增量标签n.inc更新为子节点的增量标签C(n).inc,路径值标签d(n,l)更新为d(n,l)+n.inc,再遍历节点n的入度边集合O(n)中起点不存在于sup(i)的连边,若对于连边e′,节点n使得起点S(e′)获取到一条新的最短路径,则将S(e′)加入Q和closedQ,C(S(e′))更新为节点n,S(e′).inc更新为S(e′).inc+d(n,l)+w(e)-d(S(e′),l),d(S(e′),l)更新为d(n,l)+w(e),同时将起点S(e′)的所有直接祖先节点g加入Q并对所有直接祖先节点的增量标签g.inc和地标l到所有直接祖先节点对应的最短路径值d(g,l)进行相应的更新。
其中,d(l,i)表示地标l到所述边e=(i,j)∈E上的节点i的最短路径值,w′(e)表示所述边e=(i,j)∈E的权值减小后的值,d(l,j)表示地标l到所述边e=(i,j)∈E上的节点j的最短路径值;d(j,l)表示所述边e=(i,j)∈E上的节点j到地标l的最短路径值;d(i,l)表示所述边e=(i,j)∈E上的节点i到地标l的最短路径值。
需要说明的是,以上涉及到的各符号具体的意义,请参见基于步骤S200的数据结构的定义,按照实际情况,类似定义,这里不再赘述。
请参阅图5,为了进行路径规划查询,在步骤S210之后,所述方法还可以包括:
步骤S230:当检测到所述时变道路网络中的点对(s,t)进行路径规划时,若起点s是地标,则基于起点s对应的前向路径树s.FSPT,获得点对(s,t)的最短路径Dist(s,t);
步骤S231:若目标点t是地标,则根据目标点t对应的后向路径树t.TSPT,获得点对(s,t)的最短路径Dist(s,t);
步骤S232:如果起点s、目标点t在同一最短路径树SPT中,且存在路径SPT(s,t),则获得路径SPT(s,t)为点对(s,t)的最短路径Dist(s,t);
步骤S233:若否,基于预设的估价函数,获得点对(s,t)的最短路径Dist(s,t);
其中,(s,t)为所述时变道路网络中的点对,s为所述点对中的起点,t为所述点对中的目标点,s.FSPT为所述起点s对应的前向路径树,t.TSPT为所述目标点t对应的后向路径树,Dist(s,t)为所述点对(s,t)的最短路径,SPT为起点s、目标点t在的同一最短路径树,SPT(s,t)为所述同一最短路径树中的路径。
作为一种实施方式,基于步骤S233,进一步地,所述估价函数为:
公式(1)中,f(n)为从起点s经由节点n到达目标点t的距离估计;g(n)为从起点s到达节点n的实际距离,即为最短路径Dist(s,n)对应的最短路径值d(s,n);h(n)为从节点n到达目标点t的预估距离,对于每个地标l∈L,根据三角不等式可知d(n,l)+d(l,n)≥d(l,t)且d(n,l)+d(t,l)≥d(n,l),遍历所有地标后将h(n)取值为最大值maxl∈L{d(l,t)-d(l,n),d(n,l)-d(t,l)}。
进一步地,创建第五队列openQueue5和第六队列closedQueue6,所述第五队列openQueue5存放待扩展的节点,所述第六队列closedQueue6存放已经计算出最短路径的已扩展节点;
将起点s加入所述第六队列closedQueue6,并根据s的出度边集合O(s)进行扩展,将O(s)中各第一出度边es的第一终点D(es)加入第五队列openQueue5,并基于所述估价函数,计算各第一出度边es的终点D(e)的第一估价函数值f(D(e))和第一父节点P(D(es));
从所述第五队列openQueue5中选取当前估价函数值最小的节点p,将所述当前估价函数值最小的节点p加入第六队列closedQueue6,并从所述第五队列openQueue5中移除所述当前估价函数值最小的节点p;
依次遍历所述当前估价函数值最小的节点p的出度边集合O(p),若O(p)中第二出度边ep的终点D(ep)不存在于所述第五队列openQueue5和所述第六队列closedQueue6,则将D(ep)加入所述第五队列openQueue5,并基于所述估价函数,计算获得第二估价函数值f(D(ep))和第二父节点P(D(ep));若D(ep)存在于所述第五队列openQueue5,则根据所述估价函数,计算获得当前估价函数值f'(D(ep)),当f'(D(ep))<f(D(ep))时更新所述第二估价函数值和所述第二父节点:f(D(ep))=f'(D(ep)),P(D(ep))=p;重复上述操作,直至目标节点t加入所述第六队列closedQueue6或所述第五队列openQueue5中没有新节点加入,若目标点t存在于所述第六队列closedQueue6,则从目标点t开始遍历各个节点的父节点,获得点对(s,t)的最短路径Dist(s,t)。若目标节点t不存在于所述第六队列closedQueue6,表明点对(s,t)不可达,即Dist(s,t)=φ。
其中,openQueue5为所述第五队列和closedQueue6为所述第六队列,O(s)为s的出度边集合,es为第一出度边,D(es)为所述第一出度边的第一终点,f(D(e))为第一估价函数值,P(D(es))为第一父节点;p为当前估价函数值最小的节点,O(p)为所述节点p的第二出度边集合,ep为所述第二出度边,D(ep)为所述第二出度边的终点,f(D(ep))为所述第二估价函数值,f'(D(ep))为当前估价函数值。
步骤S230-步骤S233可定义为路径规划查询阶段。
需要说明的是,以上涉及到的各符号具体的意义,请参见基于步骤S200的数据结构的定义,按照实际情况,类似定义,这里不再赘述。
为了更进一步地评估本发明实施例提供的路径规划方法的有益效果,以表1提供的4个城市路网数据为例,来具体实施并与现有技术中的Dijkstra算法、动态最短路径树(Dynamic Shortest Path Tree,DSPT)算法、A*算法、ALT(A*Landmarks Triangle)算法做对比。为了简洁描述,DALT算法表征本发明实施例提供的路径规划方法。
在路径规划过程中(步骤S230-步骤S233),最短路径的度量标准为路径的累加权值最小,初始状态下各路段的权值为其欧氏距离。在动态网络更新中(步骤S220),随机变化部分边的权值(以一定比率增加或减小),模拟路线规划过程中路况的动态变化。地标集的选取方式不属于本发明的研究内容,对于每个城市路网数据的实施例,均使用随机方式选取16个地标,现有技术的ALT算法和本发明所述DALT算法采用相同的地标集。TDRN网络会在某一时刻发生变化,如边的插入或删除、边权值的增加或减小。由于边的插入可处理为边权值从无穷大到有限值,而对于边的删除则可处理为边权值从有限值到无穷大,因此本发明实施例只讨论边权值的变化。
首先,分别使用ALT算法和所述DALT算法完成对BJ、SEL、TYO和PAR四个城市路网数据的预处理阶段(步骤S200-步骤S210),并比较两种算法的预处理时间费用和预处理数据额外占用空间费用。
如表2所示,将四个路网的静态路径规划结果数据汇总可得,ALT算法和DALT算法中每个节点的额外占用空间分别为74字节和91字节,DALT算法每节点的额外空间费用虽然比ALT算法增加了22.97%,但总体的预处理时间费用只增加了6.28%。如图6所示,对比四个路网在预处理数据占用空间,其中DALT算法高于ALT算法的部分,即为DALT算法中用于存储地标SPT的费用,且该费用随着路网规模的增大而增多。
表2四个路网的静态路径规划结果数据
其次,基于步骤S200-步骤S210,分别使用Dijkstra算法、A*算法、ALT算法和DALT算法完成对BJ、SEL、TYO和PAR四个路网数据的路径规划查询阶段。具体请参见步骤S230-步骤S233。对于每个路网,随机选取20组点对(s,t)后进行1000次路径规划。
请结合参阅图7和图8,对比图7中各算法的平均查询时间和图8中的平均扫描次数,发现路径规划所消耗的时间与扫描次数成正比关系。此外,通过表2可知,DALT算法的总体查询时间比ALT算法减少了51.06%,同时搜索过程中对节点和边的扫描次数减少了46.59%,证明在规模越大、距离越长的路径规划中,扫描次数较少的DALT算法可以获得比ALT算法更好的时间效率。
然后,基于步骤S200-步骤S210,分别使用DSPT算法和DALT算法更新地标的SPT。对于每个城市路网,首先从每个城市路网对应的路径规划查询阶段求得的最短路径中随机选取10条连边,然后执行步骤S220对应的更新阶段。在更新阶段,将每条边的权值增加1倍后更新受影响的SPT;将其权值减小到原值后,再次更新受影响的SPT。
请结合参阅图9、图10、图11和图12,如图9和图10所示,当权值增加时,DSPT算法与DALT算法的平均更新时间和平均更新次数比较接近,当受影响的节点数较小时,DALT算法的平均更新次数较少。如图11和图12所示,当权值减小时,DALT算法比DSPT算法的平均更新时间和平均扫描次数明显更可观,且受影响的节点数越大,两者的差距越大。根据表3,与DSPT算法相比,DALT算法的总体更新时间及其扫描次数分别减小了51.16%和52.32%。其中权值增加时,DALT算法的更新时间及其扫描次数分别减小了3.82%和5.39%;权值减小时DALT算法的更新时间及其扫描次数则分别减小了98.49%和99.26%,表明当权值减小时,DALT算法的更新效率更加显著。这是因为权值增加时,队列中受影响的节点即为变化边节点的子孙节点或祖先节点;而权值减小时,队列中除了变化边节点的子孙节点或祖先节点外,在更新过程中还会计算并加入新的受影响的节点及其子孙节点或祖先节点,比权值增加的更新过程更为复杂,因此在更新效率方面避免了大量冗余计算的DALT算法明显优于DSPT算法。
表3 DSPT和DALT算法对应的更新时间和扫描次数对比
进一步地,在TYO路网中对选取边的权值分别增加0.25倍、0.5倍和1倍,然后使用ALT算法和DALT算法执行TYO路网对应的路径规划,以此模拟两种算法在轻度拥堵、中度拥堵和重度拥堵的不同路况下网络更新后的查询效率对比,并将图7和图8的结果视为正常状态下的查询效率。
在不同路况下,如表4所示,从平均查询时间和平均扫描次数两个方面进行对比,发现DALT算法的查询效率明显优于ALT算法。依次将四列数据使用线性回归拟合后,得到ALT算法和DALT算法的平均查询时间的直线斜率分别为236.6和168.1,平均扫描次数的直线斜率分别为166.6和105.6。从几何角度而言,线性斜率的绝对值越大,则表示其对应的直线越倾斜,即因变量的变化趋势越明显。由此可知,在不同路况中,随着拥堵现象的加重,在查询时间和扫描次数方面,DALT算法比ALT算法拥有更小的变化趋势和更好的查询效率,体现了DALT算法的鲁棒性与高效性。
综上,DALT算法,在TDRN网络的动态应用场景中具有鲁棒性和准确性,利用最短路径树的结构特性将更新范围局限于最短路径树中受影响的节点,对各地标与其它节点之间的最短路径及其路径值进行更新,拥有较低的计算复杂度。在路径规划过程中,通过地标的最短路径树优化查询,避免了冗余的启发式搜索,并且提高了最短路径树的利用率。本发明以较小的存储空间为代价,提高了路径规划的查询效率和时变路网的动态更新效率。
表4不同路况下平均查询时间和平均扫描次数两个方面进行对比
本发明实施例提供的一种路径更新方法,获取时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树;当检测到所述时变道路网络中的一边的权值发生变化时,获取与所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新。利用时变道路网络中构造的各个地标对应的前向最短路径树和后向最短路径树的结构特性,减少冗余计算,提高最短路径树的动态更新效率,从而降低预处理数据的更新代价。
请参阅图13,本发明实施例提供了一种路径更新装置300,所述装置300可以包括创建单元310、构造单元320和更新单元330。
创建单元310,用于创建不含负全边的所述时变道路网络;其中,所述不含负全边的所述时变道路网络为拓扑图模型G=(V,E,W),V表示所述时变道路网络中的节点集合,E表示所述时变道路网络中的边集合,W表示所述时变道路网络中的边的权值集合,地标集L包括所述多个地标,且所述地标集
构造单元320,用于获取时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树。
构造单元320可以包括第一构造子单元321和第二构造子单元322。
第一构造子单元321,用于构造每个所述地标对应的前向最短路径树,并基于每个所述地标对应的前向最短路径树,存储每个所述地标到该地标对应的前向最短路径树中的所有节点的最短路径及最短路径值。
第一构造子单元321可以包括前向路径树获得子单元321a。
前向路径树获得子单元321a,用于创建第一队列openQueue1和第二队列closedQueue2,所述第一队列openQueue1存放待扩展的节点,所述第二队列closedQueue2存放已经计算出最短路径的已扩展节点;创建第一标签shortestNode1和第二标签shortestValue2,所述第一标签shortestNode1记录当前计算出最短路径的已扩展节点,所述第二标签shortestValue2记录所述第一标签shortestNode1中已扩展节点相应的路径值;对于所述多个地标中的一个地标l,将所述第一标签shortestNode1存放的已扩展节点添加于该地标对应的前向最短路径树l.FSPT和所述第二队列closedQueue2,根据所述第一标签shortestNode1存放的已扩展节点的出度边集合O(shortestNode1)进行扩展,依次将出度边的终点n添加于所述第一队列openQueue1并更新该地标l到终点n的最短路径值d(l,n)及所述终点的父节点P(n);计算所述第一队列openQueue1中当前距离该地标l最近的节点并更新所述第一标签shortestNode1和所述第二标签shortestValue2;重复以上操作直至最后一个可达节点添加于所述第二队列closedQueue2,获得更新后的该地标对应的前向最短路径树l.FSPT。
其中,openQueue1为所述第一队列,openQueue2为所述第二队列,shortestNode1为所述第一标签,shortestValue2为所述第二标签,l为所述地标,l.FSPT为该地标对应的前向最短路径树;O(shortestNode1)为已扩展节点的出度边集合;d(l,n)为该地标l到终点n的最短路径值,n为所述出度边的终点,P(n)为所述终点的父节点。
第二构造子单元322,用于构造每个所述地标对应的后向最短路径树,并基于每个所述地标对应的后向最短路径树,存储所述地标对应的后向最短路径树中的所有节点到该地标的最短路径及最短路径值。
第二构造子单元322可以包括后向路径树获得子单元322a。
后向路径树获得子单元322a,用于创建第三队列openQueue3和第四队列closedQueue4,所述第三队列openQueue3存放待扩展的节点,所述第四队列closedQueue4存放已经计算出最短路径的已扩展节点;创建第三标签shortestNode3和第四标签shortestValue4,第三标签shortestNode3记录当前计算出最短路径的已扩展节点,第四标签shortestValue4记录所述第三标签shortestNode3中已扩展节点相应的路径值;对于所述多个地标中的一个地标l,将所述第三标签shortestNode3存放的已扩展节点添加于该地标对应的后向最短路径树l.TSPT和所述第四队列closedQueue4,根据所述第三标签shortestNode3存放的已扩展节点的入度边集合I(shortestNode3)进行扩展,依次将入度边的起点m添加于所述第三队列openQueue3并更新所述入度边的起点m到该地标l最短路径值d(m,l)及入度边的起点的子节点C(m);计算所述第三队列openQueue3中当前距离该地标l最近的节点并更新所述第三标签shortestNode3和所述第四标签shortestValue4;重复以上操作直至最后一个可达节点添加于所述第四队列closedQueue4,获得更新后的该地标对应的后向最短路径树l.TSPT。
其中,openQueue3为所述第三队列,openQueue4为所述第四队列,shortestNode3为所述第三标签,shortestValue4为所述第四标签,l为所述地标,l.TSPT为该地标对应的后向最短路径树;I(shortestNode3)为已扩展节点的入度边集合,d(m,l)为所述入度边的起点m到该地标l最短路径值,m为所述入度边的起点,C(m)为所述入度边的起点的子节点。
更新单元330,用于当检测到所述时变道路网络中的一边的权值发生变化时,获取与所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新。
更新单元330可以包括第一更新子单元331和第二更新子单元332。
第一更新子单元331,用于若所述边e=(i,j)∈E的权值增加,对所述边相关联的地标l对应的前向最短路径树或后向最短路径树中的受所述权值增加影响的节点进行更新,e=(i,j)∈E为所述边,l为所述地标。
第二更新子单元332,用于若所述边e=(i,j)∈E的权值减小,且所述边相关联的地标l对应的前向最短路径树满足d(l,i)+w′(e)<d(l,j),对所述边相关联的地标l对应的前向最短路径树中的受所述权值减小影响的节点进行更新;若所述边e=(i,j)∈E的权值减小,且所述边相关联的地标l对应的后向最短路径树满足d(j,l)+w′(e)<d(i,l),对所述边相关联的地标l对应的后向最短路径树中的受所述权值减小影响的节点进行更新;其中,d(l,i)表示地标l到所述边e=(i,j)∈E上的节点i的最短路径值,w′(e)表示所述边e=(i,j)∈E的权值减小后的值,d(l,j)表示地标l到所述边e=(i,j)∈E上的节点j的最短路径值;d(j,l)表示所述边e=(i,j)∈E上的节点j到地标l的最短路径值;d(i,l)表示所述边e=(i,j)∈E上的节点i到地标l的最短路径值。
所述装置300还可以包括路径规划单元340。
路径规划单元340,用于当检测到所述时变道路网络中的点对(s,t)进行路径规划时,若起点s是地标,则基于起点s对应的前向路径树s.FSPT,获得点对(s,t)的最短路径Dist(s,t);若目标点t是地标,则根据目标点t对应的后向路径树t.TSPT,获得点对(s,t)的最短路径Dist(s,t);如果起点s、目标点t在同一最短路径树SPT中,且存在路径SPT(s,t),则获得路径SPT(s,t)为点对(s,t)的最短路径Dist(s,t);若否,基于预设的估价函数,获得点对(s,t)的最短路径Dist(s,t)。
路径规划单元340可以包括路径规划子单元341。
路径规划子单元341,用于创建第五队列openQueue5和第六队列closedQueue6,所述第五队列openQueue5存放待扩展的节点,所述第六队列closedQueue6存放已经计算出最短路径的已扩展节点;将起点s加入所述第六队列closedQueue6,并根据s的出度边集合O(s)进行扩展,将O(s)中各出度边es的第一终点D(es)加入第五队列openQueue5,并基于所述估价函数,计算各第一出度边es的终点D(e)的第一估价函数值f(D(e))和第一父节点P(D(es));从所述第五队列openQueue5中选取当前估价函数值最小的节点p,将所述当前估价函数值最小的节点p加入第六队列closedQueue6,并从所述第五队列openQueue5中移除所述当前估价函数值最小的节点p;依次遍历所述当前估价函数值最小的节点p的出度边集合O(p),若O(p)中第二出度边ep的终点D(ep)不存在于所述第五队列openQueue5和所述第六队列closedQueue6,则将D(ep)加入所述第五队列openQueue5,并基于所述估价函数,计算获得第二估价函数值f(D(ep))和第二父节点P(D(ep));若D(ep)存在于所述第五队列openQueue5,则根据所述估价函数,计算获得当前估价函数值f'(D(ep)),当f'(D(ep))<f(D(ep))时更新所述第二估价函数值和所述第二父节点:f(D(ep))=f'(D(ep)),P(D(ep))=p;重复上述操作,直至目标节点t加入所述第六队列closedQueue6或所述第五队列openQueue5中没有新节点加入,若目标节点t存在于所述第六队列closedQueue6,则从目标节点t开始遍历各个节点的父节点,获得点对(s,t)的最短路径Dist(s,t)。
以上各单元可以是由软件代码实现,此时,上述的各单元可存储于存储器102内。以上各单元同样可以由硬件例如集成电路芯片实现。
本发明实施例提供的路径更新装置300,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (8)
1.一种路径更新方法,其特征在于,所述方法包括:
创建不含负全边的时变道路网络;
其中,所述不含负全边的所述时变道路网络为拓扑图模型G=(V,E,W),V表示所述时变道路网络中的节点集合,E表示所述时变道路网络中的边集合,W表示所述时变道路网络中的边的权值集合,L为地标集,地标集包括多个地标,且
获取所述时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树,所述时变道路网络包括时变公路网络、时变铁路网络、时变河流网络和时变管线网络中的一种或多种;
当检测到所述时变道路网络中的一边的权值发生变化时,获取与所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新;
所述方法还包括:
当检测到所述时变道路网络中的点对(s,t)进行路径规划时,若起点s是地标,则基于起点s对应的前向路径树s.FSPT,获得点对(s,t)的最短路径Dist(s,t);
若目标点t是地标,则根据目标点t对应的后向路径树t.TSPT,获得点对(s,t)的最短路径Dist(s,t);
如果起点s、目标点t在同一最短路径树SPT中,且存在路径SPT(s,t),则获得路径SPT(s,t)为点对(s,t)的最短路径Dist(s,t);
若否,基于预设的估价函数,获得点对(s,t)的最短路径Dist(s,t);
其中,(s,t)为所述时变道路网络中的点对,s为所述点对中的起点,t为所述点对中的目标点,s.FSPT为所述起点s对应的前向路径树,t.TSPT为所述目标点t对应的后向路径树,Dist(s,t)为所述点对(s,t)的最短路径,SPT为起点s、目标点t在的同一最短路径树,SPT(s,t)为所述同一最短路径树中的路径。
2.根据权利要求1所述的方法,其特征在于,构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树,包括:
构造每个所述地标对应的前向最短路径树,并基于每个所述地标对应的前向最短路径树,存储每个所述地标到该地标对应的前向最短路径树中的所有节点的最短路径及最短路径值;
构造每个所述地标对应的后向最短路径树,并基于每个所述地标对应的后向最短路径树,存储所述地标对应的后向最短路径树中的所有节点到该地标的最短路径及最短路径值。
3.根据权利要求2所述的方法,其特征在于,构造每个所述地标对应的前向最短路径树,包括:
创建第一队列openQueue1和第二队列openQueue2,所述第一队列存放待扩展的节点,所述第二队列存放已经计算出最短路径的已扩展节点;
创建第一标签shortestNode1和第二标签shortestValue2,所述第一标签shortestNode1记录当前计算出最短路径的已扩展节点,所述第二标签shortestValue2记录所述第一标签shortestNode1中已扩展节点相应的路径值;
对于所述多个地标中的一个地标l,将所述第一标签shortestNode1存放的已扩展节点添加于该地标对应的前向最短路径树l.FSPT和所述第二队列closedQueue2,根据所述第一标签shortestNode1存放的已扩展节点的出度边集合O(shortestNode1)进行扩展,依次将出度边的终点n添加于所述第一队列openQueue1并更新该地标l到终点n的最短路径值d(l,n)及所述终点的父节点P(n);计算所述第一队列openQueue1中当前距离该地标l最近的节点并更新所述第一标签shortestNode1和所述第二标签shortestValue2;重复以上操作直至所述第一标签shortestNode1内的最后一个可达节点添加于所述第二队列closedQueue2,获得更新后的该地标对应的前向最短路径树l.FSPT;
其中,openQueue1为所述第一队列,openQueue2为所述第二队列,shortestNode1为所述第一标签,shortestValue2为所述第二标签,l为所述地标,l.FSPT为该地标对应的前向最短路径树;O(shortestNode1)为已扩展节点的出度边集合;d(l,n)为该地标l到终点n的最短路径值,n为所述出度边的终点,P(n)为所述终点的父节点。
4.根据权利要求2所述的方法,其特征在于,构造每个所述地标对应的后向最短路径树,包括:
创建第三队列openQueue3和第四队列closedQueue4,所述第三队列openQueue3存放待扩展的节点,所述第四队列closedQueue4存放已经计算出最短路径的已扩展节点;
创建第三标签shortestNode3和第四标签shortestValue4,第三标签shortestNode3记录当前计算出最短路径的已扩展节点,第四标签shortestValue4记录所述第三标签shortestNode3中已扩展节点相应的路径值;
对于所述多个地标中的一个地标l,将所述第三标签shortestNode3存放的已扩展节点添加于该地标对应的后向最短路径树l.TSPT和所述第四队列closedQueue4,根据所述第三标签shortestNode3存放的已扩展节点的入度边集合I(shortestNode3)进行扩展,依次将入度边的起点m添加于所述第三队列openQueue3并更新所述入度边的起点m到该地标l最短路径值d(m,l)及所述入度边的起点的子节点C(m);计算所述第三队列openQueue3中当前距离该地标l最近的节点并更新所述第三标签shortestNode3和所述第四标签shortestValue4;重复以上操作直至所述第三标签shortestNode3内最后一个可达节点添加于所述第四队列closedQueue4,获得更新后的该地标对应的后向最短路径树l.TSPT;
其中,openQueue3为所述第三队列,openQueue4为所述第四队列,shortestNode3为所述第三标签,shortestValue4为所述第四标签,l为所述地标,l.TSPT为该地标对应的后向最短路径树;I(shortestNode3)为已扩展节点的入度边集合,d(m,l)为所述入度边的起点m到该地标l最短路径值,m为所述入度边的起点,C(m)为所述入度边的起点的子节点。
5.根据权利要求1所述的方法,其特征在于,对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新,包括:
若所述边e=(i,j)∈E的权值增加,对所述边相关联的地标l对应的前向最短路径树或后向最短路径树中的受所述权值增加影响的节点进行更新,e=(i,j)∈E为所述边,l为所述地标。
6.根据权利要求1所述的方法,其特征在于,对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新,还包括:
若所述边e=(i,j)∈E的权值减小,且所述边相关联的地标l对应的前向最短路径树满足d(l,i)+w′(e)<d(l,j),对所述边相关联的地标l对应的前向最短路径树中的受所述权值减小影响的节点进行更新;
若所述边e=(i,j)∈E的权值减小,且所述边相关联的地标l对应的后向最短路径树满足d(j,l)+w′(e)<d(i,l),对所述边相关联的地标l对应的后向最短路径树中的受所述权值减小影响的节点进行更新;
其中,d(l,i)表示地标l到所述边e=(i,j)∈E上的节点i的最短路径值,w′(e)表示所述边e=(i,j)∈E的权值减小后的值,d(l,j)表示地标l到所述边e=(i,j)∈E上的节点j的最短路径值;d(j,l)表示所述边e=(i,j)∈E上的节点j到地标l的最短路径值;d(i,l)表示所述边e=(i,j)∈E上的节点i到地标l的最短路径值,e=(i,j)∈E为所述边,l为所述地标。
7.一种路径更新装置,其特征在于,所述装置包括:
创建单元,用于创建不含负全边的时变道路网络;其中,所述不含负全边的所述时变道路网络为拓扑图模型G=(V,E,W),V表示所述时变道路网络中的节点集合,E表示所述时变道路网络中的边集合,W表示所述时变道路网络中的边的权值集合,L为地标集,地标集包括多个地标,且
构造单元,用于获取时变道路网络中的多个地标,并基于所述时变道路网络,分别构造所述多个地标中每个地标对应的前向最短路径树和后向最短路径树;
更新单元,用于当检测到所述时变道路网络中的一边的权值发生变化时,获取所述边相关联的地标对应的前向最短路径树或后向最短路径树,及对所述边相关联的地标对应的前向最短路径树或后向最短路径树中的受所述权值发生变化影响的节点进行更新;
所述装置还包括:
路径规划单元,用于当检测到所述时变道路网络中的点对(s,t)进行路径规划时,若起点s是地标,则基于起点s对应的前向路径树s.FSPT,获得点对(s,t)的最短路径Dist(s,t);
若目标点t是地标,则根据目标点t对应的后向路径树t.TSPT,获得点对(s,t)的最短路径Dist(s,t);
如果起点s、目标点t在同一最短路径树SPT中,且存在路径SPT(s,t),则获得路径SPT(s,t)为点对(s,t)的最短路径Dist(s,t);
若否,基于预设的估价函数,获得点对(s,t)的最短路径Dist(s,t);
其中,(s,t)为所述时变道路网络中的点对,s为所述点对中的起点,t为所述点对中的目标点,s.FSPT为所述起点s对应的前向路径树,t.TSPT为所述目标点t对应的后向路径树,Dist(s,t)为所述点对(s,t)的最短路径,SPT为起点s、目标点t在的同一最短路径树,SPT(s,t)为所述同一最短路径树中的路径。
8.根据权利要求7所述的装置,其特征在于,所述构造单元包括第一构造子单元和第二构造子单元;
所述第一构造子单元,用于构造每个所述地标对应的前向最短路径树,并基于每个所述地标对应的前向最短路径树,存储每个所述地标到该地标对应的前向最短路径树中的所有节点的最短路径及最短路径值;
第二构造子单元,用于构造每个所述地标对应的后向最短路径树,并基于每个所述地标对应的后向最短路径树,存储所述地标对应的后向最短路径树中的所有节点到该地标的最短路径及最短路径值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710847107.3A CN107644076B (zh) | 2017-09-18 | 2017-09-18 | 路径更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710847107.3A CN107644076B (zh) | 2017-09-18 | 2017-09-18 | 路径更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107644076A CN107644076A (zh) | 2018-01-30 |
CN107644076B true CN107644076B (zh) | 2021-11-12 |
Family
ID=61111761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710847107.3A Active CN107644076B (zh) | 2017-09-18 | 2017-09-18 | 路径更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107644076B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103490955A (zh) * | 2013-09-18 | 2014-01-01 | 电子科技大学 | 基于卡尔曼滤波的时变网络链路丢包率的估计方法 |
CN103970856A (zh) * | 2014-05-07 | 2014-08-06 | 中国人民大学 | 一种有权有向动态网络上的最短路径估算方法 |
CN103994768A (zh) * | 2014-05-23 | 2014-08-20 | 北京交通大学 | 动态时变环境下寻求全局时间最优路径的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9146961B2 (en) * | 2009-11-13 | 2015-09-29 | Oracle International Corporation | Techniques for efficient queries on a file system-like repository |
CN101995850B (zh) * | 2010-11-05 | 2012-02-29 | 江俊逢 | 一种计算机辅助数字控制方法与系统 |
CN105787596A (zh) * | 2016-02-29 | 2016-07-20 | 泰华智慧产业集团股份有限公司 | 一种基于改进蚁群算法的应急物流路径优化方法 |
CN106845703B (zh) * | 2017-01-18 | 2020-08-11 | 东南大学 | 一种考虑转向延误的城市路网时变k最短路径搜索方法 |
-
2017
- 2017-09-18 CN CN201710847107.3A patent/CN107644076B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103490955A (zh) * | 2013-09-18 | 2014-01-01 | 电子科技大学 | 基于卡尔曼滤波的时变网络链路丢包率的估计方法 |
CN103970856A (zh) * | 2014-05-07 | 2014-08-06 | 中国人民大学 | 一种有权有向动态网络上的最短路径估算方法 |
CN103994768A (zh) * | 2014-05-23 | 2014-08-20 | 北京交通大学 | 动态时变环境下寻求全局时间最优路径的方法 |
Non-Patent Citations (2)
Title |
---|
"大规模图上的最短路径问题研究";张钟;《中国博士学位论文全文数据库 基础科学辑》;20141015;第A002-23页 * |
"移动智能终端导航系统中最短路径算法的研究与应用";冉春风;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140215;第I136-344页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107644076A (zh) | 2018-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846052B2 (en) | Community discovery method, device, server and computer storage medium | |
CN107479557B (zh) | 路径规划方法及装置 | |
US10496678B1 (en) | Systems and methods for generating and implementing knowledge graphs for knowledge representation and analysis | |
JP5906837B2 (ja) | 経路探索方法、経路探索装置、及びプログラム | |
US20140229307A1 (en) | Method of identifying outliers in item categories | |
WO2008016495A2 (en) | Determination of graph connectivity metrics using bit-vectors | |
US11748305B2 (en) | Suggesting a destination folder for a file to be saved | |
CN111078689B (zh) | 一种非连续型预排序遍历树算法的数据处理方法及系统 | |
WO2021174836A1 (zh) | 差分包生成方法方法、装置、计算机设备及存储介质 | |
CN108829769A (zh) | 一种可疑群组发现方法和装置 | |
WO2023168856A1 (zh) | 一种关联场景推荐方法、装置、存储介质及电子装置 | |
JP2014520318A (ja) | 圧縮一致列挙 | |
CN104063377B (zh) | 信息处理方法和使用其的电子设备 | |
US8577814B1 (en) | System and method for genetic creation of a rule set for duplicate detection | |
CN107644076B (zh) | 路径更新方法及装置 | |
JP6008785B2 (ja) | データベースにおけるデータ処理方法、データ・クエリ方法ならびに対応するデバイスおよびデータ・クエリ・デバイス | |
US9600468B2 (en) | Dictionary creation device, word gathering method and recording medium | |
WO2018225314A1 (ja) | データベース管理システムおよびデータベース管理方法 | |
CN108011735B (zh) | 社区发现方法及装置 | |
CN115599990A (zh) | 一种知识感知结合深度强化学习的跨域推荐方法及系统 | |
US20200167398A1 (en) | Apparatus for webpage scoring | |
CN114282121A (zh) | 业务节点推荐方法、系统、设备及存储介质 | |
JP2004220227A (ja) | 遺伝子ネットワーク経路探索装置及び方法並びにプログラム | |
US20190042975A1 (en) | Selection of data element to be labeled | |
CN116541421B (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 |