基于WSON损伤模型的最短路径的计算方法及其系统与流程

文档序号:12865807阅读:669来源:国知局
基于WSON损伤模型的最短路径的计算方法及其系统与流程

本发明涉及数据和ip传输设备的技术领域,具体是涉及一种基于wson损伤模型的最短路径的计算方法及其系统。



背景技术:

wson(wavelengthswitchedopticalnetwork)也就是基于波分复用传输网的ason,是目前ietf标准组织倡导的智能波分标准,除了传统ason(automaticallyswitchedopticalnetwork)的功能外,主要解决波分网络中光纤/波长自动发现、在线波长路由选择、基于损伤模型的路由选择等问题,其核心技术依然集中在路径计算所采用的算法。

wson是将控制平面引入到波长网络中,在路径计算时,需要考虑波长的动态变化,以及物理链路的osnr(opticalsignalnoiseratio)即光信噪比。通常,初始状态下,网络中每段链路可以使用的波长信号数量一样,由于硬件限制,计算得到的逻辑通道路径上各段链路必须使用统一波长的光信号,波长的动态变化,也正是因为网络拓扑中可以同时存在多条逻辑通道,经过不同路径、使用不用波长信号的通道占用了网络资源,使网络中各链路的可用波长信号发生差异。较为简单的方法是先使用常用的最短路径策略,对给定波长计算一条每段链路该波长都可用的最短路径,若算路失败,遍历每个波长,直到某个波长算路成功或遍历完所有波长。此方法实现简单,但受限于波长不可改变,造成了资源浪费。对此,可以将部分节点作为中继节点,路由经过中继节点时,允许改变后续链路传输信号的波长,同时,也允许路径经过该节点但不作为中继节点(即波长不可变)。

通常一条路径的osnr可以由每段链路的硬件参数计算,且随着链路的增加而降低,一条符合传输要求的路径,其总osnr必须大于给定阈值。中继节点的另一个功能就是对光信号重新放大,使整条路径的osnr只需要满足:源节点到下一个中继节点、相邻中继节点、宿节点到上一个中继节点之间的osnr都大于阈值。

所以,中继功能可以分为两个部分:允许变换波长、重置osnr。如图1所示,要建立节点1到节点3的通道,由于链路1-2只有λ1波可用,链路2-3只有λ2波可用,则必须使节点2作为中继节点,才能允许通道路径的子路段信号波长不一致。又如图2所示,假设路径上波长都可用,链路1-2、2-3的osnr都是20,而路径1-2-3的整体osnr为15,若给定阈值为18,则必须使节点2作为中继节点,使路径1-2-3的两个子路段osnr都大于阈值。

传统意义上的最短路径算法只需要满足节点最少、链路代价最小等路由策略,结合中继功能重新定义后的最短路径,若将路径中源节点到下一个中继节点、相邻中继节点之间、宿节点到上一个中继节点之间路径简称为子路段,其算法需求可以总结为:寻找一条指定源节点到宿节点的最短路径,要求路径中的每一条子路段选择一个都可用的统一波长,并且所有子路段osnr不超过给定阈值。最后,由于实现中继功能的硬件代价关系,当路径经过中继节点时,该节点也可以选择不使用中继功能,作为普通节点,于是,新的算法还必须满足一个最重要的限制条件:要求路径上作为中继的节点数最少,并且此条件要更优先于路由策略。如图3所示,节点1到节点3的最短路径在节点最少的路由策略下应该是1-2-3,且节点2作为中继,但中继最少的需求更加优先时,1-4-5-6-3才是最佳路径。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种基于wson损伤模型的最短路径的计算方法及其系统,能够计算指定源节点到指定宿节点的最短路径,具有准确率高、实用性强的优点。

本发明提供一种基于wson损伤模型的最短路径的计算方法,包括如下步骤:

a、根据给定的路由策略计算前k条最短路径,k为正整数;

b、计算步骤a中k条路径的最少中继数,每一条路径的最少中继数的计算步骤如下:

b1、以该路径上所有具备中继功能的节点为界,将该路径分割为若干子路段,构造矩阵matrix[m][n],其中,n为路段数,m为波长数;

b2、将子路段的正向光纤经过的所有光放大器oa的xi叠加值,作为子路段总光信噪比osnr计算指标,得到数组xsum[n];将子路段的反向光纤经过的所有光放大器oa的xi叠加值,作为子路段的反向osnr计算指标,得到数组rvs_xsum[n];其中,xi为osnr的计算公式的指数部分,i为正整数,i的取值范围为1~n,n为路径单方向所经过的oa的总数,每一条子路段osnr都大于给定阈值t;

