一种K短路径的计算方法技术

技术编号:19219573 阅读:26 留言:0更新日期:2018-10-20 08:09
本发明专利技术公开了一种K短路径的计算方法,涉及通信技术领域。分别获取源节点到每个邻居节点的路径并加入扩展路径集合;根据所述扩展路径集合中路径的权重从高到低的顺序,每次取出一条路径并按照网络拓扑的广度进行扩展,将扩展得到的非K短路径加入所述扩展路径集合后继续扩展,将扩展得到的K短路径加入最短路径集合并排序输出。本发明专利技术能够确保找到符合条件的所有K短路径,同时,根据路径的权重进行路径计算的收敛速度比较快,从而快速得到计算结果。

【技术实现步骤摘要】
一种K短路径的计算方法
本专利技术涉及通信
,具体是涉及一种K短路径的计算方法。
技术介绍
最短路径问题(ShortestPathProblem)是网络优化问题中最基本的问题之一。该问题的基本描述是:在给定的网络中,找到源节点和宿节点之间一条最短(距离、时延、代价)路径。而K短路径问题(K-ShortestPathProblem)基于最短路径问题,即从给定的网络中,找出源节点到宿点之间前K条最短路径。这两个问题广泛存在于旅行路线规划、物流运输规划、城市轨道交通规划、通信网络规划、卫星网络数据传输等众多场景中。目前最短路径规划算法有Dijkstra算法、Floyd算法、A-Star算法、Bellman-Ford算法、以及各种智能算法(神经网络算法、蚁群算法、遗传算法、模拟退火算法)等,这些算法通常没有考虑带有必经节点、必经路径、禁止节点、禁止路径等约束条件,因此无法应用在具有约束条件的实际场景中。现有的一种K短路径求解方法是先利用全网拓扑求得最小生成树,在计算得到的最小生成树上对待建路径中的必经节点或者链路进行排序处理,按照排序后的必经节点或者链路进行分段计算,并对分段计算得到的路径进行拼装得到K短路径,这种方法的缺陷是需要确定必经节点的顺序,由于最终路径不能成环,顺序的选择错误会导致计算不出来最终的路径。另一种K短路径求解方法是结合上述最短路径方法,并考虑必经节点、必经链路、禁止节点、禁止路径等约束条件而得到K短路径。以图1所示的3×3网络为例进行说明,当计算从节点5到节点3,且包含节点7的最短路径时,首先基于最短路径算法得到的前K条最短路径,然后逐一判断是否满足约束条件,前K条最短路径为:(1)5-6-3;(2)5-2-3;(3)5-8-9-6-3;(4)5-4-1-2-3;(5)5-8-7-4-1-2-3;(6)5-4-7-8-9-6-3。由于必经节点和/或链路在最短路径的反方向上,使用最短路径方法时,要算出前4条最短路径才能得到一条满足条件的路径(5),然后可能再跨多条路径才能得到第二条满足条件的路径(6)。因此,在这种约束条件下,使用最短路径方法算出前K-1条最短路径才能得到一条满足条件的路径,导致得到满足约束条件的所有K短路径比较费时,而且当K的取值过小时,也会导致得不到满足条件的路径。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种K短路径的计算方法,能够确保找到符合条件的所有K短路径,同时,根据路径的权重进行路径计算的收敛速度比较快,从而快速得到计算结果。本专利技术提供一种K短路径的计算方法,其包括以下步骤:分别获取源节点到每个邻居节点的路径并加入扩展路径集合;根据所述扩展路径集合中路径的权重从高到低的顺序,每次取出一条路径并按照网络拓扑的广度进行扩展,将扩展得到的非K短路径加入所述扩展路径集合后继续扩展,将扩展得到的K短路径加入最短路径集合并排序输出。在上述技术方案的基础上,所述路径的权重包括关键度,关键度的数值是路径满足的约束条件的数量。在上述技术方案的基础上,当多条路径的关键度的数值相同时,所述路径的权重还包括路径的距离、跳数和时延中的至少一项或者其任意组合。在上述技术方案的基础上,每次取出的路径是满足最多约束条件的一条路径,或者是满足相同数量约束条件的所有路径中的一条。在上述技术方案的基础上,所述扩展路径集合为二进制堆,权重高的路径存放在二进制堆的堆头。在上述技术方案的基础上,每次取出一条路径时,如果该路径成环,则丢弃。在上述技术方案的基础上,所述方法还包括:重复对所述扩展路径集合中路径的扩展操作,直到所述最短路径集合中路径总数为K,或者,所述扩展路径集合中的路径均被取出。在上述技术方案的基础上,所述方法还包括:当对所述扩展路径集合的操作达到操作上限值时,停止计算,对所述最短路径集合中的所有路径进行排序后输出;其中,对所述扩展路径集合的操作包括取出路径、加入路径和删除路径。在上述技术方案的基础上,所述方法还包括:当所述扩展路径集合中的路径总数达到路径上限值时,停止计算,对所述最短路径集合中的所有路径进行排序后输出。在上述技术方案的基础上,对所述最短路径集合中的所有路径进行排序的方法为:根据路径的距离、跳数和时延中的至少一项或者其任意组合。与现有技术相比,本专利技术的优点如下:(1)按照网络拓扑的广度从源节点逐步扩展到宿节点,能够确保找到符合条件的所有K短路径,同时,根据路径的权重进行路径计算的收敛速度比较快,从而快速得到计算结果。(2)通过设置扩展路径集合的操作次数或者路径总数的上限值来控制计算过程,在计算资源(内存)和计算时间受限的情况下,也能快速得到一部分甚至全部K短路径。(3)对取出的路径进行扩展时,每次可以扩展到取出的路径的末端节点的邻居节点,还可以根据实际情况灵活设置扩展方法,另外,约束条件可以是必经节点/路径、禁止节点/路径等,适应各种应用场景的要求。附图说明图1是一种3×3节点的网络拓扑示意图;图2是本专利技术第一实施例的4×4节点的网络拓扑示意图;图3是本专利技术第一实施例K短路径的计算方法流程图;图4是根据本专利技术第一实施例K短路径的计算方法得到的一条短路径。具体实施方式下面结合附图及具体实施例对本专利技术作进一步的详细描述。本专利技术提供一种K短路径的计算方法,其包括以下步骤:分别获取源节点到每个邻居节点的路径并加入扩展路径集合。根据扩展路径集合中路径的权重从高到低的顺序,每次取出一条路径并按照网络拓扑的广度进行扩展,将扩展得到的非K短路径加入扩展路径集合后继续扩展,将扩展得到的K短路径加入最短路径集合并排序输出。约束条件可以是必经节点、必经链路、禁止节点和禁止路径等,不作限定。K短路径应满足的约束条件至少为一个,也可以为多个,例如,K短路径满足的约束条件1是一个必经节点,K短路径满足的约束条件2是一个必经链路。当从源节点开始向宿节点分次进行扩展时,扩展的路径不满足所有约束条件的路径,或者,虽然满足所有约束条件,但是还未达到宿节点,都是非K短路径。为了清晰说明本方法实施例,首先给出如下定义:无向网络用图G(V,E)表示,其中V={vi│i=1,2,…,n},表示节点集,E={ej│i=1,2,…,m}表示网络中链路的集合,ej=(vi,vi+1)表示起始节点为vi,且末端节点为vi+1的链路。|V|表示无向网络图G中的节点总数量,|E|表示图G中的边的总数量。必经资源集合I={vi|vi∈V/{vs,vd},ej∈E},|I|表示必经资源集合中指定资源的总数量。P(vs,vd)表示节点vs到节点vd之间的一条路径,路径的权重包括关键度,关键度的数值是路径所满足的约束条件的数量,路径的关键度定义为key(P(vs,vi)),表示路径P(vs,vd)包含必经资源集合I中元素的个数,关键度越大,说明该路径中包含的指定资源越多。当key(P(vs,vd))=|I|时,说明该路径包含全部的指定资源。根据上述定义,K短路径问题可以描述为:在无向网络G(V,E)中,给定起始节点vs、目的节点vd,以及必经资源集合I,计算从vs到vd的代价最小的K条简单无环路径,这些路径包含必经资源集合I。扩展路径集合用容器U表示,用来存储自源节点vs到任意节点vi的简单无环路径P(vs本文档来自技高网
...

【技术保护点】
1.一种K短路径的计算方法,其特征在于,其包括以下步骤:分别获取源节点到每个邻居节点的路径并加入扩展路径集合;根据所述扩展路径集合中路径的权重从高到低的顺序,每次取出一条路径并按照网络拓扑的广度进行扩展,将扩展得到的非K短路径加入所述扩展路径集合后继续扩展,将扩展得到的K短路径加入最短路径集合并排序输出。

【技术特征摘要】
1.一种K短路径的计算方法,其特征在于,其包括以下步骤:分别获取源节点到每个邻居节点的路径并加入扩展路径集合;根据所述扩展路径集合中路径的权重从高到低的顺序,每次取出一条路径并按照网络拓扑的广度进行扩展,将扩展得到的非K短路径加入所述扩展路径集合后继续扩展,将扩展得到的K短路径加入最短路径集合并排序输出。2.如权利要求1所述的K短路径的计算方法,其特征在于:所述路径的权重包括关键度,关键度的数值是路径满足的约束条件的数量。3.如权利要求2所述的K短路径的计算方法,其特征在于:当多条路径的关键度的数值相同时,所述路径的权重还包括路径的距离、跳数和时延中的至少一项或者其任意组合。4.如权利要求2或3所述的K短路径的计算方法,其特征在于:每次取出的路径是满足最多约束条件的一条路径,或者是满足相同数量约束条件的所有路径中的一条。5.如权利要求1所述的K短路径的计算方法,其特征在于:所述扩展路径集合为二进制堆,权重高的路径存放在二进制堆的堆头。6...

【专利技术属性】
技术研发人员:何峰曹伟
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

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

1