最短路径查询方法及查询系统技术方案

技术编号:26031408 阅读:38 留言:0更新日期:2020-10-23 21:09
本发明专利技术公开了一种最短路径查询方法,包括:通过生成树算法获取最短路径Ri;计算Ri的备用路径集合{RBi};从备用路径集合{RBi}中获取最短路径R(i+1);计算最短路径R(i+1)的备用路径集合{RB(i+1)};利用备用路径集合{RB(i+1)}更新最短路径Ri的备用路径集合{RBi};从最短路径Ri的备用路径集合{RBi}和最短路径R2的备用路径集合{RB(i+1)}中获取最短路径R(i+2);循环S4‑S6步骤顺序依次获得不同备用路径集合的最短路径。本发明专利技术还公开了一种最短路径查询系统。本发明专利技术用于交通网络或通信网络能快速、准确查询topN最短路径,并且本发明专利技术能避免最短路径查询效率发生几何级数下降。

【技术实现步骤摘要】
最短路径查询方法及查询系统
本专利技术涉及信息
,特别是涉及一种用于交通网络或通信网络的最短路径查询方法。本专利技术还涉及一种用于交通或通信网络的最短路径查询系统。
技术介绍
目前在交通或通信领域可用的最短路径算法常见有4种:Dijkstra算法,Bellman-Ford算法,Floyd算法和SPFA算法。Dijkstra算法是由荷兰计算机科学家Dijkstra于1959年提出的,是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。Bellman-Ford算法由Bellman和Ford创立,原理是对图进行次松弛操作,得到所有可能的最短路径。Floyd算法又称为插点法,由1978年图灵奖获得者、斯坦福大学计算机科学系教授Floyd创立,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法。SPFA算法是Bellman-Ford算法的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA最坏情况下复杂度和朴素Bellman-Ford相同。上述4种算法都只解决了最短路径的算法,在提供进一步查找topN(多条)最短路径时或者难以奏效,或者效率几何级数下降。
技术实现思路

技术实现思路
部分中引入了一系列简化形式的概念,该简化形式的概念均为本领域现有技术简化,这将在具体实施方式部分中进一步详细说明。本专利技术的
技术实现思路
部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。本专利技术要解决的技术问题是提供一种用于交通网络或通信网络能快速、准确查询topN(前N条最短路径,N是正整数)最短路径的最短路径查询方法。本专利技术要解决的另一技术问题是提供一种用于交通网络或通信网络能快速、准确查询topN(前N条最短路径,N是正整数)最短路径的最短路径查询系统。为解决上述技术问题,本专利技术提供的最短路径查询方法,包括以下步骤:S1,通过生成树算法获取最短路径Ri;可选择的,实施步骤S1时,使用双向生成树算法获取最短路径Ri。使用双向的生成树算法进行单次寻路,可以在保证效率同时获得所有点到起点和终点的最短路径,减少递归中的重复计算。S2,计算Ri的备用路径集合{RBi};可选择的,备用路径集合计算包括以下子步骤;S2.1,排除最短路径Ri上的点集{Ax}和{Bx},排除线A1A2,B1B2;A1和B1是第一最短路径R1上的任选两点,A1与起点之间距离小于第一阈值,B1与终点之间距离小于第二阈值;{Ax}是最短路径Ri起点到A1之间的所有点的集,{Bx}是最短路径Ri上B1到终点之间的所有点的集,A2是最短路径Ri起点出发方向A1的下一点,B2是最短路径Ri起点出发方向B1上一点;S2.2,如果还存在最短路径R(i+1)与最短路径Ri在点集{Ax}和{Bx}完全重合,则排除线A1A3,B1B3;A3是最短路径Ri起点出发方向A1的下一点,B3是第一最短路径R1起点出发方向B1上一点;S2.3,查找A1到B1的最短路径,替换最短路径Ri上A1与B1之间的部分,得到备用路径RBiS2.4,对最短路径Ri上包括起点和终点在内的任意两点查询组成其备用路径集合{RBi}。S3,从备用路径集合{RBi}中获取最短路径R(i+1);S4,计算最短路径R(i+1)的备用路径集合{RB(i+1)};S5,利用备用路径集合{RB(i+1)}更新最短路径Ri的备用路径集合{RBi};S6,从最短路径Ri的备用路径集合{RBi}和最短路径R2的备用路径集合{RB(i+1)}中获取最短路径R(i+2);S7,循环S4-S6步骤顺序依次获得不同备用路径集合的最短路径;其中,i为最短路径序号,其为正整数。可选择的,进一步改进最短路径查询方法,实施步骤S2中,计算新增最短路径Rm的备用路径集合时,先将最短路径Rm与已有各条最短路径比较,对于新增最短路径Rm与现有各条最短路径路径重合部分点的备用路径计算采用直接继承。可选择的,进一步改进最短路径查询方法,更新新增路径Rm之前已有各条最短路径的备用路径集合时,比较Rm与已有各条最短路径只对已有各条最短路径排除与Rm重合路径部分点后的最长备用路径进行更新。本专利技术提供一种最短路径查询系统,包括:第一路径获取模块,其用于通过生成树算法获取最短路径Ri;第一计算模块,其用于计算Ri的备用路径集合{RBi};第二路径生成模块,其用于从备用路径集合{RBi}中获取最短路径R(i+1);第二计算模块,其用于计算最短路径R(i+1)的备用路径集合{RB(i+1)};更新模块,其用于更新最短路径Ri的备用路径集合{RBi};第二路径获取模块,其用于从最短路径Ri的备用路径集合{RBi}和最短路径R2的备用路径集合{RB(i+1)}中获取最短路径R(i+2);控制模块,其用于控制第二计算模块、更新模块和第二路径获取模块顺序循环执行,依次获得不同备用路径集合的最短路径。其中,i为最短路径序号,其为正整数。本专利技术各模块能通过计算机编程技术手段实现。可选择的,进一步改进所述的最短路径查询系统,第一路径获取模块使用双向生成树算法获取最短路径Ri。可选择的,进一步改进所述的最短路径查询系统,备用路径集合计算采用以下步骤;S2.1,排除最短路径Ri上的点集{Ax}和{Bx},排除线A1A2,B1B2;A1和B1是第一最短路径R1上的任选两点,A1与起点之间距离小于第一阈值,B1与终点之间距离小于第二阈值;{Ax}是最短路径Ri起点到A1之间的所有点的集,{Bx}是最短路径Ri上B1到终点之间的所有点的集,A2是最短路径Ri起点出发方向A1的下一点,B2是最短路径Ri起点出发方向B1上一点;S2.2,如果还存在最短路径R(i+1)与最短路径Ri在点集{Ax}和{Bx}完全重合,则排除线A1A3,B1B3;A3是最短路径Ri起点出发方向A1的下一点,B3是第一最短路径R1起点出发方向B1上一点;S2.3,查找A1到B1的最短路径,替换最短路径Ri上A1与B1之间的部分,得到备用路径RBiS2.4,对最短路径Ri上包括起点和终点在内的任意两点查询组成其备用路径集合{RBi},i为最短路径序号。可选择的,进一步改进所述的最短路径查询系统,第一计算模块计算新增最短路径Rm的备用路径集合时,先将最短路径Rm与已有各条最短路径比较,对于新增最短路径Rm与现有各条最短路径路径重合部分点的备用路径计算采用直接继承。可选择的,进一步改进所述的最短路径查询系统,更新模块其更新新增路径Rm之前已有各条最短路径的本文档来自技高网
...