b3、根据动态规划算法思想,输入参数matrix[m][n]、xsum[n]、rvs_xsum[n],构造三个迭代矩阵:矩阵trans[m][n]、矩阵sum[m][n]、矩阵rvs_sum[m][n];矩阵trans[m][n]随着算法迭代过程记录当前最少中继数;矩阵sum[m][n]和矩阵rvs_sum[m][n]记录当前中继最少方案下到前一个中继或源节点的osnr计算指标叠加量;

b4、从矩阵trans[m][n]的最后一列选择最小的数值,即为整个路径最少中继数,按迭代规则回溯矩阵,得到路径的波长选择结果和中继选择结果;若矩阵trans[m][n]最后一列都是无效值,则该路径不通,动态规划失败;

c、比较步骤b中计算得到的k条路径的最少中继数,选择中继数最少的路径作为最短路径。

在上述技术方案的基础上,步骤b1中,所述矩阵matrix[m][n]的构造过程如下:以子路段按顺序映射为行,以路段对所有波长是否可用映射为列,且保证路径中的每一条子路段至少存在一个都可用的统一波长,矩阵matrix[m][n]的矩阵取值为0或1;

其中,0表示第n路段上第m波长不可用,1表示第n路段上第m波长可用。

在上述技术方案的基础上,步骤b2中,所述osnr的计算公式为:

其中,opi表示第i个oa的输入光功率,mi为第i个oa所在链路背景波道数,nfi为第i个oa的噪声系数;

所述xi的计算公式为:

所述xi叠加值满足其中,t=10-t/10

在上述技术方案的基础上,步骤b3中,所述矩阵trans[m][n]的构造过程如下:设置矩阵trans[m][n]内的数值初始化均为无效值,对矩阵trans[m][n]进行逐列算法迭代,每列按照从上至下的顺序计算,共计算m*n次。

在上述技术方案的基础上,步骤c中,选择中继数最少的路径作为最短路径时,若出现多条路径的中继数相同,则选择路由策略最佳的路径,作为最短路径。

本发明还提供一种基于wson损伤模型的最短路径的计算系统,该系统包括前k条最短路径计算模块、最少中继数计算模块和最短路径选择模块;

所述前k条最短路径计算模块用于:根据给定的路由策略计算前k条最短路径,k为正整数;

所述最少中继数计算模块用于:计算k条路径的最少中继数,每一条路径的最少中继数的计算步骤如下:

以该路径上所有具备中继功能的节点为界,将该路径分割为若干子路段,构造矩阵matrix[m][n],其中,n为路段数,m为波长数;

将子路段的正向光纤经过的所有光放大器oa的xi叠加值作为子路段总光信噪比osnr计算指标,得到数组xsum[n];将子路段的反向光纤经过的所有光放大器oa的xi叠加值作为子路段的反向osnr计算指标,得到数组rvs_xsum[n];其中,xi为osnr的计算公式的指数部分,i为正整数,i的取值范围为1~n,n为路径单方向所经过的oa的总数,每一条子路段osnr都大于给定阈值t;

根据动态规划算法思想,输入参数matrix[m][n]、xsum[n]、rvs_xsum[n],构造三个迭代矩阵:矩阵trans[m][n]、矩阵sum[m][n]、矩阵rvs_sum[m][n];矩阵trans[m][n]随着算法迭代过程记录当前最少中继数;矩阵sum[m][n]和矩阵rvs_sum[m][n]记录当前中继最少方案下到前一个中继或源节点的osnr计算指标叠加量;

从矩阵trans[m][n]的最后一列选择最小的数值,即为整个路径最少中继数,按迭代规则回溯矩阵,得到路径的波长选择结果和中继选择结果;若矩阵trans[m][n]最后一列都是无效值,则该路径不通,动态规划失败;

所述最短路径选择模块用于:比较最少中继数计算模块计算得到的k条路径的最少中继数,选择中继数最少的路径作为最短路径。

在上述技术方案的基础上,所述最少中继数计算模块具体用于:以子路段按顺序映射为行,以路段对所有波长是否可用映射为列,构造矩阵matrix[m][n],且保证路径中的每一条子路段至少存在一个都可用的统一波长,将矩阵matrix[m][n]取值0或1;

其中,0表示第n路段上第m波长不可用,1表示第n路段上第m波长可用。

在上述技术方案的基础上,所述最少中继数计算模块具体用于:

