-
随着网络技术的不断发展,网络已融入生活的各个方面,如运输网络、移动自组网络、计算机和通信网络等[1-3]。对于上述网络系统,常借助于随机流网络(stochastic-flow network, SFN)进行刻画描述,有关随机流网络的理论和应用研究越来越受到人们关注。其中对于随机流网络的可靠性,既可通过蒙特卡洛方法[4]计算网络可靠性的近似值,也可通过空间分解[5]、多值决策图[6]、最小割集[7]或最小路集[8]等方法计算网络可靠性的精确值。在最小路集基础上,文献[8]对单条路径传输的网络可靠性进行了分析。为了缩短流量传输时间,文献[9]将随机流网络流量从单路径传输扩展到两条及多条不交化路径(separate minimalpaths, SMPs)传输的情况,并提出选择一组可靠性最高的路径作为网络备用路径,来保障工作路径失效后网络的顺利传输。在2SMPs传输流量前提下,文献[10-12]加入预算约束条件,基于最小路集的方法求解了随机流网络可靠性。文献[13-14]定义了错误率和时间约束的多状态网络可靠性,并考虑到工作路径失效后启用备用路径来保障网络传输,提出基于路集的方法对状态空间过滤获取系统最小容量向量,运用容斥原理求解随机流网络可靠性。文献[15]则认为路径还有可能一条一条地失效,通过枚举单路径失效情况,证实了单条备用路径可以提高网络传输可靠性。
对于一个包含2SMPs的复杂网络系统,一方面获取系统最小容量向量计算网络可靠性需要存储整个网络的边,并且包含了许多冗余路径容量组合,寻找一种更加有效的方式对于该类问题求解有着实际的意义;另一方面,通过枚举网络各路径最小容量向量的方式计算备用路径可靠性,运算量非常庞大,故需要一种简洁的解决方法选择网络可靠的备用路径。为此,本文首先针对算法(d, T, B, (Pi, Pj))-LBPs[15]计算2SMPs可靠性需要存储整个网络的边以及存在冗余路径容量的问题,提出基于多值决策图(multi-valued decision diagram, MDD)的可靠性分析算法MDD_2SMPs。该算法利用MDD能够双向反映组件状态与系统状态关系的特点,通过自定义MDD操作算子,实现状态空间、变量组合的隐式表示和搜索,减少路径不相关边的存储;并在组合过程中引入约束剪枝策略过滤许多不必要的路径,从而提高算法效率;同时给出了基于MDD的概率计算模型,使得可靠性计算更加直观。其次,针对工作路径失效后选择网络可靠备用路径的问题,提出算法MDD_BMPs,该算法通过将网络各路径转换为决策图多值变量形式,降低了计算的复杂性。最后,通过基准网络实例,验证了本文所提方法的正确性和有效性。
HTML
-
本节以文献[11, 15]使用的基准网络为例,说明可靠性分析算法MDD_2SMPs和备用路径选择算法MDD_BMPs具体执行过程。网络拓扑结构如图 2所示,图中s表示源点,t表示目标节点,a1~a22表示有22条边,各边的详细信息在表 1给出。实例中,网络额定传输的单位数据d为200 Gb,时间T不超过13 s,预算B不高于2000元。网络MPs已知条件下,假设工作路径分别由P1={a1, a2, a3}和P2={a4, a5, a6}组成,网络中与工作路径P1和P2都不相交的路径为:P3={a8, a9, a10}、P4={a11, a12, a13}、P5={a15, a16, a17}、P6={a18, a19, a20}、P7={a10, a11, a14}、P8={a15, a22}、P9={a18, a21, a22}及P10={a16, a17, a18, a21}。
边 容量 概率 时延 成本 边 容量 概率 时延 成本 a1 50a 0.85 2 3 a12 60 0.80 2 2 30 0.05 40 0.05 10 0.05 20 0.05 0 0.05 10 0.05 a2 50 0.80 2 4 0 0.05 30 0.10 a13 60 0.75 1 3 10 0.05 40 0.10 0 0.05 20 0.05 a3 40 0.85 3 3 10 0.05 20 0.05 0 0.05 10 0.05 a14 20 0.95 2 2 0 0.05 0 0.05 a4 50 0.85 3 2 a15 70 0.80 3 2 30 0.05 50 0.05 10 0.05 30 0.05 0 0.05 10 0.05 a5 50 0.80 4 3 0 0.05 30 0.10 a16 60 0.75 2 2 10 0.05 40 0.10 0 0.05 30 0.05 a6 40 0.85 3 2 10 0.05 20 0.05 0 0.05 10 0.05 a17 50 0.85 3 3 0 0.05 30 0.05 a7 20 0.90 2 1 10 0.05 0 0.10 0 0.05 a8 50 0.85 3 3 a18 40 0.85 3 4 30 0.05 30 0.05 10 0.05 10 0.05 0 0.05 0 0.05 a9 40 0.85 4 1 a19 50 0.85 3 1 20 0.05 30 0.05 10 0.05 10 0.05 0 0.05 0 0.05 a10 40 0.80 2 2 a20 40 0.85 3 2 20 0.10 20 0.05 10 0.05 10 0.05 0 0.05 0 0.05 a11 50 0.85 3 1 a21 20 0.95 2 2 30 0.05 0 0.05 10 0.05 a22 10 0.95 4 1 0 0.05 0 0.05 注:50a表示边a1容量处于50时的概率为0.85 -
通过前文条件及表 1信息,计算KP1=200、KP2=120、CP1=10、CP2=7。
1) 按照传输规则,路径(P1, P2)满足传输条件;已知CP2 < CP1,确定参照路径P2。
2) 根据给出的变量顺序,将路径(P1, P2)中每条边转换为图 1所示的决策图多值变量形式,并按照公式(1)中的合成规则,执行定义的And_Min操作,分别得到图 3所示路径P1的MDD结构MDD_P1和图 4所示路径P2的MDD结构MDD_P2。
3) 利用MDD_P1和MDD_P2结构中终节点值有序表示的路径容量进行约束剪枝,执行Or_MDD操作合并路径(P1, P2)。
① 已知步骤1)选取的参照路径为P2,观察其终节点值从左至右依次为0、10、20、30、40,对应路径P2的5种容量情况。终节点值为0表示路径P2完全失效,按照传输规则,计算P1满足传输条件的路径容量为40;并根据推论2可知预算取得最大值,终止预算判断过程。
② 路径P2容量为10时,其传输的单位数据最多不超过30 Gb,按照传输规则,计算P1满足传输条件的路径容量至少为30。
同理,可以分别得到路径P2容量为20、30和40时,P1上满足传输条件的路径容量。
③ 根据MDD原理及运算规则,规约化简得到图 5所示的结构。
4) 自顶向下遍历生成的结构MDD_result,递归调用Compute Reliability函数,计算网络可靠性值为REL_(200, 13, 2000, P1, P2)=0.700 624。
针对该网络,表 2给出了算法MDD_2SMPs与算法(d, T, B, (Pi, Pj))-LBPs计算2SMPs可靠性时,获取(d, T, B)下路径所需容量的操作数情况。以工作路径P1={a1, a2, a3}和P2={a4, a5, a6}为例,本文算法通过定义And_Min操作算子,直接得到唯一且有序的路径容量,只需根据MDD中终节点的值进行约束剪枝,并且只需存储工作路径所含边的信息(6条)。因此,算法MDD_2SMPs获取(d, T, B)下工作路径所需容量的操作数为6×5×5=150次。而文献[15]中算法(d, T, B, (Pi, Pj))-LBPs根据路径P1和P2存在的流量分配情况计算,通常会得到相同的路径容量,如路径(P1, P2)通过的流量为(80, 120)、(90, 110)或(100, 100)时,得到的路径容量均为(20, 40)。为便于计算可靠性的值,还需构建系统状态空间向量(即文献[15]中X向量)过滤重复的以及非最小的解,这些系统状态空间向量存储了整个网络的边(22条),合计需要22×13+22×(13×12)=3 718次移除操作。对于网络可靠性概率值,本文算法基于节点概率迭代计算;算法(d, T, B, (Pi, Pj))-LBPs获取系统最小容量向量后,还需借助容斥原理等方法进行计算。
不相交路径(Pi, Pj) 算法(d, T, B, (Pi, Pj))-LBPs 算法MDD_2SMPs 不相交路径(Pi, Pj) 算法(d, T, B, (Pi, Pj))-LBPs 算法MDD_2SMPs P1, P2 3 718 150 P4, P10 352 126 P3, P4 6 358 150 P5, P6 6 358 150 P3, P5 6 358 150 P5, P7 3 718 90 P3, P6 3 718 150 P5, P9 550 60 P3, P8 550 50 P6, P7 1 782 90 P3, P9 22 60 P6, P8 198 50 P3, P10 198 105 P7, P8 0 0 P4, P5 9 702 180 P7, P9 0 0 P4, P6 6 358 180 P7, P10 0 0 P4, P8 1 078 60 P8, P10 0 0 P4, P9 550 72 -
利用MDD能够双向反映组件状态与系统状态的特点,算法MDD_BMPs通过将表 3中各路径传输的单位数据转换为相应的多状态变量,大大简化了计算的复杂性,具体过程如下。
路径 单位容量 最大容量 概率 时延 成本 路径 单位容量 最大容量 概率 时延 成本 40a 200 0.578 50 200 0.541 875 30 180 0.110 5 40 200 0.072 25 P1 20 120 0.040 5 7 10 P5 30 150 0.114 875 8 7 10 60 0.128 375 10 50 0.128 375 0 0 0.142 625 0 0 0.142 625 40 120 0.578 40 160 0.614 125 30 90 0.110 5 30 120 0.047 25 P2 20 60 0.040 5 10 7 P6 20 80 0.067 625 9 7 10 30 0.128 375 10 40 0.128 375 0 0 0.142 625 0 0 0.142 625 40 160 0.578 20 120 0.769 5 30 120 0.034 P7 10 60 0.087 875 7 5 P3 20 80 0.117 9 6 0 0 0.142 625 10 40 0.128 375 P8 10 60 0.902 5 7 3 0 0 0.142 625 0 0 0.097 5 50 200 0.51 P9 10 40 0.857 375 9 7 40 200 0.104 125 0 0 0.142 625 30 200 0.036 125 P10 20 60 0.692 55 P4 20 140 0.078 75 6 6 10 30 0.121 956 25 10 11 10 70 0.128 375 0 0 0.185 493 75 0 0 0.142 625 注:40a表示路径P1容量为40时,在(d, T, B)约束下通过的单位数据为200 Gb 1) 根据表 3信息构建各路径的决策图多值变量形式MDD_Pi。
2) 遍历MPs中与路径(P1, P2)都不相交的路径(P3, P4, P5, P6, P7, P8, P9和P10),计算可靠性值。
① 以路径P3为例,由步骤1)得到图 6所示的决策图多值变量形式MDD_P3。
② 计算CP1=10、CP2=7、CP3=9,确定路径(P1, P3)和(P2, P3)变量序分别为P3 < P1和P2 < P3。
③ 由得到的变量序选取参照路径,运用推论2获取对应路径的终节点状态。
④ 最后,根据MDD概率计算函数及式(5)定义的传输规则,计算备用路径为P3时的可靠性值Pr(P1P2, P3)=0.183 823 96。
3) 根据各路径取值情况返回可靠性最高的路径。
图 7为第一条工作路径失效后,各路径的可靠性取值情况,由此选择备用路径为P4,可靠性值Pr(P1P2, P4)=0.227 665。
同理,第二条工作路径失效后,根据图 8选择备用路径为P5,可靠性值Pr(P1P2, (P4P5))=0.068 328。
对于图 2所示网络,算法MDD_BMPs的计算结果与文献[15]算法(d, T, B, (Pk))-LBPs的计算结果一致。不同的是,算法MDD_BMPs通过将网络各路径转换为决策图多值变量形式,大大降低了计算的复杂性。以路径P3执行过程为例,算法MDD_BMPs判断路径(P1, P3)和(P2, P3)终节点状态需要的操作数为50+50=100次;算法(d, T, B, (Pk))-LBPs则将路径(P1, P2)分别与路径P3组合获取系统最小容量向量,该过程所需操作数为6 358+3 718=10 076次。