【技术保护点】
1.一种最短路径查询方法,其特征在于,包括以下步骤:/nS1,通过生成树算法获取最短路径Ri;/nS2,计算Ri的备用路径集合{RBi};/nS3,从备用路径集合{RBi}中获取最短路径R(i+1);/nS4,计算最短路径R(i+1)的备用路径集合{RB(i+1)};/nS5,利用备用路径集合{RB(i+1)}更新最短路径Ri的备用路径集合{RBi};/nS6,从最短路径Ri的备用路径集合{RBi}和最短路径R2的备用路径集合{RB(i+1)}中获取最短路径R(i+2);/nS7,循环S4-S6步骤顺序依次获得不同备用路径集合的最短路径;/n其中,i为最短路径序号。/n

【技术特征摘要】
1.一种最短路径查询方法,其特征在于,包括以下步骤:
S1,通过生成树算法获取最短路径Ri;
S2,计算Ri的备用路径集合{RBi};
S3,从备用路径集合{RBi}中获取最短路径R(i+1);
S4,计算最短路径R(i+1)的备用路径集合{RB(i+1)};
S5,利用备用路径集合{RB(i+1)}更新最短路径Ri的备用路径集合{RBi};
S6,从最短路径Ri的备用路径集合{RBi}和最短路径R2的备用路径集合{RB(i+1)}中获取最短路径R(i+2);
S7,循环S4-S6步骤顺序依次获得不同备用路径集合的最短路径;
其中,i为最短路径序号。


2.如权利要求1所述的最短路径查询方法,其特征在于:实施步骤S1时,使用双向生成树算法获取最短路径Ri。


3.如权利要求1所述的最短路径查询方法,其特征在于:备用路径集合计算包括以下子步骤;
S2.1,排除最短路径Ri上的点集{Ax}和{Bx},排除线A1A2,B1B2;
A1和B1是第一最短路径R1上的任选两点,A1与起点之间距离小于第一阈值,B1与终点之间距离小于第二阈值;
{Ax}是最短路径Ri起点到A1之间的所有点的集,{Bx}是最短路径Ri上B1到终点之间的所有点的集,A2是最短路径Ri起点出发方向A1的下一点,B2是最短路径Ri起点出发方向B1上一点;
S2.2,如果还存在最短路径R(i+1)与最短路径Ri在点集{Ax}和{Bx}完全重合,则排除线A1A3,B1B3;
A3是最短路径Ri起点出发方向A1的下一点,B3是第一最短路径R1起点出发方向B1上一点;
S2.3,查找A1到B1的最短路径,替换最短路径Ri上A1与B1之间的部分,得到备用路径RBi
S2.4,对最短路径Ri上包括起点和终点在内的任意两点查询组成其备用路径集合{RBi}。


4.如权利要求3所述的最短路径查询方法,其特征在于:实施步骤S2中,计算新增最短路径Rm的备用路径集合时,先将最短路径Rm与已有各条最短路径比较,对于新增最短路径Rm与现有各条最短路径路径重合部分点的备用路径计算采用直接继承。


5.如权利要求3所述的最短路径查询方法,其特征在于:更新新增路径Rm之前已有各条最短路径的备用路径集合时,比较Rm与已有各条最短路径只对已有各条最短路径排除与Rm重合路径部分点后的最长备用路径进行更新。


6.一种最短路径查询系统,其特征在于,包括:<...

【专利技术属性】
技术研发人员:魏斌朱一章荐姜先荣陈贇陈瑜
申请(专利权)人:上海阿尔卡特网络支援系统有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1