CN113781817B - 一种基于共用计算的城市路网多源最短路径获取方法 - Google Patents

一种基于共用计算的城市路网多源最短路径获取方法 Download PDF

Info

Publication number
CN113781817B
CN113781817B CN202111141100.2A CN202111141100A CN113781817B CN 113781817 B CN113781817 B CN 113781817B CN 202111141100 A CN202111141100 A CN 202111141100A CN 113781817 B CN113781817 B CN 113781817B
Authority
CN
China
Prior art keywords
intersection
path
shortest path
source point
current
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
Application number
CN202111141100.2A
Other languages
English (en)
Other versions
CN113781817A (zh
Inventor
丁建勋
黄林煊
殷慧娟
颜江楠
樊哲延
曾嘉涵
查菲菲
徐小明
龙建成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei University of Technology
Original Assignee
Hefei University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei University of Technology filed Critical Hefei University of Technology
Priority to CN202111141100.2A priority Critical patent/CN113781817B/zh
Publication of CN113781817A publication Critical patent/CN113781817A/zh
Application granted granted Critical
Publication of CN113781817B publication Critical patent/CN113781817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096833Systems involving transmission of navigation instructions to the vehicle where different aspects are considered when computing the route
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Navigation (AREA)

Abstract

本发明公开了一种基于共用计算的城市路网多源最短路径获取方法,包括:1.获取实时城市道路路网图,并选定多个源点交叉口;2.取出各源点交叉口队列中的队首元素,并对其邻接交叉口进行松弛操作,将权重更新的最短路径的起始点加入到集合ΔAt中;3.对于集合ΔAt根据最短路径权重降序,并依次回溯ΔAt中路径,寻找需要重新加入各自源点交叉口队列队首的起点交叉口;4.若所有源点交叉口队列不为空,则继续进行上述操作,否则,停止搜索,得到多源最短路径值并输出最短路径。本发明能够运用共用计算的思想方法,有效提升大规模路网导航规划的计算效率,同时满足同时段多用户的不同出行点的出行需求。

Description

一种基于共用计算的城市路网多源最短路径获取方法
技术领域
本发明属于车载导航路径优化领域,具体的说是一种基于共用计算的城市路网多源最短路径获取方法。
背景技术
随着路网规模的不断扩大,路网节点相应增加,现有的最短路径导航系统都首先利用单源最短路算法或者全源最短路算法解决用户的出行需求,计算工作量巨大,很难满足人们对导航软件实时高效的要求。常用的全源最短路算法在大规模城市路网中使用,尤其是路网节点较为密集时,计算所涉的范围很广,耗时和资源占用相应增大,这种用资源数量换取效率质量的方法是普遍的应对方案。
在解决车载导航核心问题最短路求解上,不同学者设计了不同的算法,对于单源最短路算法的应用上,逐一单独采用单源最短路算法,会重复计算一些已经计算好的权重,造成了大量的计算冗余;而全源最短路径算法(所有点到所有点)又将进行不必要的单源点最短路径算法,计算量也随之增大,不适应与实时性导航的理念。
发明内容
本发明是为了解决上述现有技术存在的不足之处,提出一种基于共用计算的城市路网多源最短路径获取方法,以期能够运用共用计算的思想方法,有效提升大规模路网多路径导航规划的计算效率,同时满足同时段多用户的不同出发点的出行需求。
本发明为达到上述发明目的,采用如下技术方案:
本发明一种基于共用计算的城市路网多源最短路径获取方法的特点是按如下步骤进行:
步骤1:构建城市路网,定义参数并初始化;
获取实时道路网络数据并得到城市路网G=(V,A,W),V表示交叉口集合,且V={v1,v2,v3,…,vr,…,vR},vr表示第r个交叉口,r=1,2,3,…,R,R为所述城市路网G中的交叉口总数,A表示交叉口之间的路段集合,且A={(vi,vj)|i,j=1,2,3,…,R},(vi,vj)表示第i个交叉口vi到第j个交叉口vj之间的有向路段,W表示交叉口之间路段的权重,W={ωi,j|i,j=1,2,3,…,R},ωi,j为有向路段(vi,vj)的权重,若第i个交叉口vi到第j个交叉口vj之间存在有向路段(vi,vj),则表示第j个交叉口vj是第i个交叉口vi的邻接交叉口,且ωi,j≥0;若第i个交叉口vi到第j个交叉口vj之间不存在有向路段(vi,vj),则ωi,j=+∞;
定义当前迭代次数为t,并初始化t=1;
定义
Figure GDA0003648600290000021
表示当前第t次迭代下最短路径的权重的集合;
Figure GDA0003648600290000022
为当前第t次迭代下第i个交叉口vi到第j个交叉口vj之间最短路径的权重,若第i个交叉口vi到第j个交叉口vj之间的路径权重
Figure GDA0003648600290000023
不为+∞,则认为第j个交叉口vj是第i个交叉口vi的邻接交叉口;初始化Zt=W;
步骤2:获取源点交叉口集合:
将K个源点交叉口加入源点集合
Figure GDA0003648600290000024
其中,sk表示源点集合V′中第k个源点交叉口的下标,
Figure GDA0003648600290000025
表示交叉口集合V中第sk个交叉口,1<K<R;
步骤3:初始化第t次迭代的源点交叉口到各个交叉口的权重;
记当前第t次迭代下第sk个交叉口
Figure GDA0003648600290000026
到第sk个交叉口的
Figure GDA0003648600290000027
并将K个源点交叉口分别加入当前第t次迭代下各自的源点交叉口队列中;将第sk个交叉口
Figure GDA0003648600290000028
到除自身外其他交叉口的最短路径的权重记为+∞;
步骤4:更新第t次迭代下各源点交叉口到所有交叉口的最短路径的权重:
步骤4.1:初始化k=1;
步骤4.2:取出第t次迭代下第k个源点交叉口队列
Figure GDA0003648600290000029
中的队首元素
Figure GDA00036486002900000210
从而更新
Figure GDA00036486002900000211
Figure GDA00036486002900000212
“\”表示删除操作;
步骤4.3:将Zt赋值给Zt+1,对于队首元素
Figure GDA00036486002900000213
的任意邻接交叉口
Figure GDA00036486002900000214
Figure GDA00036486002900000215
则将
Figure GDA00036486002900000216
赋值给
Figure GDA00036486002900000217
记录从第sk个交叉口
Figure GDA00036486002900000218
到交叉口
Figure GDA00036486002900000219
的路径中交叉口
Figure GDA00036486002900000220
的前驱交叉口
Figure GDA00036486002900000221
Figure GDA00036486002900000222
赋值给
Figure GDA00036486002900000223
将第sk个交叉口
Figure GDA00036486002900000224
到交叉口
Figure GDA00036486002900000225
之间的路径记为
Figure GDA00036486002900000226
并加入路径起止点集合ΔAt中;将交叉口
Figure GDA00036486002900000227
加入队列
Figure GDA00036486002900000228
的队尾;否则,对队首元素
Figure GDA00036486002900000229
的其他邻接交叉口进行判断,直到遍历完队首元素
Figure GDA00036486002900000230
的所有邻接交叉口后,将k+1赋值给k后,返回步骤4.2执行,直到k=K为止,转至步骤5,其中,
Figure GDA00036486002900000231
表示当前第t次迭代下第sk个交叉口
Figure GDA00036486002900000232
到队首元素
Figure GDA00036486002900000233
的最小权重,
Figure GDA00036486002900000234
表示当前第t次迭代下第sk个交叉口
Figure GDA00036486002900000235
到交叉口
Figure GDA00036486002900000236
的最小权重,
Figure GDA00036486002900000237
表示当前第t次迭代下队首元素
Figure GDA0003648600290000031
到邻接交叉口
Figure GDA0003648600290000032
之间最短路径的权重,
Figure GDA0003648600290000033
表示当前第t+1次迭代下第sk个交叉口
Figure GDA0003648600290000034
到交叉口
Figure GDA0003648600290000035
之间最短路径的权重;
步骤5:判断路径起止点集合ΔAt中符合条件的路径,并将符合条件的路径的起点交叉口加入队列:
步骤5.0:若
Figure GDA0003648600290000036
且t≠1,则对路径起止点集合ΔAt中所有路径按照各自路径的权重进行降序排序,得到排序后的路径起止点集合ΔA′t,假设排序后的路径集合ΔA′t包含M条路径,定义当前路径为第m条路径,并初始化m=1后,执行步骤5.1;否则,转入步骤6;
步骤5.1:初始化k=1;获取排序后的路径起止点集合ΔA′t中第m条路径
Figure GDA0003648600290000037
的起始交叉口
Figure GDA0003648600290000038
和终点交叉口
Figure GDA0003648600290000039
步骤5.2:若起点
Figure GDA00036486002900000310
为交叉口集合V中第sk个交叉口
Figure GDA00036486002900000311
则执行步骤5.4;否则,执行步骤5.3;
步骤5.3:当
Figure GDA00036486002900000312
Figure GDA00036486002900000313
同时,
Figure GDA00036486002900000314
则将第m条路径的起始交叉口
Figure GDA00036486002900000315
加入队列
Figure GDA00036486002900000316
的队首,并将
Figure GDA00036486002900000317
赋值给
Figure GDA00036486002900000318
Figure GDA00036486002900000319
赋值给
Figure GDA00036486002900000320
记录从第sk个交叉口
Figure GDA00036486002900000321
到交叉口
Figure GDA00036486002900000322
的路径中交叉口
Figure GDA00036486002900000323
的前驱交叉口
Figure GDA00036486002900000324
其中,
Figure GDA00036486002900000325
表示当前第t次迭代下第sk个交叉口
Figure GDA00036486002900000326
到交叉口
Figure GDA00036486002900000327
的最小权重,
Figure GDA00036486002900000328
表示当前第t次迭代下第sk个交叉口
Figure GDA00036486002900000329
到交叉口
Figure GDA00036486002900000330
的最小权重,
Figure GDA00036486002900000331
表示第t+1次迭代下交叉口集合V第start个交叉口
Figure GDA00036486002900000332
到第end个交叉口
Figure GDA00036486002900000333
之间最短路径的权重;
步骤5.4:将k+1赋值给k后,返回步骤5.2执行,直到k=K为止;
步骤5.5:将m+1赋值给m,返回步骤5.1执行,直至m=M为止;
步骤6:判断所有队列
Figure GDA00036486002900000334
是否为空,若是,则表示得到源点交叉口集合V′中所有源点交叉口到交叉口集合V中任意点的最短路径的权重,并停止路径搜索;否则,将t+1赋值为t,返回步骤4执行;
步骤7:获取源点交叉口集合V′中第k个源点交叉口
Figure GDA00036486002900000335
到交叉口集合V中第i个交叉口vi的当前最短路径:
步骤7.1:在所述当前最短路径中,依据第i个交叉口vi的前驱交叉口
Figure GDA0003648600290000041
找到第i个交叉口vi的前驱交叉口为vj,再依据第j个交叉口vj的前驱交叉口
Figure GDA0003648600290000042
找到第j个交叉口vj的前驱交叉口为vm,以此类推,直到找到前驱交叉口为第k个源点交叉口
Figure GDA0003648600290000043
为止,得到第k个源点交叉口
Figure GDA0003648600290000044
到交叉口集合V中第i个交叉口vi的当前不完整最短路径
Figure GDA0003648600290000045
步骤7.2:遍历当前不完整最短路径中的每个交叉口,若遍历到的交叉口vm为源点交叉口且交叉口vm到路径中下一个交叉口vp的最短路径权重小于路段权重,则依据第p个交叉口vp的前驱交叉口
Figure GDA0003648600290000046
找到第p个交叉口vp的前驱交叉口为vq,并作为路径中交叉口vp的前驱交叉口加入到路径中,否则继续遍历,从而在遍历完所有路径中的所有交叉口后,得到更新后的不完整最短路径;
步骤7.3:将更新后的不完整最短路径作为当前不完整最短路径,并重复步骤7.2的操作,直至没有新的交叉口加入路径时为止;从而得到最终的路径即为第k个源点交叉口
Figure GDA0003648600290000047
到交叉口集合V中第i个交叉口vi的完整的最短路径。
与现有技术相比,本发明的有益效果在于:
1、本发明设计了一种介于单源最短路径算法与全源最短路径算法之间的部分源最短路径生成技术,并提出在计算多源最短路过程中,各源点的最短路径权重能共用计算,从而进一步提高了计算效率,更加高效处理大规模路网图,节省了资源的同时保证了效率,结合了实际导航应用需求现状,避免了不必要的时间损耗,为大型路网计算繁杂的难题提供巧妙的多源最短路的优化方法,实质性地提高了计算效率和求解质量,能够缓解导航规划的计算负担,更贴合实际应用。
2、在现有的全源最短路算法中,因其本质特性,在应对复杂大型图时的计算效率不高,需要对大型路网图中所有交叉口源点进行遍历搜索,使得效率大大降低。本发明考虑只选取存在用户搜索路径需求的源点展开最短路径搜索计算,省略没有用户发起路径搜索的源点搜索计算,从而在避免对全源展开路径搜索或者单源最短路径算法并行计算的情况下,以更高的效率进行一种多源最短路算法,为导航系统同时为多个用户提供定制最短路径提供新的解决方案。
3、在常用的全源最短路算法Floyd中,每一次迭代更新的任意两点最短路权重中都将利用上一轮迭代中更新的两点最短路权重,进行比较更新。本发明巧妙地将这一共用计算的思想应用到获取多源最短路径的方法中进行优化处理,并对更新的路径权重及时判断是否需要用于其他源点下一轮迭代更新,避免了路段权重的重复计算,减少了计算工作量。
4、本发明分别对每个源点的松弛更新以及对每个更新的权重判断是否能够用于下一轮的共用计算都是可以同时进行的,据此特性,本发明为多线程条件下的并行化计算提供了可能,为后续的城市路网导航规划工作中融合并行多源搜索奠定基础,并且便于与图划分技术和并行搜索相配合,为多用户路径规划进一步提速。
附图说明
图1为本发明流程图;
图2为本发明简单城市路网图和初始各最短路径权重表;
图3为本发明t=1次下各源点最短路权重、队列情况以及各节点间最短路权重图表;
图4为本发明t=2次下各源点最短路权重表、队列情况以及各节点间最短路权重图表;
图5为本发明t=3次下各源点最短路权重表、队列情况以及各节点间最短路权重图表;
图6为本发明t=4次下各源点最短路权重表、队列情况以及各节点间最短路权重图表;
图7为本发明t=5次下各源点最短路权重表、队列情况以及各节点间最短路权重图表;
图8为本发明t=6次下各源点最短路权重表、队列情况以及各节点间最短路权重图表;
图9为本发明t=7次下各源点最短路权重表、队列情况以及各节点间最短路权重图表。
具体实施方式
本实施例中,从求解一种基于单源和全源之间的多源最短路的想法出发,提出一种基于共用计算的城市路网多源最短路径获取方法,是对于一源点在最短路径搜索过程中,其他源点作为这一源点路径搜索中的某一经过点,其已经更新的某一路段最短路径能共用于这一源点的最短路径搜索计算方法,具体流程如图1所示,按如下步骤进行:
步骤1:构建城市路网,定义参数并初始化:
获取实时道路网络数据并得到城市路网G=(V,A,W),下面将以图2为简易路网图为例,V表示交叉口集合,且V={v1,v2,v3,…,vr,…,vR},vr表示第r个交叉口,r=1,2,3,…,R,R为所述城市路网G中的交叉口总数,A表示交叉口之间的路段集合,且A={(vi,vj)|i,j=1,2,3,…,R},(vi,vj)表示第i个交叉口vi到第j个交叉口vj之间的有向路段,W表示交叉口之间路段的权重,W={ωi,j|i,j=1,2,3,…,R},ωi,j为有向路段(vi,vj)的权重,若第i个交叉口vi到第j个交叉口vj之间存在有向路段(vi,vj),则表示第j个交叉口vj是第i个交叉口vi的邻接交叉口,且ωi,j≥0;若第i个交叉口vi到第j个交叉口vj之间不存在有向路段(vi,vj),则ωi,j=+∞,即实例图2中无有向线连接的两交叉口间的权重为无穷大;
定义当前迭代次数为t,并初始化t=1;
定义
Figure GDA0003648600290000061
表示当前第t次迭代下最短路径的权重的集合;
Figure GDA0003648600290000062
为当前第t次迭代下第i个交叉口vi到第j个交叉口vj之间最短路径的权重,若第i个交叉口vi到第j个交叉口vj之间的路径权重
Figure GDA0003648600290000063
不为+∞,则可认为第j个交叉口vj是第i个交叉口vi的邻接交叉口,即如图5中t=3时v3也为v1的邻接交叉口;初始化Zt=W,初始化如图3的Z1表所示;
步骤2:获取源点交叉口集合:
将K个源点交叉口加入源点集合
Figure GDA0003648600290000064
其中,sk表示源点集合V′中第k个源点交叉口的下标,
Figure GDA0003648600290000065
表示交叉口集合V中第sk个交叉口,1<K<R,如图2中V′所示;
步骤3:初始化第t次迭代的源点交叉口到各个交叉口的权重:
记当前第t次迭代下第sk个交叉口
Figure GDA0003648600290000066
到第sk个交叉口的
Figure GDA0003648600290000067
并将K个源点交叉口分别加入当前第t次迭代下各自的源点交叉口队列中;将第sk个交叉口
Figure GDA0003648600290000068
到除自身外其他交叉口的最短路径的权重记为+∞;
步骤4:更新第t次迭代下各源点交叉口到所有交叉口的最短路径的权重:
步骤4.1:初始化k=1;
步骤4.2:取出第t次迭代下第k个源点交叉口队列
Figure GDA0003648600290000069
中的队首元素
Figure GDA00036486002900000610
即图3到图9中各源点到各交叉口当前最短路径权值表中黑色斜体所对应的交叉口节点,从而更新
Figure GDA00036486002900000611
Figure GDA00036486002900000612
“\”表示删除操作;
步骤4.3:将Zt赋值给Zt+1,对于队首元素
Figure GDA00036486002900000613
的任意邻接交叉口
Figure GDA00036486002900000614
Figure GDA00036486002900000615
则将
Figure GDA00036486002900000616
赋值给
Figure GDA00036486002900000617
记录从第sk个交叉口
Figure GDA00036486002900000618
到交叉口
Figure GDA00036486002900000619
的路径中交叉口
Figure GDA00036486002900000620
的前驱交叉口
Figure GDA00036486002900000621
Figure GDA00036486002900000622
赋值给
Figure GDA00036486002900000623
将第sk个交叉口
Figure GDA00036486002900000624
到交叉口
Figure GDA00036486002900000625
之间的路径记为
Figure GDA00036486002900000626
并加入路径起止点集合ΔAt中;将交叉口
Figure GDA0003648600290000071
加入队列
Figure GDA0003648600290000072
的队尾;否则,对队首元素
Figure GDA0003648600290000073
的其他邻接交叉口进行判断,直到遍历完队首元素
Figure GDA0003648600290000074
的所有邻接交叉口后,将k+1赋值给k后,返回步骤4.2执行,直到k=K为止,转至步骤5,以图4中t=2为例,对源点v1和v5进行最短路径搜索,分别取出当前队首元素v2和v1后,将符合条件的邻接交叉口v3和v2分别加入队列中,并更新D1[3]=11和D1[5]=13以及D5[2]=19,即图4中加粗的数据,并将更新的路径加入集合ΔA2中,更新的路网图和各交叉口的最短路径权重表如图5中t=3初始所示,再如图7中,没有路径权重得到更新,则图8中的最短路权重图和图7中的最短路径权重表相同,其中,
Figure GDA0003648600290000075
表示当前第t次迭代下第sk个交叉口
Figure GDA0003648600290000076
到队首元素
Figure GDA0003648600290000077
的最小权重,
Figure GDA0003648600290000078
表示当前第t次迭代下第sk个交叉口
Figure GDA0003648600290000079
到交叉口
Figure GDA00036486002900000710
的最小权重,
Figure GDA00036486002900000711
表示当前第t次迭代下队首元素
Figure GDA00036486002900000712
到邻接交叉口
Figure GDA00036486002900000713
之间最短路径的权重,
Figure GDA00036486002900000714
表示当前第t+1次迭代下第sk个交叉口
Figure GDA00036486002900000715
到交叉口
Figure GDA00036486002900000716
之间最短路径的权重;
步骤5:判断路径起止点集合ΔAt中符合条件的路径,并将符合条件的路径的起点交叉口加入队列:
步骤5.0:若
Figure GDA00036486002900000717
且t≠1,则对路径起止点集合ΔAt中所有路径按照各自路径的权重进行降序排序,得到排序后的路径起止点集合ΔA′t,假设排序后的路径集合ΔA′t包含M条路径,定义当前路径为第m条路径,并初始化m=1后,执行步骤5.1;否则,转入步骤6,如图4中,将集合ΔA2排序得到新的起止点集合ΔA'2,此时集合中共有3条路径;
步骤5.1:初始化k=1;获取排序后的路径起止点集合ΔA′t中第m条路径
Figure GDA00036486002900000718
的起始交叉口
Figure GDA00036486002900000719
和终点交叉口
Figure GDA00036486002900000720
步骤5.2:若起点
Figure GDA00036486002900000721
为交叉口集合V中第sk个交叉口
Figure GDA00036486002900000722
则执行步骤5.4;否则,执行步骤5.3;
步骤5.3:当
Figure GDA00036486002900000723
Figure GDA00036486002900000724
同时,
Figure GDA00036486002900000725
则将第m条路径的起始交叉口
Figure GDA00036486002900000726
加入队列
Figure GDA00036486002900000727
的队首,并将
Figure GDA00036486002900000728
赋值给
Figure GDA00036486002900000729
Figure GDA00036486002900000730
赋值给
Figure GDA00036486002900000731
记录从第sk个交叉口
Figure GDA00036486002900000732
到交叉口
Figure GDA00036486002900000733
的路径中交叉口
Figure GDA00036486002900000734
的前驱交叉口
Figure GDA0003648600290000081
如图4中路径(v1→v3),对于源点v5,有
Figure GDA0003648600290000082
则将v3加入到队列Q5队首位置上,并更新
Figure GDA0003648600290000083
即图中加粗下划线的值。更新后t=3的初始简单路网图和各交叉口节点间的最短路径权重表如图5所示,简单路网图中虚线表示的即为更新的有向路径;如图6和图8,其ΔA′4和ΔA′6不为空,但更新的权重并不能赋予其更短的路径权值,故而不更新。其中,
Figure GDA0003648600290000084
表示当前第t次迭代下第sk个交叉口
Figure GDA0003648600290000085
到交叉口
Figure GDA0003648600290000086
的最小权重,
Figure GDA0003648600290000087
表示当前第t次迭代下第sk个交叉口
Figure GDA0003648600290000088
到交叉口
Figure GDA0003648600290000089
的最小权重,
Figure GDA00036486002900000810
表示第t+1次迭代下交叉口集合V第start个交叉口
Figure GDA00036486002900000811
到第end个交叉口
Figure GDA00036486002900000812
之间最短路径的权重;
步骤5.4:将k+1赋值给k后,返回步骤5.2执行,直到k=K为止;
步骤5.5:将m+1赋值给m,返回步骤5.1执行,直至m=M为止;
步骤6:判断所有队列
Figure GDA00036486002900000813
是否为空,若是,则表示得到源点交叉口集合V′中所有源点交叉口到交叉口集合V中任意点的最短路径的权重,并停止路径搜索;否则,将t+1赋值为t,返回步骤4执行,本实施例中最终所得的所有源点交叉口到各交叉口的最短路径权重如图9所示,所有源点交叉口到各交叉口的最短路径值如表1所示;
表1本发明各源点到各个交叉口的最短路径值
v<sub>1</sub> v<sub>2</sub> v<sub>3</sub> v<sub>4</sub> v<sub>5</sub> v<sub>6</sub>
v<sub>1</sub> 0 9 11 23 13 18
v<sub>5</sub> 10 19 21 33 0 28
步骤7:获取源点交叉口集合V′中第k个源点交叉口
Figure GDA00036486002900000814
到交叉口集合V中第i个交叉口vi的当前最短路径:
步骤7.1:在当前最短路径中,依据第i个交叉口vi的前驱交叉口
Figure GDA00036486002900000815
找到第i个交叉口vi的前驱交叉口为vj,再依据第j个交叉口vj的前驱交叉口
Figure GDA00036486002900000816
找到第j个交叉口vj的前驱交叉口为vm,以此类推,直到找到前驱交叉口为第k个源点交叉口
Figure GDA00036486002900000817
为止,得到第k个源点交叉口
Figure GDA0003648600290000091
到交叉口集合V中第i个交叉口vi的当前不完整最短路径
Figure GDA0003648600290000092
步骤7.2:开始遍历当前不完整最短路径中的每个交叉口,若此时遍历到的交叉口vn为源点交叉口且vn到路径中下一个交叉口vp的最短路径权重小于路段权重,则依据第p个交叉口vp的前驱交叉口
Figure GDA0003648600290000093
找到第p个交叉口vp的前驱交叉口为vq,加入路径中交叉口vp前面;否则继续遍历,从而在遍历完所有路径中所有交叉口后,得到更新后的不完整最短路径;
步骤7.3:将更新后的不完整最短路径作为当前不完整最短路径,并重复步骤7.2的操作,直至没有交叉口加入路径时停止操作,此时得到的路径为第k个源点交叉口
Figure GDA0003648600290000094
到交叉口集合V中第i个交叉口vi的完整的最短路径。
本实施例中所获的各源点到各交叉口点的最短路径如表2所示。
表2本发明多源最短路径获取结果
Figure GDA0003648600290000095
以v5到v3的最短路为例,根据图9中的各源点最短路权重表,寻找v3的前驱交叉口v1,寻找v1的前驱交叉口v5,已经找到源点,得到当前不完整最短路径{v5→v1→v3},发现此时路径中v1为源点交叉口,且
Figure GDA0003648600290000096
寻找从v1到v3的前驱交叉口v2,得到路径为{v5→v1→v2→v3},此时
Figure GDA0003648600290000097
说明已经得到了最短路径。

Claims (1)

1.一种基于共用计算的城市路网多源最短路径获取方法,其特征是按如下步骤进行:
步骤1:构建城市路网,定义参数并初始化;
获取实时道路网络数据并得到城市路网G=(V,A,W),V表示交叉口集合,且V={v1,v2,v3,…,vr,…,vR},vr表示第r个交叉口,r=1,2,3,…,R,R为所述城市路网G中的交叉口总数,A表示交叉口之间的路段集合,且A={(vi,vj)|i,j=1,2,3,…,R},(vi,vj)表示第i个交叉口vi到第j个交叉口vj之间的有向路段,W表示交叉口之间路段的权重,W={ωi,j|i,j=1,2,3,…,R},ωi,j为有向路段(vi,vj)的权重,若第i个交叉口vi到第j个交叉口vj之间存在有向路段(vi,vj),则表示第j个交叉口vj是第i个交叉口vi的邻接交叉口,且ωi,j≥0;若第i个交叉口vi到第j个交叉口vj之间不存在有向路段(vi,vj),则ωi,j=+∞;
定义当前迭代次数为t,并初始化t=1;
定义
Figure FDA0003648600280000011
表示当前第t次迭代下最短路径的权重的集合;
Figure FDA0003648600280000012
为当前第t次迭代下第i个交叉口vi到第j个交叉口vj之间最短路径的权重,若第i个交叉口vi到第j个交叉口vj之间的路径权重
Figure FDA0003648600280000013
不为+∞,则认为第j个交叉口vj是第i个交叉口vi的邻接交叉口;初始化Zt=W;
步骤2:获取源点交叉口集合:
将K个源点交叉口加入源点集合
Figure FDA0003648600280000014
其中,sk表示源点集合V′中第k个源点交叉口的下标,
Figure FDA0003648600280000015
表示交叉口集合V中第sk个交叉口,1<K<R;
步骤3:初始化第t次迭代的源点交叉口到各个交叉口的权重;
记当前第t次迭代下第sk个交叉口
Figure FDA0003648600280000016
到第sk个交叉口的
Figure FDA0003648600280000017
并将K个源点交叉口分别加入当前第t次迭代下各自的源点交叉口队列中;将第sk个交叉口
Figure FDA0003648600280000018
到除自身外其他交叉口的最短路径的权重记为+∞;
步骤4:更新第t次迭代下各源点交叉口到所有交叉口的最短路径的权重:
步骤4.1:初始化k=1;
步骤4.2:取出第t次迭代下第k个源点交叉口队列
Figure FDA0003648600280000019
中的队首元素
Figure FDA00036486002800000110
从而更新
Figure FDA00036486002800000111
Figure FDA0003648600280000021
“\”表示删除操作;
步骤4.3:将Zt赋值给Zt+1,对于队首元素
Figure FDA0003648600280000022
的任意邻接交叉口
Figure FDA0003648600280000023
Figure FDA0003648600280000024
则将
Figure FDA0003648600280000025
赋值给
Figure FDA0003648600280000026
记录从第sk个交叉口
Figure FDA0003648600280000027
到交叉口
Figure FDA0003648600280000028
的路径中交叉口
Figure FDA0003648600280000029
的前驱交叉口
Figure FDA00036486002800000210
Figure FDA00036486002800000211
赋值给
Figure FDA00036486002800000212
将第sk个交叉口
Figure FDA00036486002800000213
到交叉口
Figure FDA00036486002800000214
之间的路径记为
Figure FDA00036486002800000215
并加入路径起止点集合ΔAt中;将交叉口
Figure FDA00036486002800000216
加入队列
Figure FDA00036486002800000217
的队尾;否则,对队首元素
Figure FDA00036486002800000218
的其他邻接交叉口进行判断,直到遍历完队首元素
Figure FDA00036486002800000219
的所有邻接交叉口后,将k+1赋值给k后,返回步骤4.2执行,直到k=K为止,转至步骤5,其中,
Figure FDA00036486002800000220
表示当前第t次迭代下第sk个交叉口
Figure FDA00036486002800000221
到队首元素
Figure FDA00036486002800000222
的最小权重,
Figure FDA00036486002800000223
表示当前第t次迭代下第sk个交叉口
Figure FDA00036486002800000224
到交叉口
Figure FDA00036486002800000225
的最小权重,
Figure FDA00036486002800000226
表示当前第t次迭代下队首元素
Figure FDA00036486002800000227
到邻接交叉口
Figure FDA00036486002800000228
之间最短路径的权重,
Figure FDA00036486002800000229
表示当前第t+1次迭代下第sk个交叉口
Figure FDA00036486002800000230
到交叉口
Figure FDA00036486002800000231
之间最短路径的权重;
步骤5:判断路径起止点集合ΔAt中符合条件的路径,并将符合条件的路径的起点交叉口加入队列:
步骤5.0:若
Figure FDA00036486002800000232
且t≠1,则对路径起止点集合ΔAt中所有路径按照各自路径的权重进行降序排序,得到排序后的路径起止点集合ΔA′t,假设排序后的路径集合ΔA′t包含M条路径,定义当前路径为第m条路径,并初始化m=1后,执行步骤5.1;否则,转入步骤6;
步骤5.1:初始化k=1;获取排序后的路径起止点集合ΔA′t中第m条路径
Figure FDA00036486002800000233
的起始交叉口
Figure FDA00036486002800000234
和终点交叉口
Figure FDA00036486002800000235
步骤5.2:若起点
Figure FDA00036486002800000236
为交叉口集合V中第sk个交叉口
Figure FDA00036486002800000237
则执行步骤5.4;否则,执行步骤5.3;
步骤5.3:当
Figure FDA00036486002800000238
Figure FDA00036486002800000239
同时,
Figure FDA00036486002800000240
则将第m条路径的起始交叉口
Figure FDA00036486002800000241
加入队列
Figure FDA00036486002800000242
的队首,并将
Figure FDA00036486002800000243
赋值给
Figure FDA00036486002800000244
Figure FDA00036486002800000245
赋值给
Figure FDA00036486002800000246
记录从第sk个交叉口
Figure FDA00036486002800000247
到交叉口
Figure FDA00036486002800000248
的路径中交叉口
Figure FDA00036486002800000249
的前驱交叉口
Figure FDA0003648600280000031
其中,
Figure FDA0003648600280000032
表示当前第t次迭代下第sk个交叉口
Figure FDA0003648600280000033
到交叉口
Figure FDA0003648600280000034
的最小权重,
Figure FDA0003648600280000035
表示当前第t次迭代下第sk个交叉口
Figure FDA0003648600280000036
到交叉口
Figure FDA0003648600280000037
的最小权重,
Figure FDA0003648600280000038
表示第t+1次迭代下交叉口集合V第start个交叉口
Figure FDA0003648600280000039
到第end个交叉口
Figure FDA00036486002800000310
之间最短路径的权重;
步骤5.4:将k+1赋值给k后,返回步骤5.2执行,直到k=K为止;
步骤5.5:将m+1赋值给m,返回步骤5.1执行,直至m=M为止;
步骤6:判断所有队列
Figure FDA00036486002800000311
是否为空,若是,则表示得到源点交叉口集合V′中所有源点交叉口到交叉口集合V中任意点的最短路径的权重,并停止路径搜索;否则,将t+1赋值为t,返回步骤4执行;
步骤7:获取源点交叉口集合V′中第k个源点交叉口
Figure FDA00036486002800000312
到交叉口集合V中第i个交叉口vi的当前最短路径:
步骤7.1:在所述当前最短路径中,依据第i个交叉口vi的前驱交叉口
Figure FDA00036486002800000313
找到第i个交叉口vi的前驱交叉口为vj,再依据第j个交叉口vj的前驱交叉口
Figure FDA00036486002800000314
找到第j个交叉口vj的前驱交叉口为vm,以此类推,直到找到前驱交叉口为第k个源点交叉口
Figure FDA00036486002800000315
为止,得到第k个源点交叉口
Figure FDA00036486002800000316
到交叉口集合V中第i个交叉口vi的当前不完整最短路径
Figure FDA00036486002800000317
步骤7.2:遍历当前不完整最短路径中的每个交叉口,若遍历到的交叉口vm为源点交叉口且交叉口vm到路径中下一个交叉口vp的最短路径权重小于路段权重,则依据第p个交叉口vp的前驱交叉口
Figure FDA00036486002800000318
找到第p个交叉口vp的前驱交叉口为vq,并作为路径中交叉口vp的前驱交叉口加入到路径中,否则继续遍历,从而在遍历完所有路径中的所有交叉口后,得到更新后的不完整最短路径;
步骤7.3:将更新后的不完整最短路径作为当前不完整最短路径,并重复步骤7.2的操作,直至没有新的交叉口加入路径时为止;从而得到最终的路径即为第k个源点交叉口
Figure FDA00036486002800000319
到交叉口集合V中第i个交叉口vi的完整的最短路径。
CN202111141100.2A 2021-09-28 2021-09-28 一种基于共用计算的城市路网多源最短路径获取方法 Active CN113781817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111141100.2A CN113781817B (zh) 2021-09-28 2021-09-28 一种基于共用计算的城市路网多源最短路径获取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111141100.2A CN113781817B (zh) 2021-09-28 2021-09-28 一种基于共用计算的城市路网多源最短路径获取方法

Publications (2)

Publication Number Publication Date
CN113781817A CN113781817A (zh) 2021-12-10
CN113781817B true CN113781817B (zh) 2022-07-05

Family

ID=78853934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111141100.2A Active CN113781817B (zh) 2021-09-28 2021-09-28 一种基于共用计算的城市路网多源最短路径获取方法

Country Status (1)

Country Link
CN (1) CN113781817B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115394109B (zh) * 2022-08-30 2023-05-02 合肥工业大学 基于共用计算的k对单源点单汇点最短路搜索方法及应用
CN116319518B (zh) * 2022-08-31 2024-02-20 王举范 一种基于知识图谱最短路径的信息获取方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089913A (zh) * 2007-07-12 2007-12-19 中国科学院地理科学与资源研究所 一种基于遗传算法和极大熵模型计算交叉口转向比例的方法
CN101958044A (zh) * 2010-09-13 2011-01-26 北京大学 一种快速疏散算法
CN105788334A (zh) * 2016-04-01 2016-07-20 东南大学 一种考虑驾驶者个人偏好的城市路径寻找方法
CN106289287A (zh) * 2015-05-22 2017-01-04 吉林大学 一种基于选线经验的车载端多目标最短路径计算方法
CN112885128A (zh) * 2021-01-14 2021-06-01 北京中交兴路信息科技有限公司 识别封堵路段的方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200234582A1 (en) * 2016-01-03 2020-07-23 Yosef Mintz Integrative system and methods to apply predictive dynamic city-traffic load balancing and perdictive parking control that may further contribute to cooperative safe driving

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089913A (zh) * 2007-07-12 2007-12-19 中国科学院地理科学与资源研究所 一种基于遗传算法和极大熵模型计算交叉口转向比例的方法
CN101958044A (zh) * 2010-09-13 2011-01-26 北京大学 一种快速疏散算法
CN106289287A (zh) * 2015-05-22 2017-01-04 吉林大学 一种基于选线经验的车载端多目标最短路径计算方法
CN105788334A (zh) * 2016-04-01 2016-07-20 东南大学 一种考虑驾驶者个人偏好的城市路径寻找方法
CN112885128A (zh) * 2021-01-14 2021-06-01 北京中交兴路信息科技有限公司 识别封堵路段的方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Solving uncertain shortest path problem based on granular computing;A. A. Alsawy 等;《2013 IEEE International Conference on Computational Intelligence and Computing Research》;20140127;全文 *
城市网建设的定位和模式;王康等;《金融电子化》;19991115(第11期);全文 *

Also Published As

Publication number Publication date
CN113781817A (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
CN113781817B (zh) 一种基于共用计算的城市路网多源最短路径获取方法
CN111462137B (zh) 一种基于知识蒸馏和语义融合的点云场景分割方法
CN109102124B (zh) 基于分解的动态多目标多路径诱导方法、系统及存储介质
CN112784968A (zh) 一种加速分布式深度神经网络训练的混合流水线并行方法
CN113359849B (zh) 一种针对运动目标的多无人机协同快速搜索方法
CN113671985A (zh) 一种分阶段多基地无人机任务分配和航迹规划方法
CN108225333A (zh) 一种用于航线规划的最优路径生成方法
CN106228265A (zh) 基于改进粒子群优化的总拖期运输计划调度算法
CN113808424B (zh) 基于双向Dijkstra的城市路网K条最短路径的获取方法
CN115563927A (zh) 一种gpu加速构建最小直角斯坦纳树的芯片布线方法
CN112229409B (zh) 基于贝叶斯和进化算法的无人机协同航迹规划方法
CN114969234A (zh) 一种面向全量城市路网的向量表征方法
CN114001747B (zh) 基于共用计算和dijkstra算法的城市路网多源最短路径获取方法
CN112862083B (zh) 一种边缘环境下的深度神经网络推断方法及装置
CN114595871A (zh) 一种多无人机任务规划方法
CN109636709A (zh) 一种适用于异构平台的图计算方法
CN110245271B (zh) 基于属性图的大规模关联数据划分方法及系统
CN112486651A (zh) 一种基于改进遗传算法的云测试平台任务调度方法
CN110033111A (zh) 机场场面运动规划方法和装置
CN111177874B (zh) 一种利用gpu快速设计航路网络拓扑结构的方法
CN112884229B (zh) 基于差分进化算法的大型公共场所人流引导路径规划方法
CN114779758A (zh) 无人机与无人车异构协同系统的路径规划方法
CN108764570A (zh) 一种基于蚁群算法与Lin-Kernighan算法解决旅行商问题的杂交算法
CN111369052B (zh) 简化路网ksp优化算法
CN114093188B (zh) 一种基于spfa算法的城市k则最短路径获取方法

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