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