计算osnr的公式为:

其中,opi表示第i个oa的输入光功率,mi为第i个oa所在链路背景波道数,nfi为第i个oa的噪声系数;

计算xi的计算公式为:

保证xi叠加值满足其中,t=10-t/10

在上述技术方案的基础上,所述最少中继数计算模块还用于:设置矩阵trans[m][n]内的数值初始化均为无效值,对矩阵trans[m][n]进行逐列算法迭代,每列按照从上至下的顺序计算,共计算m*n次。

在上述技术方案的基础上,所述最短路径选择模块还用于:选择中继数最少的路径作为最短路径时,若出现多条路径的中继数相同,最短路径选择模块选择路由策略最佳的路径,作为最短路径。

与现有技术相比,本发明的优点如下:本发明结合中继功能,提出一种针对wson网络波长动态变化,以及osnr损伤模型的最短路径算法,能够自动寻找一条指定源节点到指定宿节点的最短路径。本发明先根据给定的源节点、宿节点以及路由策略计算出前k条最短路径,使用动态规划(dynamicprogramming)算法思想迭代求出该条路径中哪个节点作为中继,以及其每条子路段选用哪个波长;最后,选择k条路径中使用中继最少的结果作为算法输出的最短路径。本发明的算法不仅简单,而且准确率高、实用性强。

附图说明

图1是现有的三节点的网络拓扑结构示意图,其中λ1、λ2为信号波长。

图2是现有的三节点的链路中osnr的网络拓扑结构示意图。

图3是现有的六节点的网络拓扑结构示意图。

图4是本发明实施例基于wson损伤模型的最短路径的计算方法的流程图。

图5是本发明实施例计算k条路径的最少中继数的流程图。

图6是本发明实施例的七节点的网络拓扑结构示意图。

图7是本发明实施例的两节点的光放大器oa的正向光纤和反向光纤的网络拓扑结构示意图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

参见图4所示,本发明实施例提供一种基于wson损伤模型的最短路径的计算方法,包括如下步骤:

s1、根据给定的路由策略计算前k条最短路径,k为正整数;

s2、计算步骤s1中k条路径的最少中继数,参见图5所示,每一条路径的最少中继数的计算步骤如下:

s201、以该路径上所有具备中继功能的节点为界,将该路径分割为若干子路段,构造矩阵matrix[m][n],其中,n为路段数,m为波长数;

s202、将子路段的正向光纤经过的所有光放大器oa的xi叠加值作为子路段总光信噪比osnr计算指标,得到数组xsum[n];将子路段的反向光纤经过的所有光放大器oa的xi叠加值作为子路段的反向osnr计算指标,得到数组rvs_xsum[n];其中,xi为osnr的计算公式的指数部分,i为正整数,i的取值范围为1~n,n为路径单方向所经过的oa的总数,每一条子路段osnr都大于给定阈值t;

s203、根据动态规划算法思想,输入参数matrix[m][n]、xsum[n]、rvs_xsum[n],构造三个迭代矩阵:矩阵trans[m][n]、矩阵sum[m][n]、矩阵rvs_sum[m][n];矩阵trans[m][n]随着算法迭代过程记录当前最少中继数;矩阵sum[m][n]和矩阵rvs_sum[m][n]记录当前中继最少方案下到前一个中继或源节点的osnr计算指标叠加量;

s204、从矩阵trans[m][n]的最后一列选择最小的数值,即为整个路径最少中继数,按迭代规则回溯矩阵,得到路径的波长选择结果和中继选择结果;若矩阵trans[m][n]最后一列都是无效值,则该路径不通,动态规划失败;

s3、比较步骤s2中计算得到的k条路径的最少中继数,选择中继数最少的路径作为最短路径。其中,步骤s1中,已有许多完善算法计算前k条最短路径,如ksp(topkshortestpaths)算法,k的大小可以根据实际情况调整,计算出最短路径,第二短的路径,第三短的路径,一直到第k短的路径,一共k条。先按路由策略选出前k短的k条路径,再在这k条路径中,根据波长分配和中继情况,选出一条最符合要求的路径。

