本发明涉及网络优化领域,特别是一种用于多路径路由的多条部分不相交最短路径快速寻找方法。
背景技术
网络拥塞是数据传输网络的痼疾,因为传统数据传输网络主要使用基于单最短路径的数据传输方法,由于其选择最优的链路(带宽最大/时延最低等)进行数据传输,数据传输的压力更容易集中在性能良好的那些链路与结点上,从而产生拥塞。不相交路径路由被视为可彻底解决网络拥塞的一种路由方案,且具有更好的容错性与网络负载均衡,但其节点或链路完全不相交的要求太过严格并且需要过多的资源。
技术实现要素:
本发明的目的在于提供一种用于多路径路由的多条部分不相交最短路径快速寻找方法,以克服现有技术中存在的缺陷。
为实现上述目的,本发明的技术方案是:一种用于多路径路由的多条部分不相交最短路径快速寻找方法,按照如下步骤实现:
步骤s1:将有向网络表示为有向图模型g=(v,e);
步骤s2:从所述有向图模型g中获取一条最短s-t路径p*,并令ω={p*},ω表示有向图模型g中最短s-t路径的集合;
步骤s3:根据ω中的所有路径,建立对应所述有向图g的一个传统余图
步骤s4:基于所述传统余图
步骤s5:从所述点分解余图
步骤s6:分解获取螺旋最优路径;
步骤s7:返回所述步骤s3,直到所有最短s-t路径p*处理完后结束。
在本发明一实施例中,在所述步骤s1中,
将所述有向网络表示为所述有向图模型g=(v,e),其中,v为有向图中的顶点,e为有向图中的边,n=|v|表示有向图g中顶点的个数,m=|e|则表示有向图g中边的条数,确定源点s和目的节点t,定义权重函数w(e),共享点数目的花费函数c(e)、共享点数目的上界δ,从节点u到节点v的一条路径p(u,v)。
寻找部分不相交最短路径方法的目标是得到一组路径,使得路径的总权重最小,并且满足下列3个约束条件:1)除源点和目的节点外,图中每个节点的出度等于入度;2)所有路径的共享点至多δ个;3)0-1变量:若边包含在所求路径内,则取1;反之,取0;即优化以下数学模型:
xe∈{0,1}e∈e
其中上述公式中的变量:xe表示集合{0,1}的非空真子集,w(e)表示边e的权重,k表示不相交路径的条数,s表示最短路径p*的起点,t表示最短路径p*的终点,δ+(v)表示离开点v的边集,δ-(v)表示进入点v的边集,c(e)边e的花费,
在本发明一实施例中,在所述步骤s2中,从图g中通过迪杰斯特拉方法找到一条最短s-t路径p*,并令ω={p*},i=1,其中ω表示图g中最短s-t路径的集合。
在本发明一实施例中,在所述步骤s3中,所述传统余图
在本发明一实施例中,在所述步骤s4中,还包括如下步骤:
步骤s41:把路径p*上每个内部的点v,除源点s和目的节点t以外,分解成点v1和v2;
步骤s42:在所述分解余图
步骤s43:替换原图边中至少有一个点在
1)若
2)若
3)若
同时,所有替换后的边的权重等于原边的权重,花费均为0。
也即,将传统余图中在最短路径p*上除了起始点以外的点分为两个点,即假设点u在p*上且u非起始点,将u分作u1与u2,同时添加两条边e(v1,v2)与e(v2,v1):
1)每条在图g中的边再根据是否在最短路径p*上进行操作:若边e(u,v)在最短路径p*上:那么在点分解余图
2)若边e(x,u)不在最短路径p*上,则继续进行如下判断:若点u在最短路径p*除了起始点{s,t}中:那么在点分解余图
3)若边e(v,y)不在最短路径p*上,则继续进行如下判断:若点v在最短路径p*除了起始点{s,t}中:那么在点分解余图
在本发明一实施例中,在所述步骤s5中,从所述分解余图
在本发明一实施例中,在所述步骤s6中,记p*uq为最优解,表示路径p*和路径q中的所有边去掉相同顶点之间但方向相反的边对的集合;把p*uq分解成p1和p2两条路径,获取螺旋最优路径。
相较于现有技术,本发明具有以下有益效果:一种用于多路径路由的多条部分不相交最短路径快速寻找方法,通过一种新的图结构(即点分解余图)的构造方法,将部分不相交路径的计算转换为受限最短路径的计算,使用增广路径方法找到允许有限数量的共享点的k条边不相交最短路径,从而在传输路径的不相交程度和占用的网络资源之间进行平衡。同时,通过虚拟网络和真实网络上的相关数据对所提出的部分不相交最短路径的构建方案进行了计算机仿真实验,实验结果显示该方法更高效,且运行时间降低高达三个数量级。提高了在网络中寻找不相交最短路径的效率和可行性,能够快速地找到部分不相交最短路径。
附图说明
图1为本发明中用于多路径路由的多条部分不相交最短路径快速寻找方法的流程图。
图2为本发明一实施例中构建点分解余图的原图。
图3为本发明一实施例中构建点分解余图的原图对应于最短路径的余图。
图4为本发明一实施例中构建点分解余图的点分解余图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
本发明一种用于多路径路由的多条部分不相交最短路径快速寻找方法,找到允许有限数量的共享点的k条边不相交最短路径,从而在传输路径的不相交程度和占用的网络资源之间进行平衡。通过构造点分解余图,将部分不相交路径的计算转换为受限最短路径的计算,使其可使用设计的增广路径方法寻找部分不相交路径,得到一种计算螺旋最优解的方案。难点主要在于如何构造点分解余图
进一步的,在本实施例中,具体步骤如下:
步骤s1:把有向网络表示为有向图g=(v,e);
步骤s2:从图g中找到一条最短s-t路径p*;
步骤s3:根据ω中的所有路径,建立对应图g的一个传统余图
步骤s4:基于传统余图
步骤s5:从
步骤s6:分解得到所求螺旋最优路径;
步骤s7:判断所有最短s-t路径p*是否处理完,若是,则结束,并输出多条部分不相交最短路径;否则返回所述步骤s3
进一步的,请参见图1,图1为可用于多路径路由的寻找多条部分不相交最短路径的快速方案的流程图。具体该方法的数学模型描述如下:
在本实施例中,在步骤s1中,把有向网络表示为有向图模型g=(v,e),其中,v为有向图中的顶点,e为有向图中的边,n=|v|表示有向图g中顶点的个数,m=|e|则表示有向图g中边的条数,确定源点s和目的节点t,定义权重函数w(e),共享点数目的花费函数c(e)、共享点数目的上界δ,从节点u到节点v的一条路径p(u,v)。
在本实施例中,寻找部分不相交最短路径方法的目标是得到一组路径,使得路径的总权重最小,并且满足下列3个约束条件:1)除源点和目的节点外,图中每个节点的出度等于入度;2)所有路径的共享点至多δ个;3)0-1变量:若边包含在所求路径内,则取1;反之,取0;即优化以下数学模型:
xe∈{0,1}e∈e
其中,xe表示集合{0,1}的非空真子集,w(e)表示边e的权重,k表示不相交路径的条数,s表示最短路径p*的起点,t表示最短路径p*的终点,δ+(v)表示离开点v的边集,δ-(v)表示进入点v的边集,c(e)边e的花费,
在本实施例中,在步骤s2中,从图g中使用迪杰斯特拉方法找到一条最短s-t路径p*,并令ω={p*},i=1,其中ω表示图g中最短s-t路径的集合。
在本实施例中,步骤s3中,根据上一步找到的最短s-t路径p*,建立对应图g的传统余图
在本实施例中,步骤s4中,基于传统余图
1)若
2)若
3)若
同时,所有替换后的边的权重等于原边的权重,花费均为0。
也即,将传统余图中在最短路径p*上除了起始点以外的点分为两个点,即假设点u在p*上且u非起始点,将u分作u1与u2,同时添加两条边e(v1,v2)与e(v2,v1),分别对应如下:
1)每条在图g中的边再根据是否在最短路径p*上进行操作:若边e(u,v)在最短路径p*上:那么在点分解余图
2)若边e(x,u)不在最短路径p*上,则继续进行如下判断:若点u在最短路径p*除了起始点{s,t}中:那么在点分解余图
3)若边e(v,y)不在最短路径p*上,则继续进行如下判断:若点v在最短路径p*除了起始点{s,t}中:那么在点分解余图
在本实施例中,步骤s5中,从
在本实施例中,步骤s6中,p*uq就是δv-2edsp问题的一个最优解,它表示路径p*和路径q中的所有边去掉相反边的集合。最后,把p*uq分解成p1和p2两条路径,也就是螺旋最优路径,该路径即为原问题的最优解。
在本实施例中,步骤s7中,如果找δv-kedsp问题的最优解,则迭代地在δv-(k-1)edsp上应用上述基于点分解余图的增广路径方案,即步骤s3至步骤s5的过程。
为了让本领域技术人员进一步理解本发明提出的技术方案,下面结合图2~图4提供的点分解余图
在本实施例中,首先从原图g中找到一条最短s-t路径p*,建立传统余图
其次,基于传统余图
最后,替换原图边中至少有一个点在
1)若
2)若
3)若
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。