本发明涉及通信网络技术领域,特别是指一种网络故障定位方法及装置。
背景技术:
目前,对网络进行联合故障定位较为典型的方法是采用二分图模型。这种方法通常采用的技术方案是在现有二分图故障传播模型中加入虚假故障因素,建立不确定性二分图故障模型;在二分图模型的基础上,将故障定位问题转化为一个0-1规划的最小化问题,然后利用拉格朗日松弛和次梯度方法对问题进行求解,最后依赖贝叶斯模型进行定位。
上述方法以二分图模型为基础,依赖贝叶斯模型进行网络故障定位。虽然也能够一定程度的实现网络故障定位,但是也存在一下缺陷:
第一,采用二分图模型进行定位的方法仅仅从单一层面的故障分析入手,缺少对网络故障的层间依赖关系进行考虑,在准确性上表现不佳;
第二,当整个网络较为庞大复杂时,不仅算法的收敛性难以得到保证。而且定位效率也有待改善。
技术实现要素:
有鉴于此,本发明的目的在于提出一种网络故障定位方法及装置,能够提高网络故障定位的精确度和效率。
基于上述目的本发明提供的一种网络故障定位方法,包括:
根据网络节点针对不同类型故障发生的概率,将原始网络域划分为多个子网络域;
获取网络中的历史故障数据,并通过神经网络训练得到网络故障定位模型;
获取当前网络中的信息网络故障数据,输入所述网络故障定位模型中,计算得到通信网络故障数据,得到网络故障的定位结果。
可选的,所述将原始网络域划分为多个子网络域采用的分类算法为K-means聚类算法。
可选的,所述将原始网络域划分为多个子网络域包括:
根据网络故障类型,将原始网络域划分为C个子网络域;
从原始网络域中随机选取C个网络节点,分别作为C个子网络域的初始中心;
分别计算剩余网络节点到所述C个子网络域初始中心网络节点的相似度,根据计算结果,将所述剩余网络节点分别划分到相似度最高的子网络域;其中,所述剩余网络节点为网络中除去C个子网络域初始中心网络节点的其余网络节点;
对网络中的所有网络节点进行聚类分析,根据聚类结果,更新C个子网络域的中心;
根据更新后的C个子网络域的中心,重新对网络节点进行划分,并根据新的网络节点划分结果,再次进行聚类分析;
重复上述步骤,直到C个子网络域的中心不再发生变化。
可选的,所述相似度的计算公式为:
ni=[ni,1,ni,2,...,ni,c];
其中,i、j表示不同的网络节点;ni,c表示网络节点i发生故障c的概率;ni表示网络节点i聚类信息,s(i,j)表示网络节点i和网络节点j之间的相似度。
可选的,所述对网络中的所有网络节点进行聚类分析,根据聚类结果,更新C个子网络域的中心还包括:
计算网络节点与子网络域的中心网络节点的节点距离,并计算得到最小节点距离,根据最小节点距离更新子网络域的中心;
所述节点距离的计算公式为:
其中,Dk为第k个子网络域的网络节点集合,γk为第k个子网络域的中心;
所述子网络域的中心的计算公式为:
其中,Nk为第k个子网络域的节点个数。
可选的,所述聚类分析还包括:统计通信网的网络节点集合以及信息网的网络节点集合。
可选的,所述神经网络采用BP神经网络。
可选的,所述通过神经网络训练得到网络故障定位模型包括:
首先,定义子网络域Dk的输入向量x=[x1,x2,...,xn],当域内信息网络节点i发生故障时,xi取值为1,未发生故障时xi取值为0,其中i取值为1—n;定义输出向量为y=[y1,y2,...,yl],其中,yi为域内通信网关联节点i的状态,且发生故障时取值为1,未发生故障时取值为0;其中,Dk为第k个子网络域的网络节点集合,n为输入层的个数,l为输出层的个数;
采用sigmoid函数作为BP神经网络的作用函数,将信息网网络节点的状态作为输入,计算得到隐含层节点的输出,计算公式为:
f(x)=1/(1+e-x)
其中,wij为输入层神经元节点与隐含层神经元节点之间的连接权值,θj为隐含层的阀值;xi为输入,p为隐含层的个数,k为网络域个数。
根据隐含层节点的输出,计算得到输出层节点的输出,计算公式为:
其中,vjt为隐含层神经元节点到输出层神经元节点的连接权值,γt是输出层的阀值;
根据输出层节点的输出与实际输出的差值计算得到输出误差,计算公式为:
其中,为输出层节点的输出与实际输出的差值,Ek为误差值;
根据梯度下降法,求出wij、θj、vjt、γt的调整量,并对误差进行调整,使误差值最小:
其中,α,β为超参,是常量值。
本发明还提供了一种网络故障定位装置,包括:
网络划分单元,用于根据网络节点针对不同类型故障发生的概率,将原始网络域划分为多个子网络域;
模型训练单元,用于获取网络中的历史故障数据,并通过神经网络训练得到网络故障定位模型;
网络定位单元,用于获取当前网络中的信息网络故障数据,输入所述网络故障定位模型中,计算得到通信网络故障,得到网络故障的定位结果。
从上面所述可以看出,本发明提供的网络故障定位方法及装置,通过考虑网络故障在不同层之间的依赖关系,根据网络节点对不同故障类型发生的概率,将整个网络域划分为若干个子网络域,这样,不仅将结构复杂、网络体量大、故障多发的网络域根据关联性拆分为结构简化的子网络域,使得在子网络域能够进行更为准确的故障定位,而且基于多个子网络域并行定位,大大提高了故障定位的效率。本发明还通过采用神经网络训练得到网络故障定位模型,使得故障定位能够考虑到网络节点之间的关联性,进一步提高了网络故障定位的准确性。因此,本发明提供的网络故障定位方法及装置能够提高网络故障定位的精确度和效率。
附图说明
图1为本发明提供的网络故障定位方法的一个实施例的流程图;
图2为本发明提供的网络故障定位方法中子网络域划分的流程图;
图3为本发明提供的网络故障定位方法中子网络域划分的结构示意图;
图4为本发明提供的网络故障定位方法中神经网络模型的结构示意图;
图5为本发明提供的网络故障定位方法中通信网络仿真场景示意图;
图6为本发明提供的网络故障定位方法中一个子网络域的训练效果图;
图7为本发明提供的网络故障定位方法中另一个子网络域的训练效果图;
图8为本发明提供的网络故障定位方法中一个子网络域的定位误差效果图;
图9为本发明提供的网络故障定位方法中另一个子网络域的定位误差效果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明针对于当前典型网络中的特点,尤其是通过对国家电网信息通信网络现状的研究,针对目前网络结构复杂、网络体量大、故障多发以及难以高效准确定位的特性,结合现有的故障定位算法,提出了一种适用于该网络环境的信息通信网络联合故障定位模型,在确保网络运行达到一定程度的高效、可靠、安全和经济的同时,实现简单、快速、精准地进行信息通信网络联合故障定位。
具体的,参照图1所示,为本发明提供的网络故障定位方法的一个实施例的流程图。所述网络故障定位方法包括:
步骤101,根据网络节点针对不同类型故障发生的概率,将原始网络域划分为多个子网络域;参照图3所示,为本发明提供的网络故障定位方法中子网络域划分的结构示意图。本发明从网络节点可能发生的故障类型出发,把发生故障类型相似度高的网络节点划分在相同子网络域内。不同子网络域之间由于相似度较低,因此其关联性也较低,不同子网络域之间的网络节点发生故障的因果关系也较弱,即子网络域A内的网络故障由子网络域B引起的可能性较低。基于此,可以将原本复杂庞大的网络结构采用分治的方法划分为多个子网络域,进行子网络域内的故障定位。
步骤102,获取网络中的历史故障数据,并通过神经网络训练得到网络故障定位模型;其中,所述历史故障数据是指在网络中已经发生过的故障,已知故障的位置和结果的一类故障数据。所述神经网络是指采用机器学习的方法训练得到能够由已知的输入输出并根据未知的输入进而计算得到输出结果的一类计算模型。
步骤103,获取当前网络中的信息网络故障数据,输入所述网络故障定位模型中,计算得到通信网络故障数据,得到网络故障的定位结果。当获取得到网络故障定位模型后,就能够根据当前的输入数据计算得到预测的输出结果,而只要稍稍网络故障定位模型越准确,那么得到的输出结果也更可靠。其中,在本发明的网络中,网络按功能划分为通信网和信息网,网络的每个层面拥有各自独立的功能,不同层面之间又紧密关联,网络的这种层次结构决定了故障告警的传播特性。在某个层面产生的故障,不但会在本层面传播,还会在相邻层面传播。基于传统告警关联分析与故障定位技术,很少考虑到故障的这种层间依赖关系,而是仅仅从单一层面的故障分析入手。因而,本发明的故障定位效果更准确。
由上述实施例可知,在对真实网络环境的可靠建模基础上,首先运用多域划分概念,将构建在庞大网络环境上的故障定位问题转化为在多个子域(即子网络域)内的故障精确定位问题。其次,在每个划分子域内,通过网络故障数据,依靠神经网络训练符合实际网络环境的故障定位模型。模型以信息网络故障作为输入,以通信网络故障作为输出,分析通信网络与信息网络间的故障传播与故障关联,并实现对信息通信网络故障的联合分析。网络故障定位方法通过考虑网络故障在不同层之间的依赖关系,根据网络节点对不同故障类型发生的概率,将整个网络域划分为若干个子网络域,不仅将结构复杂、网络体量大、故障多发的网络域根据关联性拆分为结构简化的子网络域,使得在子网络域能够进行更为准确的故障定位,而且基于多个子网络域并行定位,大大提高了故障定位的效率。本发明还通过采用神经网络训练得到网络故障定位模型,使得故障定位能够考虑到网络节点之间的关联性,进一步提高了网络故障定位的准确性。因此,本发明提供的网络故障定位方法能够提高网络故障定位的精确度和效率。
可选的,本发明所述的网络故障定位方法尤其适用于国家电网的网络故障分析。
优选的,通过神经网络进行故障定位是在不同的子网络域中分别进行故障定位,进一步,还可以根据不同子网络域的特点,训练得到不同的网络故障定位模型,进一步提高定位的准确性。
在本发明一些可选的实施例中,所述将原始网络域划分为多个子网络域采用的分类算法为K-means聚类算法。这是基于K-means聚类算法的原理符合本发明中网络划分的特点。当然,也可以根据网络划分的特点,对K-means聚类算法进行一定的变型,以适应本发明中网络划分的准确性和效率。
在本发明一些可选的实施例中,参照图2所示,所述将原始网络域划分为多个子网络域包括:
步骤201,根据网络故障类型,将原始网络域划分为C个子网络域;其中,所述网络故障类型是指发生不同网络故障的类型,具体的,按网络故障性质划分为物理故障、逻辑故障;按网络故障对象划分为线路故障、设备故障、主机(配置)故障。当然,也可以根据需要,按照不同的故障特性进行故障类型的划分。优选的,C是指网络故障类型的数目。
步骤202,从原始网络域中随机选取C个网络节点,分别作为C个子网络域的初始中心;聚类分析需要选定初始聚类中心,对应于子网络域中的初始中心。随机选取能够简化步骤,加快定位的速度。当然也可以根据网络节点的分布特性,按照一定的算法选定网络节点作为初始中心。
步骤203,分别计算剩余网络节点到所述C个子网络域初始中心网络节点的相似度,根据计算结果,将所述剩余网络节点分别划分到相似度最高的子网络域;其中,所述剩余网络节点为网络中除去C个子网络域初始中心网络节点的其余网络节点;也即,除去初始中心的网络节点,其余节点采用就近原则进行分域处理,将可能诱发相似故障类型的网络节点划分到同一个子网络域中。
步骤204,对网络中的所有网络节点进行聚类分析,根据聚类结果,更新C个子网络域的中心;
步骤205,根据更新后的C个子网络域的中心,重新对网络节点进行划分,并根据新的网络节点划分结果,再次进行聚类分析;
步骤206,判断子网络域的中心是否发生变化,若是,则重复步骤204和步骤205,直到C个子网络域的中心均不再发生变化。其中,所述变化是指当前的网络中心相对于上一次的中心,是否保持相同。因此,通过上述网络域的划分,不仅能够使得关联性较高的网络节点准确划分到同一个子网络域中,同时又将结构复杂的原始网络域拆分为多个子网络域,使得后续的故障定位更为准确、高效。
为了便于理解计算公式和对故障定位方法的描述,本发明实施例还定义了一下要素:
定义1:网络中所有节点的集合为S,|S|表示网络节点的个数;
定义2:网络节点所有可能发生的故障类型集合为R,|R|表示故障类型个数;
定义3:网络域集合为D={D1,…,DC},其中|D|表示网络域的个数;
定义4:网络域中心集合为γ={γ1,…,γC}。
在本发明一些可选的实施例中,所述相似度的计算公式为:
ni=[ni,1,ni,2,...,ni,c];
其中,i、j表示不同的网络节点;ni,c表示网络节点i发生故障c的概率;ni表示网络节点i的聚类信息,s(i,j)表示网络节点i和网络节点j之间的相似度。
构建网络故障定位模型的目的是为了定位故障源节点,从而找到网络的根本症结所在,提高网络的鲁棒性。本发明实施例提出了一种分布式的故障定位机制,首先根据网络节点不同类型故障的发生概率,将原网络划分为多个域,然后同时对这些子域进行检测,通过小范围内的并行定位,找出网络故障源节点,实现整个网络的快速故障定位。
对于每个网络节点i,构建一个对应的故障类型发生概率向量,即:
ni=[ni,1,ni,2,...,ni,c]
每个网络节点对应一个故障发生概率向量,该向量反映了不同的网络节点容易诱发的故障类型。
而通过计算不同网络节点之间的相似度,能够快速、准确的进行网络域的划分,进而提高网络故障定位的效率和准确性。
需要说明的是,在进行网络子域划分时,是将通信网络与信息网络作为一个整体进行考虑。因此,划分的子域内既包含通信网络节点也包含信息网络节点。
在本发明一些可选的实施例中,所述对网络中的所有网络节点进行聚类分析,根据聚类结果,更新C个子网络域的中心还包括:
计算网络节点与子网络域的中心网络节点的节点距离,并计算得到最小节点距离,根据最小节点距离更新子网络域的中心;
所述节点距离的计算公式为:
其中,Dk为第k个子网络域的网络节点集合,γk为第k个子网络域的中心;
所述子网络域的中心的计算公式为:
其中,Nk为第k个子网络域的节点个数。
聚类分析的目的是将原始网络域D分成C类子网络域,即D={D1,…,DC},其中Di表示子网络域i内的网络节点集合,使用K-means聚类算法对网络节点集合D内的节点进行聚类,及求得最小的节点距离。
在本发明一些可选的实施例中,所述聚类分析还包括:统计通信网的网络节点集合Ti={ti1,…,tij}以及信息网的网络节点集合Ci={ci1,…,cik}。这样,能够使得模型能够准确定位故障源,从而提高了故障定位的准确性。
优选的,所述神经网络采用BP神经网络。基于BP神经网络具有极强的非线性映射能力,因而特别适用于本发明实施例中的故障定位分析的计算。
在本发明一些可选的实施例中,所述通过神经网络训练得到网络故障定位模型包括:
首先,定义子网络域Dk的输入向量x=[x1,x2,...,xn],当域内信息网络节点i发生故障时,xi取值为1,未发生故障时xi取值为0,其中i取值为1—n;定义输出向量为y=[y1,y2,...,yl],其中,yi为域内通信网关联节点i的状态,且发生故障时取值为1,未发生故障时取值为0;其中,Dk为第k个子网络域的网络节点集合,n为输入层的个数,l为输出层的个数;
采用sigmoid函数作为BP神经网络的作用函数,将信息网网络节点的状态作为输入,计算得到隐含层节点的输出,计算公式为:
f(x)=1/(1+e-x)
其中,wij为输入层神经元节点与隐含层神经元节点之间的连接权值,θj为隐含层的阀值;xi为输入,p为隐含层的个数,k为网络域个数。
根据隐含层节点的输出,计算得到输出层节点的输出,计算公式为:
其中,vjt为隐含层神经元节点到输出层神经元节点的连接权值,γt是输出层的阀值;
根据输出层节点的输出与实际输出的差值计算得到输出误差,计算公式为:
其中,为输出层节点的输出与实际输出的差值,Ek为误差值;
根据梯度下降法,求出wij、θj、vjt、γt的调整量,并对误差进行调整,使误差值最小:
其中,α,β为超参,是常量值。
在本实施例中,通过使用神经网络的方式训练大规模的历史故障数据,从而提炼出精确的域内信息通信网络故障判别模型。参照图4所示,为一个简单的神经网络模型。本实施例将域内信息网网络节点的状态作为输入特征,将通信网的网络节点作为输出结果。本实施例算法的核心在于使得误差进行法相传播,通过误差来调整wij和vjt。进一步,为了使得算法收敛的更快,可以将误差函数更换为log误差函数,也可以通过添加正则化项来抑制算法的过拟合。
在一些可选的实施例中,本发明模拟复杂的信息通信网络环境,并对该网络模型应用提出的基于多域划分的信息通信网络故障定位算法进行分析,图5为针对国家电网信息通信网络的仿真场景示例图。
本发明实施例主要研究通信网故障对信息网的影响。
首先,采用K-means聚类算法进行网络节点聚类,把整个网络聚类成多个网络域。
然后,依靠域内神经网络故障定位模型,以域内信息网网络节点的故障状态为输入,通信网网络的各个节点故障状态为输出,使用从真实环境中提取的大量故障数据,训练出真实有效的网络联合故障定位模型。
把国家电网日常网络运维系统中的故障历史数据作为数据集,这些数据包含了信息网的故障初始节点状态以及通信网的故障关联节点状态,并假设节点发生故障为1,未发生故障为0。以信息网关联节点的故障状态作为输入,通信网节点故障状态作为输出,通过这些数据可以真实的模拟通信网以及信息网之间的故障关联关系,从而利用神经网络的高度准确性训练出一个符合实际网络情况的故障定位模型。
最后,在训练得出模型的基础上使用验证集进行定位效果的验证。观测到的网络节点状态数据按照所在网络域进行划分,每个网络域使用120组样本数据。对其中的两个网络域进行测试。将数据中的前100组数据作为训练数据,后20数据组作为测试数据。
图6、图7为两个子域的训练效果图。可以看出,在第一个子网络域中,RBF(径向基函数)神经网络模型经过180次迭代后收敛,BP神经网络模型经过160次迭代后收敛,从而可以判断,本发明中的神经网络的训练误差是逐步下降并且收敛的。这说明使用神经网络训练大量故障数据得出的定位模型是有效的,定位模型的误差在逐步趋于0。此外,定位误差的收敛速度依赖神经网络初始权重,初始权重选择越合适,收敛速度越快。这是由于神经网络的非线性造成的,也是目前神经网络可以改进的方向。从图中还可以看出,BP网络的收敛速度明显快于RBF网络。
使用验证集对两个子域进行故障分析定位。验证集使用国家电网运维系统的历史数据。使用上述的神经网络训练模型,以信息网节点故障状态为输入,得出训练模型定位出的通信网故障源,之后再与真实统计的故障源数据作对比,定位准确则为0,定位错误则为1。图8、图9为两个子域的定位误差效果图,可以看出,BP网络的故障定位的准确性明显好于RBF网络。以图8为例,20个测试样本中定位错误的仅有1个,准确率达到了95%,而同样的测试样本在RBF网络中有3个样本定位错误,准确率为85%。
因此,本发明提出一种基于多域划分的信息通信网络联合故障定位模型,一定程度上解决了故障定位的难题。模型首先将整个网络通过子域划分算法划分为多个故障关联性较高的子域,将发生相近故障的节点定位在较小的子域内,使原问题清晰简单化,如此便不用盲目地对整个网络进行故障检测,很大程度上解决了故障定位高效性的问题;之后,通过在子域内引用BP神经网络模型对故障的源发节点进行定位,并通过仿真实验验证了BP神经网络的定位结果的有效性和准确性。
在本发明实施例的另一方面,本发明还提供了一种网络故障定位装置,包括:
网络划分单元,用于根据网络节点针对不同类型故障发生的概率,将原始网络域划分为多个子网络域;
模型训练单元,用于获取网络中的历史故障数据,并通过神经网络训练得到网络故障定位模型;
网络定位单元,用于获取当前网络中的信息网络故障数据,输入所述网络故障定位模型中,计算得到通信网络故障,得到网络故障的定位结果。
上述网络故障定位装置实现了与所述网络故障定位方向相同的功能和效果。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。