买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】基于共用计算的K对单源点单汇点最短路搜索方法及应用_合肥工业大学_202211058176.3 

申请/专利权人:合肥工业大学

申请日:2022-08-30

公开(公告)日:2022-11-25

公开(公告)号:CN115394109A

主分类号:G08G1/0968

分类号:G08G1/0968

优先权:

专利状态码:有效-授权

法律状态:2023.05.02#授权;2022.12.13#实质审查的生效;2022.11.25#公开

摘要:本发明公开一种基于共用计算的K对单源点单汇点最短路搜索方法及应用,包括:1.由实时路况信息构建城市网络;2.获取目标源汇点交叉口对集合;3.参数定义及初始化;4.在当前源汇点下的向前搜索;5.根据当前搜索交叉口对应的B中的元素值,判断是否已经找到最短路径并进行B的更新。本发明考虑通过二维数组B来储存搜索得到的最短路径距离,从而能提高减少计算资源浪费,提高路径搜索效率,为实现更快速导航等提供支持。

主权项: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:获取目标源汇点交叉口对集合;将待计算最短路的K个源汇点交叉口对加入目标源汇点交叉口集合其中,表示第k个源汇点交叉口对;和表示目标源汇点交叉口集合VOD中第sk个源点交叉口和第ek个汇点交叉口;步骤3:参数定义及初始化;定义当前第i个交叉口vi的前向距离为源点交叉口到当前第i个交叉口的最短距离,定义前向距离的数组集合F={Fkvi|i=1,2…R;k=1,2…K};Fkvi为第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的估价函数Tkvi为第k个源汇点交叉口对中的第i个交叉口vi的前向距离Fkvi和后向距离之和,定义估价函数的数组集合T={Tkvi|i=1,2,…R;k=1,2,…K};定义Q为在搜索过程中估价函数值最小的交叉口集合;将第k个源汇点交叉口对中第sk个源点交叉口到第ek个终点交叉之间的最短路径上第i个交叉口vi的前驱交叉口记为λkvi,定义前驱交叉口数组集合λ={λkvi|i=1,2,…R;k=1,2,…K};初始化B={Bij=0|i,j=1,2,3…R},λ={λkvi=φ|i=1,2,…R;k=1,2,…K},k=1;步骤4:当前第k个源汇点交叉口对的向前搜索;步骤4.1初始化;获取第k个源汇点交叉口对令令当前交叉口记为vc,初始化第sk个源点交叉口为当前交叉口vc,初始化Fkvi={+∞|i=1,2,…R};步骤4.2:若当前交叉口vc不是第ek个汇点交叉口则遍历满足vc,vn∈A的邻居交叉口vn,若Fkvc+wcn<Fkvn,则将Fkvc+wcn赋值给Fkvn,将赋值给Tkvn,其中,Fkvc、Fkvn分别为计算k个源汇点交叉口对时交叉口vc、vn的前向距离,wcn表示交叉口vc到交叉口vn的路段vc,vn的权重,为计算k个源汇点交叉口对时邻居交叉口vn的后向距离;设置vn的前驱交叉口λkvn为当前交叉口vc;若当前交叉口vc是第ek个汇点交叉口则表示找到第k个源汇点交叉口对的最短路径,并将vc的估价函数Tkvc赋值给源点与汇点的后向距离将第k个源汇点交叉口对从源汇点交叉口对集合VOD中移除后,转入步骤6;步骤4.3:设交叉口vl为满足的交叉口,其中,Tkvl为计算k个源汇点交叉口对时交叉口vl的估价函数,Fkvl为计算k个源汇点交叉口对时交叉口vl的前向距离,为计算k个源汇点交叉口对时交叉口vl的后向距离,将交叉口vl加入估价函数值最小的交叉口集合Q中;步骤4.4:若交叉口vl到第ek个汇点交叉口的后向距离则设置交叉口vl为当前交叉口vc,并转入步骤5;步骤4.5:若交叉口vl到第ek个汇点交叉口的后向距离则表示找到源汇点交叉口对最短路径,并将vl的估价函数Tkvl赋值给源点与汇点的后向距离将第k个源汇点交叉口对从源汇点交叉口对集合VOD中移除后,转入步骤6;步骤5:当前交叉口vc的后向距离时,更新后向距离矩阵B;步骤5.1:若当前交叉口vc的前驱交叉口λkvc为源点交叉口则将当前交叉口vc的前向距离Fkvc赋值给当前交叉口vc与源汇点交叉口之间的后向距离转入步骤4.2;否则转入步骤5.2;步骤5.2将当前交叉口vc的前向距离Fkvc减去当前交叉口vc的前驱交叉口λkvc的前向距离Fkλvc后赋值给前驱交叉口λkvc与当前交叉口vc之间的后向距离步骤5.3:将当前前驱交叉口的前驱交叉口λkλkvc赋值给前驱交叉口λkvc后,转入步骤5.1;步骤6:当前交叉口vc的后向距离时,更新后向距离矩阵B;步骤6.1:若当前交叉口vc的前驱交叉口λkvc为源点交叉口则转入步骤7;否则转入步骤6.2;步骤6.2:计算当前交叉口vc与其前驱交叉口之间的最短路径值以更新B中对应元素的值,将当前交叉口vc的前向距离Fkvc减去当前交叉口vc的前驱交叉口λkvc的前向距离Fkλkvc后赋值给前驱交叉口λkvc与当前交叉口vc之间的后向距离若当前交叉口vc为第ek个汇点交叉口则转入步骤6.4;否则,执行步骤6.3;步骤6.3:计算当前交叉口vc及其前驱交叉口λkvc与第ek个汇点交叉口之间的最短路径值以更新B中对应元素的值,将当前交叉口vc的估价函数Tkvc赋值给源点交叉口与第ek个汇点交叉口之间的后向距离将源点交叉口与第ek个汇点交叉口之间的后向距离减去当前交叉口vc的前驱交叉口λkvc的前向距离后再赋值给前驱交叉口λkvc与第ek个终点交叉口之间的后向距离步骤6.4:将λkλkvc赋值给λkvc后,转入步骤6.1;步骤7:判断是否已经找到所有源汇点交叉口对的最短路径:如果源汇点交叉口对集合VOD=φ,则表示已找到所有源汇点交叉口对的最短路径;并根据前驱交叉口,逐个将K对源汇点交叉口对之间最短路径输出;如果源汇点交叉口对集合VOD≠φ,则表示未找到所有源汇点交叉口对的最短路径,令源汇点交叉口对的次序k+1赋值给k后,转入步骤4。

全文数据:

权利要求:

百度查询: 合肥工业大学 基于共用计算的K对单源点单汇点最短路搜索方法及应用

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。