CN115394109B - 基于共用计算的k对单源点单汇点最短路搜索方法及应用 - Google Patents
基于共用计算的k对单源点单汇点最短路搜索方法及应用 Download PDFInfo
- Publication number
- CN115394109B CN115394109B CN202211058176.3A CN202211058176A CN115394109B CN 115394109 B CN115394109 B CN 115394109B CN 202211058176 A CN202211058176 A CN 202211058176A CN 115394109 B CN115394109 B CN 115394109B
- Authority
- CN
- China
- Prior art keywords
- intersection
- source
- sink
- current
- distance
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000004364 calculation method Methods 0.000 title claims abstract description 17
- 239000002243 precursor Substances 0.000 claims description 54
- 230000006870 function Effects 0.000 claims description 46
- 239000011159 matrix material Substances 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 5
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 4
- 101150055297 SET1 gene Proteins 0.000 description 2
- 230000036632 reaction speed Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
- G08G1/0968—Systems involving transmission of navigation instructions to the vehicle
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
- G08G1/0968—Systems involving transmission of navigation instructions to the vehicle
- G08G1/096805—Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
- G08G1/0968—Systems involving transmission of navigation instructions to the vehicle
- G08G1/096833—Systems involving transmission of navigation instructions to the vehicle where different aspects are considered when computing the route
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种基于共用计算的K对单源点单汇点最短路搜索方法及应用,包括:1.由实时路况信息构建城市网络;2.获取目标源汇点交叉口对集合;3.参数定义及初始化;4.在当前源汇点下的向前搜索;5.根据当前搜索交叉口对应的B中的元素值,判断是否已经找到最短路径并进行B的更新。本发明考虑通过二维数组B来储存搜索得到的最短路径距离,从而能提高减少计算资源浪费,提高路径搜索效率,为实现更快速导航等提供支持。
Description
技术领域
本发明属于最短路径搜索领域,具体的说是一种基于共用计算的K对单源点单汇点最短路径获取方法及应用。
背景技术
随着如今城市规模的不断扩张,城市道路也变得愈发四通八达,城市路网的规模相应地不断扩大,交叉口节点数量相较以前大量增加。现有的最短路径算法主要可以分为单源最短路径算法和全源最短路径算法,这两种最短路径算法在解决大规模路网时工作效率都不高,难以满足当今人群对导航快速响应的需求。
如果用单源最短路径算法来搜索最短路径,会重复计算已经搜索到最短路权重,则会造成大量算力浪费,导致导航反应速度慢;而如果采用全源最短路径算法,则会对许多没有出行需求的交叉口点进行路径搜索,这将产生不必要的资源浪费,降低搜索效率,搜索时间变长,消耗手机等导航设备内存巨大,导致导航反应速度慢。
发明内容
本发明是为了解决上述现有技术存在的不足之处,提出一种基于共用计算的K对单源点单汇点最短路搜索方法及应用,以期能通过共用计算的思想来提高最短路径搜索效率,缩短最短路径搜索时间,从而能满足有K个出行需求的单源点单汇点对的路径搜索需求,为实现更快速导航等提供支持。
本发明为达到上述发明目的,采用如下技术方案:
本发明一种基于共用计算的K对单源点单汇点最短路搜索方法的特点在于,包括如下步骤:
步骤一:构建城市路网;
获取实时道路网络数据并得到城市路网G=(V,A,W),V表示交叉口集合,且V={v1,v2,v3,…,vi,…,vR},vi表示第i个交叉口,i=1,2,3,…,R,R为所述城市路网G中的交叉口总数,A表示交叉口之间的路段集合,且A={(vi,vj)|i,j=1,2,3,…,R},(vi,vj)表示第i个交叉口vi到第j个交叉口vj之间的有向路段,W表示交叉口之间路段的权重集合,W={wij|i,j=1,2,3,…,R},wij为有向路段(vi,vj)的权重,若第i个交叉口vi到第j个交叉口vj之间存在有向路段(vi,vj),则第j个交叉口vj为第i个交叉口vi的邻居交叉口,第i个交叉口vi为第j个交叉口vj的前驱交叉口,且ωij>0;若第i个交叉口vi到第j个交叉口vj之间不存在有向路段(vi,vj),则令ωij=+∞;
步骤2:获取目标源汇点交叉口对集合;
步骤3:参数定义及初始化;
定义当前第i个交叉口vi的前向距离为源点交叉口到当前第i个交叉口的最短距离,定义前向距离的数组集合F={Fk(vi)|i=1,2…R;k=1,2…K};Fk(vi)为第k个源汇点交叉口对中的第sk个源点交叉口到第i个交叉口vi的最短距离;
定义当前第i个交叉口vi的后向距离为当前第i个交叉口vi到汇点交叉口的最短距离,定义维度为R×R的后向距离矩阵B={Bxj|x,j=1,2,3…R};其中,Bkj表示任意第x个交叉口vx到任意第j个交叉口vj的最短距离,令表示从当前第i个交叉口vi到第ek个终点交叉口的后向距离;若则表示没有找到从当前第i个交叉口vi到第ek个终点交叉口的最短路径;若则表示已经找到从当前第i个交叉口vi到第ek个终点交叉口的最短路径;
定义当前第i个交叉口vi的估价函数Tk(vi)为第k个源汇点交叉口对中的第i个交叉口vi的前向距离Fk(vi)和后向距离之和,定义估价函数的数组集合T={Tk(vi)|i=1,2,…R;k=1,2,…K};
定义Q为在搜索过程中估价函数值最小的交叉口集合;
将第k个源汇点交叉口对中第sk个源点交叉口到第ek个终点交叉之间的最短路径上第i个交叉口vi的前驱交叉口记为λk(vi),定义前驱交叉口数组集合λ={λk(vi)|i=1,2,…R;k=1,2,…K};
初始化B={Bij=0|i,j=1,2,3…R},λ={λk(vi)=φ|i=1,2,…R;k=1,2,…K},k=1;
步骤4.1初始化;
步骤4.2:若当前交叉口vc不是第ek个汇点交叉口则遍历满足(vc,vn)∈A的邻居交叉口vn,若Fk(vc)+wcn<Fk(vn),则将Fk(vc)+wcn赋值给Fk(vn),将赋值给Tk(vn),其中,Fk(vc)、Fk(vn)分别为计算k个源汇点交叉口对时交叉口vc、vn的前向距离,wcn表示交叉口vc到交叉口vn的路段(vc,vn)的权重,为计算k个源汇点交叉口对时邻居交叉口vn的后向距离;设置vn的前驱交叉口λk(vn)为当前交叉口vc;
若当前交叉口vc是第ek个汇点交叉口则表示找到第k个源汇点交叉口对的最短路径,并将vc的估价函数Tk(vc)赋值给源点与汇点的后向距离将第k个源汇点交叉口对从源汇点交叉口对集合VOD中移除后,转入步骤6;
步骤4.3:设交叉口vl为满足vl∈V/Q的交叉口,其中,Tk(vl)为计算k个源汇点交叉口对时交叉口vl的估价函数,Fk(vl)为计算k个源汇点交叉口对时交叉口vl的前向距离,为计算k个源汇点交叉口对时交叉口vl的后向距离,将交叉口vl加入估价函数值最小的交叉口集合Q中;
步骤4.5:若交叉口vl到第ek个汇点交叉口的后向距离则表示找到源汇点交叉口对最短路径,并将vl的估价函数Tk(vl)赋值给源点与汇点的后向距离将第k个源汇点交叉口对从源汇点交叉口对集合VOD中移除后,转入步骤6;
步骤5.3:将当前前驱交叉口的前驱交叉口λk(λk(vc))赋值给前驱交叉口λk(vc)后,转入步骤5.1;
步骤6.2:计算当前交叉口vc与其前驱交叉口之间的最短路径值以更新B中对应元素的值,将当前交叉口vc的前向距离Fk(vc)减去当前交叉口vc的前驱交叉口λk(vc)的前向距离Fk(λk(vc))后赋值给前驱交叉口λk(vc)与当前交叉口vc之间的后向距离
步骤6.3:计算当前交叉口vc及其前驱交叉口λk(vc)与第ek个汇点交叉口之间的最短路径值以更新B中对应元素的值,将当前交叉口vc的估价函数Tk(vc)赋值给源点交叉口与第ek个汇点交叉口之间的后向距离将源点交叉口与第ek个汇点交叉口之间的后向距离减去当前交叉口vc的前驱交叉口λk(vc)的前向距离后再赋值给前驱交叉口λk(vc)与第ek个终点交叉口之间的后向距离
步骤6.4:将λk(λk(vc))赋值给λk(vc)后,转入步骤6.1;
步骤7:判断是否已经找到所有源汇点交叉口对的最短路径:
如果源汇点交叉口对集合VOD=φ,则表示已找到所有源汇点交叉口对的最短路径;并根据前驱交叉口,逐个将K对源汇点交叉口对之间最短路径输出;
如果源汇点交叉口对集合VOD≠φ,则表示未找到所有源汇点交叉口对的最短路径,令源汇点交叉口对的次序k+1赋值给k后,转入步骤4。
本发明一种电子设备,包括存储器以及处理器,其特点在于,所述存储器用于存储支持处理器执行权利要求1所述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
本发明一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特点在于,所述计算机程序被处理器运行时执行所述方法的步骤。
与现有最短路径算法相比,本算法的优点在于:
1、本发明提出了的最短路径方法应用了共用计算思想,对前面迭代得到的交叉口之间的最短路径权重进行重复利用,这使在迭代搜索最短路径时,省去了许多不必要的与前面迭代重复的搜索,缩短了搜索路径所需时间,从而提高了路径搜索的效率。
2、本发明所提出的方法在应用于大规模路网时具有更加出色的搜索效率,现有导航算法在面对大规模路网时会产生许多不必要的计算资源浪费,而本发明提出的算法借用共用计算的思想,节省了计算资源的同时,保证了运算效率,可以提高导航软件的响应速度,缩小响应时间,为人们提供更好的导航服务。
3、本发明提出的方法可以在路径搜索迭代时更新交叉口之间的最短路径权重,根据最短路径的子路径同样是最短路径这一定理,可以在得到一条最短路径时对该条最短路径上的交叉口之间的最短路径权重进行及时地更新,减少后面迭代运行次数,从而减少了手机等导航设备内存消耗,优化导航体验。
4、本发明提出的方法可以解决K个对单源点单汇点对之间的最短路径搜索问题,这更加符合现实的导航需求。在大规模路网上,很容易同时存在许多单源点单汇点对之间存在出行需求,单源最短路径算法需要对这些单源点单汇点对逐一解决,而全源最短路径算法则会对许多不必要的单源点单汇点对进行搜索,而本发明提出的方法则会减少不必要的搜索,更加符合多用户进行路径规划需求。
附图说明
图1为本发明流程图;
图2为本发明路网节点示意图;
图3为本发明参数初始化图;
图4为本发明以第四个节点为当前节点进行搜索图;
图5为本发明以第二个节点为当前节点进行搜索图;
图6为本发明以第一个节点为当前节点进行搜索图;
图7为本发明以第三个节点为当前节点进行搜索图;
图8为本发明进行搜索以及二维数组B的更新图;
图9为本发明搜索到最短路径图;
图10为本发明第二轮单源点单汇点对节点搜索参数初始化图;
图11为本发明第二轮从起始节点开始搜索图;
图12为本发明以第六个节点为当前节点进行搜索图;
图13为本发明继续边界扩张图;
图14为本发明利用共用计算思想图;
图15为本发明第二轮搜索结束图。
具体实施方式
本实施例中,一种基于共用计算的K对单源点单汇点最短路搜索方法的整体框架流程图如图1所示,具体包括如下步骤:
步骤一:构建城市路网;
获取实时道路网络数据并得到城市路网G=(V,A,W),V表示交叉口集合,且V={v1,v2,v3,…,vi,…,vR},vi表示第i个交叉口,i=1,2,3,…,R,R为城市路网G中的交叉口总数,A表示交叉口之间的路段集合,且A={(vi,vj)|i,j=1,2,3,…,R},(vi,vj)表示第i个交叉口vi到第j个交叉口vj之间的有向路段,W表示交叉口之间路段的权重集合,W={wij|i,j=1,2,3,…,R},wij为有向路段(vi,vj)的权重,若第i个交叉口vi到第j个交叉口vj之间存在有向路段(vi,vj),则第j个交叉口vj为第i个交叉口vi的邻居交叉口,第i个交叉口vi为第j个交叉口vj的前驱交叉口,且ωij>0;若第i个交叉口vi到第j个交叉口vj之间不存在有向路段(vi,vj),则令ωij=+∞。本实施例中,构建城市路网如图2所示,路网中交叉口总数R=8;
步骤2:获取目标源汇点交叉口对集合;
将待计算最短路的K个源汇点交叉口对加入目标源汇点交叉口集合1<K<R,其中,表示第k个源汇点交叉口对;和表示目标源汇点交叉口集合VOD中第sk个源点交叉口和第ek个汇点交叉口。本实例中,求解的目标源汇点对交叉口集合为VOD={<v4,v8>,<v1,v8>},K=2;
步骤3:参数定义及初始化;
定义当前第i个交叉口vi的前向距离为源点交叉口到当前第i个交叉口的最短距离,定义前向距离的数组集合F={Fk(vi)|i=1,2…R;k=1,2…K};Fk(vi)为第k个源汇点交叉口对中的第sk个源点交叉口到第i个交叉口vi的最短距离;
定义当前第i个交叉口vi的后向距离为当前第i个交叉口vi到汇点交叉口的最短距离,定义维度为R×R的后向距离矩阵B={Bxj|x,j=1,2,3…R};其中,Bkj表示任意第x个交叉口vx到任意第j个交叉口vj的最短距离,令表示从当前第i个交叉口vi到第ek个终点交叉口的后向距离;若则表示没有找到从当前第i个交叉口vi到第ek个终点交叉口的最短路径;若则表示已经找到从当前第i个交叉口vi到第ek个终点交叉口的最短路径;定义当前第i个交叉口vi的估价函数Tk(vi)为第k个源汇点交叉口对中的第i个交叉口vi的前向距离Fk(vi)和后向距离之和,定义估价函数的数组集合T={Tk(vi)|i=1,2,…R;k=1,2,…K};
定义Q为在搜索过程中估价函数值最小的交叉口集合;
将第k个源汇点交叉口对中第sk个源点交叉口到第ek个终点交叉之间的最短路径上第i个交叉口vi的前驱交叉口记为λk(vi),定义前驱交叉口数组集合λ={λk(vi)|i=1,2,…R;k=1,2,…K};
初始化B={Bij=0|i,j=1,2,3…R},λ={λk(vi)=φ|i=1,2,…R;k=1,2,…K},k=1;
步骤4.1初始化;
获取第k个源汇点交叉口对令令当前交叉口记为vc,初始化第sk个源点交叉口为当前交叉口vc,初始化Fk(vi)={+∞|i=1,2,…R},Tk(vi)={+∞|i=1,2,…R};当k=1时,如图3所示,获取第一个汇源点交叉口对<v4,v8>,令Q={v4},v4为当前交叉口vc,初始化F1(vi)={+∞|i=1,2,…8},T1(vi)={+∞|i=1,2,…R};当k=2时,如图10所示,获取第二个汇源点交叉口对<v1,v8>,令Q={v1},v1为当前交叉口vc,初始化F2(vi)={+∞|i=1,2,…8},T2(vi)={+∞|i=1,2,…R};
步骤4.2:若当前交叉口vc不是第ek个汇点交叉口则遍历满足(vc,vn)∈A的邻居交叉口vn,若Fk(vc)+wcn<Fk(vn),则将Fk(vc)+wcn赋值给Fk(vn),将赋值给Tk(vn),其中,Fk(vc)、Fk(vn)分别为计算k个源汇点交叉口对时交叉口vc、vn的前向距离,wcn表示交叉口vc到交叉口vn的路段(vc,vn)的权重,为计算k个源汇点交叉口对时邻居交叉口vn的后向距离;设置vn的前驱交叉口λk(vn)为当前交叉口vc。当k=1时,在如图3所示当前交叉口为v4,继续向前搜索v4的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v2为当前交叉口如图4所示;继续向前搜索v2的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v1为当前交叉口如图5所示;继续向前搜索v1的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v6为当前交叉口如图6所示;继续向前搜索v6的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v3为当前交叉口如图7所示;继续向前搜索v3的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v5为当前交叉口如图8所示;继续向前搜索v5的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v8为当前交叉口如图9所示,此时当前交叉口为汇点交叉口v8为会汇点交叉口,停止继续搜索;当k=2时,在如图10所示当前交叉口为v1,继续向前搜索v1的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v6为当前交叉口如图11所示;继续向前搜索v6的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v2为当前交叉口如图12所示;继续向前搜索v2的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v3为当前交叉口如图13所示;继续向前搜索v3的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v7为当前交叉口如图14所示;继续向前搜索v7的邻居交叉口,更新各邻居交叉口的前向距离,估价函数及矩阵B,选择当前估价函数最小的交叉口v8为当前交叉口如图14所示,此时当前交叉口为汇点交叉口v8为会汇点交叉口,停止继续搜索;
若当前交叉口vc是第ek个汇点交叉口则表示找到第k个源汇点交叉口对的最短路径,并将vc的估价函数Tk(vc)赋值给源点与汇点的后向距离将第k个源汇点交叉口对从源汇点交叉口对集合VOD中移除后,如图9-10所示,转入步骤6;
步骤4.3:设交叉口vl为满足vl∈V/Q的交叉口,其中,Tk(vl)为计算k个源汇点交叉口对时交叉口vl的估价函数,Fk(vl)为计算k个源汇点交叉口对时交叉口vl的前向距离,为计算k个源汇点交叉口对时交叉口vl的后向距离,将交叉口vl加入估价函数值最小的交叉口集合Q中,如图4Q中加入v2,图5Q中加入v1,图6Q中加入v6,图7Q中加入v3,图8Q中加入v5,图9Q中加入v7及汇点交叉口v8,图11Q中加入v6,图12Q中加入v2,图13Q中加入v3,图14Q中加入v7,图15Q中加入v4;
步骤4.5:若交叉口vl到第ek个汇点交叉口的后向距离如图8,图14当前节点的后向距离均为0,则表示找到源汇点交叉口对最短路径,并将vl的估价函数Tk(vl)赋值给源点与汇点的后向距离将第k个源汇点交叉口对从源汇点交叉口对集合VOD中移除后,转入步骤6;
步骤5.3:将当前前驱交叉口的前驱交叉口λk(λk(vc))赋值给前驱交叉口λk(vc)后,转入步骤5.1;
步骤6.2:计算当前交叉口vc与其前驱交叉口之间的最短路径值以更新B中对应元素的值,将当前交叉口vc的前向距离Fk(vc)减去当前交叉口vc的前驱交叉口λk(vc)的前向距离Fk(λk(vc))后赋值给前驱交叉口λk(vc)与当前交叉口vc之间的后向距离
步骤6.3:计算当前交叉口vc及其前驱交叉口λk(vc)与第ek个汇点交叉口之间的最短路径值以更新B中对应元素的值,将当前交叉口vc的估价函数Tk(vc)赋值给源点交叉口与第ek个汇点交叉口之间的后向距离将源点交叉口与第ek个汇点交叉口之间的后向距离减去当前交叉口vc的前驱交叉口λk(vc)的前向距离后再赋值给前驱交叉口λk(vc)与第ek个终点交叉口之间的后向距离
步骤6.4:将λk(λk(vc))赋值给λk(vc)后,转入步骤6.1;
步骤7:判断是否已经找到所有源汇点交叉口对的最短路径:
如果源汇点交叉口对集合VOD=φ,则表示已找到所有源汇点交叉口对的最短路径;并根据前驱交叉口,逐个将K对源汇点交叉口对之间最短路径输出;
如果源汇点交叉口对集合VOD≠φ,则表示未找到所有源汇点交叉口对的最短路径,令源汇点交叉口对的次序k+1赋值给k后,转入步骤4;
本实施例中,一种电子设备,包括存储器以及处理器,该存储器用于存储支持处理器执行上述K对单源点单汇点最短路搜索方法的程序,该处理器被配置为用于执行所述存储器中存储的程序。
本实施例中,一种计算机可读存储介质,是在计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述K对单源点单汇点最短路搜索方法的步骤。
综上所述,本方案采用共用计算的思想,利用前次源汇点交叉口对计算更新的后向距离矩阵B,为后续源汇点交叉口计算最短路径提供精确后向距离估算,在A*框架之下,解决现有算法后向距离估计不精确且计算复杂的问题,快速获得新的精确后向距离,从而减少不必要计算、提高了K多次单源点单汇点最短路径计效率,为路径导航等应用提供技术支持,提高其反应速度,缩短反应时间,更好地为人们服务。
Claims (3)
1.一种基于共用计算的K对单源点单汇点最短路搜索方法,其特征在于,包括如下步骤:
步骤一:构建城市路网;
获取实时道路网络数据并得到城市路网G=(V,A,W),V表示交叉口集合,且V={v1,v2,v3,…,vi,…,vR},vi表示第i个交叉口,i=1,2,3,…,R,R为所述城市路网G中的交叉口总数,A表示交叉口之间的路段集合,且A={(vi,vj)|i,j=1,2,3,…,R},(vi,vj)表示第i个交叉口vi到第j个交叉口vj之间的有向路段,W表示交叉口之间路段的权重集合,W={wij|i,j=1,2,3,…,R},wij为有向路段(vi,vj)的权重,若第i个交叉口vi到第j个交叉口vj之间存在有向路段(vi,vj),则第j个交叉口vj为第i个交叉口vi的邻居交叉口,第i个交叉口vi为第j个交叉口vj的前驱交叉口,且ωij>0;若第i个交叉口vi到第j个交叉口vj之间不存在有向路段(vi,vj),则令ωij=+∞;
步骤2:获取目标源汇点交叉口对集合;
步骤3:参数定义及初始化;
定义当前第i个交叉口vi的前向距离为源点交叉口到当前第i个交叉口的最短距离,定义前向距离的数组集合F={Fk(vi)|i=1,2…R;k=1,2…K};Fk(vi)为第k个源汇点交叉口对中的第sk个源点交叉口到第i个交叉口vi的最短距离;
定义当前第i个交叉口vi的后向距离为当前第i个交叉口vi到汇点交叉口的最短距离,定义维度为R×R的后向距离矩阵B={Bxj|x,j=1,2,3…R};其中,Bxj表示任意第x个交叉口vx到任意第j个交叉口vj的最短距离,令表示从当前第i个交叉口vi到第ek个终点交叉口的后向距离;若则表示没有找到从当前第i个交叉口vi到第ek个终点交叉口的最短路径;若则表示已经找到从当前第i个交叉口vi到第ek个终点交叉口的最短路径;
定义当前第i个交叉口vi的估价函数Tk(vi)为第k个源汇点交叉口对中的第i个交叉口vi的前向距离Fk(vi)和后向距离之和,定义估价函数的数组集合T={Tk(vi)|i=1,2,…R;k=1,2,…K};
定义Q为在搜索过程中估价函数值最小的交叉口集合;
将第k个源汇点交叉口对中第sk个源点交叉口到第ek个终点交叉口之间的最短路径上第i个交叉口vi的前驱交叉口记为λk(vi),定义前驱交叉口数组集合λ={λk(vi)|i=1,2,…R;k=1,2,…K};
初始化B={Bij=0|i,j=1,2,3…R},λ={λk(vi)=φ|i=1,2,…R;k=1,2,…K},k=1;
步骤4.1初始化;
步骤4.2:若当前交叉口vc不是第ek个汇点交叉口则遍历满足(vc,vn)∈A的邻居交叉口vn,若Fk(vc)+wcn<Fk(vn),则将Fk(vc)+wcn赋值给Fk(vn),将赋值给Tk(vn),其中,Fk(vc)、Fk(vn)分别为计算k个源汇点交叉口对时交叉口vc、vn的前向距离,wcn表示交叉口vc到交叉口vn的路段(vc,vn)的权重,为计算k个源汇点交叉口对时邻居交叉口vn的后向距离;设置vn的前驱交叉口λk(vn)为当前交叉口vc;
若当前交叉口vc是第ek个汇点交叉口则表示找到第k个源汇点交叉口对的最短路径,并将vc的估价函数Tk(vc)赋值给源点与汇点的后向距离将第k个源汇点交叉口对从源汇点交叉口对集合VOD中移除后,转入步骤6;
步骤4.3:设交叉口vl为满足vl∈V/Q的交叉口,其中,Tk(vl)为计算k个源汇点交叉口对时交叉口vl的估价函数,Fk(vl)为计算k个源汇点交叉口对时交叉口vl的前向距离,为计算k个源汇点交叉口对时交叉口vl的后向距离,将交叉口vl加入估价函数值最小的交叉口集合Q中;
步骤4.5:若交叉口vl到第ek个汇点交叉口的后向距离则表示找到源汇点交叉口对最短路径,并将vl的估价函数Tk(vl)赋值给源点与汇点的后向距离将第k个源汇点交叉口对从源汇点交叉口对集合VOD中移除后,转入步骤6;
步骤5.3:将当前前驱交叉口的前驱交叉口λk(λk(vc))赋值给前驱交叉口λk(vc)后,转入步骤5.1;
步骤6.2:计算当前交叉口vc与其前驱交叉口之间的最短路径值以更新B中对应元素的值,将当前交叉口vc的前向距离Fk(vc)减去当前交叉口vc的前驱交叉口λk(vc)的前向距离Fk(λk(vc))后赋值给前驱交叉口λk(vc)与当前交叉口vc之间的后向距离
步骤6.3:计算当前交叉口vc及其前驱交叉口λk(vc)与第ek个汇点交叉口之间的最短路径值以更新B中对应元素的值,将当前交叉口vc的估价函数Tk(vc)赋值给源点交叉口与第ek个汇点交叉口之间的后向距离将源点交叉口与第ek个汇点交叉口之间的后向距离减去当前交叉口vc的前驱交叉口λk(vc)的前向距离后再赋值给前驱交叉口λk(vc)与第ek个终点交叉口之间的后向距离
步骤6.4:将λk(λk(vc))赋值给λk(vc)后,转入步骤6.1;
步骤7:判断是否已经找到所有源汇点交叉口对的最短路径:
如果源汇点交叉口对集合VOD=φ,则表示已找到所有源汇点交叉口对的最短路径;并根据前驱交叉口,逐个将K对源汇点交叉口对之间最短路径输出;
如果源汇点交叉口对集合VOD≠φ,则表示未找到所有源汇点交叉口对的最短路径,令源汇点交叉口对的次序k+1赋值给k后,转入步骤4。
2.一种电子设备,包括存储器以及处理器,其特征在于,所述存储器用于存储支持处理器执行权利要求1所述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
3.一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058176.3A CN115394109B (zh) | 2022-08-30 | 2022-08-30 | 基于共用计算的k对单源点单汇点最短路搜索方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058176.3A CN115394109B (zh) | 2022-08-30 | 2022-08-30 | 基于共用计算的k对单源点单汇点最短路搜索方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115394109A CN115394109A (zh) | 2022-11-25 |
CN115394109B true CN115394109B (zh) | 2023-05-02 |
Family
ID=84124999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211058176.3A Active CN115394109B (zh) | 2022-08-30 | 2022-08-30 | 基于共用计算的k对单源点单汇点最短路搜索方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115394109B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106340194A (zh) * | 2016-09-06 | 2017-01-18 | 江苏智通交通科技有限公司 | 应急车辆信号优先控制方法 |
CN112991800A (zh) * | 2021-03-03 | 2021-06-18 | 合肥工业大学 | 基于角度限制和双向搜索的城市路网最短路径获取方法 |
CN113781817A (zh) * | 2021-09-28 | 2021-12-10 | 合肥工业大学 | 一种基于共用计算的城市路网多源最短路径获取方法 |
CN113808424A (zh) * | 2021-09-28 | 2021-12-17 | 合肥工业大学 | 基于双向Dijkstra的城市路网K条最短路径的获取方法 |
CN114001747A (zh) * | 2021-11-18 | 2022-02-01 | 合肥工业大学 | 基于共用计算和dijkstra算法的城市路网多源最短路径获取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2757504B1 (en) * | 2013-01-17 | 2022-06-01 | Google LLC | Route planning |
-
2022
- 2022-08-30 CN CN202211058176.3A patent/CN115394109B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106340194A (zh) * | 2016-09-06 | 2017-01-18 | 江苏智通交通科技有限公司 | 应急车辆信号优先控制方法 |
CN112991800A (zh) * | 2021-03-03 | 2021-06-18 | 合肥工业大学 | 基于角度限制和双向搜索的城市路网最短路径获取方法 |
CN113781817A (zh) * | 2021-09-28 | 2021-12-10 | 合肥工业大学 | 一种基于共用计算的城市路网多源最短路径获取方法 |
CN113808424A (zh) * | 2021-09-28 | 2021-12-17 | 合肥工业大学 | 基于双向Dijkstra的城市路网K条最短路径的获取方法 |
CN114001747A (zh) * | 2021-11-18 | 2022-02-01 | 合肥工业大学 | 基于共用计算和dijkstra算法的城市路网多源最短路径获取方法 |
Non-Patent Citations (3)
Title |
---|
NA WANG 等.Shortest Path Routing With Risk Control for Compromised Wireless Sensor Networks.《IEEE Access》.2019,全文. * |
丁建勋 等.基于改进K最短路算法的公交线网优化研究.《合肥工业大学学报》.2019,第第42卷卷(第第10期期),全文. * |
马学森 ; 宫帅 ; 朱建 ; 唐昊 ; .动态凸包引导的偏优规划蚁群算法求解TSP问题.通信学报.2018,(第10期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115394109A (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9500487B2 (en) | Shortest path determination for large graphs | |
Li et al. | Topology-aware neural model for highly accurate QoS prediction | |
US20110251789A1 (en) | Method and system for time-dependent routing | |
US20210124860A1 (en) | High-throughput computational material simulation optimisation method and apparatus based on time prediction | |
Amin et al. | iHPSA: An improved bio-inspired hybrid optimization algorithm for task mapping in Network on Chip | |
CN112328877B (zh) | 时间依赖路网上多用户的skyline查询的方法 | |
CN114967694A (zh) | 一种移动机器人协同环境探索方法 | |
CN111510334A (zh) | 一种基于粒子群算法的vnf在线调度方法 | |
CN115394109B (zh) | 基于共用计算的k对单源点单汇点最短路搜索方法及应用 | |
CN110689174A (zh) | 基于公共交通的人员路线规划方法及装置 | |
CN111623790B (zh) | 一种面向动态城市交通路网的快速路径规划方法 | |
KR20220037738A (ko) | 분산전원 연계 경로 생성 장치 및 그 방법 | |
CN117436627A (zh) | 任务分配方法、装置、终端设备及介质 | |
CN115547087B (zh) | 基于两阶段法与方向诱导的城市路网最短路径获取方法及应用 | |
CN115270377B (zh) | 一种基于改进蚁群算法的多电缆最佳路径规划方法 | |
CN111527734B (zh) | 节点流量占比预测方法及装置 | |
JP5049316B2 (ja) | ネットワークトポロジ設計装置、ネットワークトポロジ設計方法、およびプログラム | |
CN110083780B (zh) | 基于复杂网络模型中社团划分的个性化推荐方法 | |
CN113065073A (zh) | 一种城市的有效路径集搜索方法 | |
CN105488289A (zh) | 分布式环境下动态图结构匹配的方法 | |
CN114093188B (zh) | 一种基于spfa算法的城市k则最短路径获取方法 | |
Kang et al. | Learning scalable and transferable multi-robot/machine sequential assignment planning via graph embedding | |
Abeywickrama et al. | Bipartite matching: What to do in the real world when computing assignment costs dominates finding the optimal assignment | |
CN105550765B (zh) | 一种路网距离计算中的代表元选取方法 | |
CN104881426B (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 |