其中,步骤s201中,矩阵matrix[m][n]的构造过程如下:以子路段按顺序映射为行,以路段对所有波长是否可用映射为列,且保证路径中的每一条子路段至少存在一个都可用的统一波长,矩阵matrix[m][n]的矩阵取值为0或1,其中,0表示第n路段上第m波长不可用,1表示第n路段上第m波长可用。参见图6所示,图6省略oa器件,只显示节点与链路,若其中一条路径为1-2-3-4-5-6-7,其中节点3和节点5具备中继功能,则将路径分割为1-2-3、3-4-5、5-6-7三个子路段,图中链路标注了可用波长,假如所有可用波为λ1-λ5,则分别取三段子路段的共公可用波集合,分别为λ1-λ4,λ3、λ4,λ4,以子路段按顺序映射为行,路段对所有波长是否可用映射为列(此时路段数n=3,波长数m=5),构造矩阵matrix[m][n],取值0或1,分别表示第n路段上第m波长是否可用,图6的场景可以构造如下矩阵;

步骤s202中,osnr的计算公式为:

其中,opi表示第i个oa的输入光功率,mi为第i个oa所在链路背景波道数,nfi为第i个oa的噪声系数;

xi的计算公式为:

子路段单向光纤经过的所有光放大器oa的xi叠加值,满足

其中,t=10-t/10

根据公式(1)、(2)可以得到:

t为给定阈值,每一条子路段osnr都应大于给定阈值t。

由于xi为osnr的计算公式的指数部分,无论op、nf、m如何取值,xi必定大于0;则无论路径怎样取,随着路径经过的oa数量n的增加而单调递增,且xi越小越好,根据公式(1)、(2)、(4),令t=10-t/10,得出公式(3)。

由于每条路径可以根据中继节点分割为若干条子路段,则每一条子路段osnr都应大于给定阈值t可以转换为:若子路段经过n个oa,则子路段必须满足公式(3)。

参见图7所示,节点1与节点2之间的子路段收发光纤各经过2个oa,其参数xn根据公式(2)计算得到x1、x2、x3、x4,则该路段xsum=x1+x2,rvs_xsum=x3+x4。实际中,一般实际场景中路径正向传播osnr与反向传播的osnr会有差异。

其中,步骤s203中,设置矩阵trans[m][n]内的数值初始化均为无效值,对矩阵trans[m][n]进行逐列算法迭代,每列按照从上至下的顺序计算,共计算m*n次。在实际应用中,无效值可以根据情况指定,只要编码的时候能够判断出哪个是无效值即可。由于子路段数每增加1,中继数最多增加1,则使子路段数为n的路径中继数最少,则其子路段数为n-1的路径中继数必然也要最少,又因为当osnr超限或者下一段子路段同波长不可用时中继数必加1,每次迭代时若第j(0<=j<n)路段上第i(0<=i<m)波可用,则重新计算并将trans[i][j]替换为有效值,每次迭代结果如下(0<=i<m,0<=j<n):

if(sum[i][j-1]+xsum[j]<t)&&(rvs_sum[i][j-1]+rvs_xsum[j]<t)&&

(matrix[i][j-1]==1)&&(trans[i][j-1]<(min(trans[0][j-1]totrans[m-1][j-1])+1))

trans[i][j]=trans[i][j-1]

sum[i][j]=sum[i][j-1]+xsum[j]

rvssum[i][j]=rvssum[i][j-1]+rvs_xsum[j]

else

trans[i][j]=min(min(trans[0][j-1]totrans[m-1][j-1])+1,trans[i][j-1])

sum[i][j]=xsum[j]

rvssum[i][j]=rvs_xsum[j]

迭代完成后,trans矩阵保存了选用每个波长在当前子路段所需要的中继次数,即隐含了该条路径中继最少的波长、中继分配方案。若某一拓扑由步骤s201得到的matrix如下:

由步骤s202得到的xsum与rvs_xsum都为[1,1,1],t=2,则完成迭代后得到的trans矩阵为:

其中“-”表示初始化的无效值则算法的9次迭代过程如下:

trans[0][0]=0表示若子路段1分配λ1,由于为起始路段,当前需要中继次数为0;

trans[1][0]=-表示子路段1λ2不可用,保持初始无效值;

trans[2][0]=0同trans[0][0];

trans[0][1]=-同trans[1][0];

trans[1][1]=1表示若子路段2分配λ2,必须进行波长转换,选择前一列最小的值加1,即trans[1][1]=trans[0][0]+1;

trans[2][1]=0表示若子路段2分配λ3,不需要波长转换,直接使trans[2][1]=trans[2][0];

trans[0][2]=-同trans[1][0];

trans[1][2]=1表示若子路段3分配λ2,不需要波长转换,直接使trans[1][2]=trans[1][1];

trans[2][2]=1表示若子路段3分配λ3,不需要进行波长转换,但由于xsum累加值为3>t,必须进行中继放大,选择前一列最小的值加1,即trans[2][2]=trans[2][1]+1。

在最后一列最小值为1,可以选择给子路段3分配λ2,子路段2分配λ2,子路段1分配λ1,并且一旦发生状态转移(即矩阵元素值发生加1),则将发生状态转移的两个子路段之间的节点作为中继节点,即子路段1与子路段2之间的节点作为中继;若子路段3选择λ3(需要的中继数一样,可以根据不同需求选择),则子路段1与子路段2都可以分配λ3,但在子路段2与3之间发生状态转移,将子路段2与子路段3之间的节点作为中继。

在实际应用中,步骤s204中,一条路径的矩阵trans[m][n]中,若最后一列存在多个相同的最小中继数,可以根据每次算路给定的指定波长,最终选择与该指定波长较为接近的波长。

步骤s3中,选择中继数最少的路径作为最短路径时,若出现多条路径的中继数相同,则选择路由策略最佳的路径,作为最短路径。

此外,设网络拓扑中共v个节点、e条边,初始状态可用波长数量为n,一般计算单条最短路径的时间复杂度大约为o(e+vlgv),空间复杂度为o(v),对每条路径执行步骤s203算法时,最坏的时间复杂度为o(nnv),空间复杂度为o(nv),则整个算法时间复杂度为o(k(e+vlgv+nnv)),空间复杂度为o(k(v+nv))。所以,使用本方法计算路径总共时间、空间复杂度都在多项式级别内,对拓扑规模没有要求。

本发明还公开一种基于wson损伤模型的最短路径的计算系统,该系统包括前k条最短路径计算模块、最少中继数计算模块和最短路径选择模块;

前k条最短路径计算模块用于:根据给定的路由策略计算前k条最短路径,k为正整数;

最少中继数计算模块用于:计算k条路径的最少中继数,每一条路径的最少中继数的计算步骤如下:

以该路径上所有具备中继功能的节点为界,将该路径分割为若干子路段,构造矩阵matrix[m][n],其中,n为路段数,m为波长数;

将子路段的正向光纤经过的所有光放大器oa的xi叠加值作为子路段总光信噪比osnr计算指标,得到数组xsum[n];将子路段的反向光纤经过的所有光放大器oa的xi叠加值作为子路段的反向osnr计算指标,得到数组rvs_xsum[n];其中,xi为osnr的计算公式的指数部分,i为正整数,i的取值范围为1~n,n为路径单方向所经过的oa的总数,每一条子路段osnr都大于给定阈值t;

根据动态规划算法思想,输入参数matrix[m][n]、xsum[n]、rvs_xsum[n],构造三个迭代矩阵:矩阵trans[m][n]、矩阵sum[m][n]、矩阵rvs_sum[m][n];矩阵trans[m][n]随着算法迭代过程记录当前最少中继数;矩阵sum[m][n]和矩阵rvs_sum[m][n]记录当前中继最少方案下到前一个中继或源节点的osnr计算指标叠加量;

从矩阵trans[m][n]的最后一列选择最小的数值,即为整个路径最少中继数,按迭代规则回溯矩阵,得到路径的波长选择结果和中继选择结果;若矩阵trans[m][n]最后一列都是无效值,则该路径不通,动态规划失败;

最短路径选择模块用于:比较最少中继数计算模块计算得到的k条路径的最少中继数,选择中继数最少的路径作为最短路径。

其中,最少中继数计算模块具体用于:以子路段按顺序映射为行,以路段对所有波长是否可用映射为列,构造矩阵matrix[m][n],且保证路径中的每一条子路段至少存在一个都可用的统一波长,将矩阵matrix[m][n]取值0或1;

其中,0表示第n路段上第m波长不可用,1表示第n路段上第m波长可用。

其中,最少中继数计算模块具体用于:

计算osnr的公式为:

其中,opi表示第i个oa的输入光功率,mi为第i个oa所在链路背景波道数,nfi为第i个oa的噪声系数;

计算xi的计算公式为:

保证子路段单向光纤经过的所有光放大器oa的xi叠加值满足其中,t=10-t/10

其中,最少中继数计算模块还用于:设置矩阵trans[m][n]内的数值初始化均为无效值,对矩阵trans[m][n]进行逐列算法迭代,每列按照从上至下的顺序计算,共计算m*n次。

其中,最短路径选择模块还用于:选择中继数最少的路径作为最短路径时,若出现多条路径的中继数相同,最短路径选择模块选择路由策略最佳的路径,作为最短路径。

本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1