一种软件可靠性模型参数估计方法

文档序号:28865015发布日期:2022-02-12 03:20阅读:244来源:国知局
一种软件可靠性模型参数估计方法

1.本发明属于软件可靠性模型参数估计领域,涉及一种软件可靠性模型参数估计方法,特别是涉及一种基于天牛须搜索算法与人工蜂群算法融合的软件可靠性模型参数估计方法。


背景技术:

2.可靠性估计是确定软件质量的重要问题。该问题包括两个主要任务:一种是确定描述软件错误发生的数学模型,另一种是估算最适合特定软件故障数据集的模型参数。软件可靠性预测是为了发现执行测试过程中的故障、以及故障的分布情况。通过了解这些故障的情况,对软件在实际运行中的故障状态和隐藏的故障进行预测。通过建模可以将可靠性的理论知识和实践工程相结合,通过对软件测试中的情况的分析,可以降低人们在开发新的软件时产生故障数的概率,大大地提高软件的可靠性。在软件可靠性预测中,软件运行的环境较为多变复杂,因此需要对运行环境进行假设情况。经典常见的软件可靠模型有go模型、jm模型、mo模型。go模型是连续时间非齐次泊松过程模型,是nhhp模型的一种。它具有更高的软件可靠性,因为该模型是建立在软件缺陷集中在不常用的代码中。go模型和jm模型的不同之处在于比,前者能对软件失效的过程进行更加合理的描述,比较符合实际,因此go模型在使用的过程中也是首选,选择go模型作为本方法的研究内容。
3.随着智能优化算法的不断发展,许多学者将其应用到软件可靠性模型参数估计问题上,智能仿生算法也受到了更广泛的关注。智能仿生算法是一种模仿生物群体智能行为或生物体结构和功能或生态机制的智能计算方法,它的工作机制与自然生物的性质或生态机制非常接近。而且智能仿生算法计算简单且容易理解,效果非常惊人,反映了涌现性。对环境,参数和任务的变化具有很强适用性和灵活性。天牛须搜索是2017年提出的一种高效的智能优化算法。类似于遗传算法、粒子群算法、模拟退火等智能优化算法,天牛须搜索不需要知道函数的具体形式,不需要梯度信息,就可以实现高效寻优。相比于粒子群算法,天牛须搜索只需要一个个体,即一只天牛,运算量大大降低。人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度。为了解决多变量函数优化问题,karaboga提出了人工蜂群算法abc模型。人工蜂群算法属于群智能算法的一种,其受启发于蜜蜂的寻蜜和采蜜过程,相比于常见的启发式算法,它的优点在于其使用了较少的控制参数,并且鲁棒性强,在每次迭代过程中都会进行全局和局部的最优解搜索,因此能够找到最优解的概率大大增加。


技术实现要素:

4.发明目的:本发明目的在于解决软件可靠性模型参数估计问题,在此基础上提供一种基于天牛须搜索算法与人工蜂群算法融合的软件可靠性模型参数估计方法。
5.技术方案:本发明所述的一种软件可靠性模型参数估计方法,具体操作步骤如下:
6.(1)、获取训练所需的软件失效时间序列,对前一部分数据进行训练,以预测有五个失效的失效时间;
7.(2)、利用极大似然估计公式构造一种新的适应值函数,用于初始化模型参数;
8.(3)、用天牛须搜索算法bas进行训练,训练中用天牛的位置更新公式更新天牛位置x;
9.(4)、在天牛位置x周围,运用人工蜂群算法abc进行搜素,将abc算法得到的最优位置作为天牛新的位置x,重复步骤(3),直至达到bas算法的最大迭代次数;
10.(5)、根据得到的最优位置和最优适应值,求出模型参数a,其中,最优位置即为参数b;
11.(6)、计算模型参数的误差率,并根据参数预测后五个失效的失效时间,与实际值进行对比,计算均方误差mse,从而形成基于天牛须搜索算法与人工蜂群算法融合的软件可靠性模型参数估计方法。
12.进一步的,在步骤(1)中,所述失效时间序列与失效数之间存在非线性关系,其参数需要通过对大量数据进行训练而得到。
13.进一步的,在步骤(2)中,所述构造适应值函数即目标优化函数,是用智能优化算法来估计软件可靠性模型的关键,将参数估计问题转变为函数优化问题;
14.针对软件可靠性模型的特点,参照最小二乘法的原理,构造出的适应值函数如下所示:
[0015][0016]
其中,f
it
表示实际测得的软件失效数与通过模型估计出的失效数之间的误差相对距离;m(ti)表示在测试时间段(0,ti]中实际发现的累积失效数;m0(ti)表示在在测试时间段(0,ti)中用模型估计出来的累积失效数;ti为第i个失效发生的时刻;i=1,2,...,n,n表示测试结束一共发生的失效数;
[0017]
在用公式控制参数寻优之前,为加快算法收敛速度,根据软件可靠性g-o模型参数的极大似然估计公式构造b的适应值函数来对参数b进行初始化;已知a、b的极大似然估计公式如下所示:
[0018][0019]
将第一项a的表达式代入到第二项中并进行数学变换,构造成一个只与参数b相关的公式,具体如下式所示:
[0020][0021]
其中;式中除了b以外其余的参数均为已知。
[0022]
进一步的,在步骤(3)中,所述采用的bas算法,相比于粒子群等群智能优化算法,bas只需要一个个体,即一只天牛;对于一个n维空间的优化问题,使用x
l
表示左须坐标,xr表示右须坐标,x表示质心坐标,用d0表示两须之间距离;
[0023]
天牛步长step与两须之间距离d0的比是个固定常数:
[0024]
step=c*d0,
[0025]
其中,c表示常数,即两须距离长的大天牛走大步,两须距离短的小天牛走小步;假设天牛飞到下一步后,头的朝向是随机的,则从天牛右须指向左须的向量的朝向也是任意的;因此,其表示为一个随机向量:
[0026]
dir=rands(n,1),
[0027]
将其进行归一化:
[0028]
dir=dir/norm(dir),
[0029]
则得到:
[0030]
x
l-xr=d0*dir。
[0031]
显然,x
l
和xr亦可表示成质心的表达式:
[0032]
x
l
=x+d0*dir/2,
[0033]
xr=x-d0*dir/2。
[0034]
对于待优化函数f,求取左右两须的值:
[0035]fleft
=f(x
l
),
[0036]fright
=f(xr),
[0037]
如f
left
《f
right
,为探寻f的最小值,则天牛向着左须方向行进距离step,
[0038]
即:
[0039]
x=x+step*normal(x
l-xr);
[0040]
如f
left
》f
right
,为探寻f的最小值,则天牛向着右须方向行进距离step,
[0041]
即:x=x-step*normal(x
l-xr);
[0042]
如上述两种情况均采用符号函数sign,则统一写成:
[0043]
x=x-step*normal(x
l-xr)*sign(f
left-f
right
)=x-step*dir*
[0044]
sign(f
left-f
right
)其中,normal表示归一化函数。
[0045]
进一步的,在步骤(4)中,所述采用的abc算法鲁棒性强,且每次迭代过程中都会进行全局和局部的最优解搜索;
[0046]
从步骤(3)得到天牛位置x周围运用abc算法进行搜索,设问题的解空间是d维的,采蜜蜂与观察蜂的个数都是sn,采蜜蜂的个数或观察蜂的个数与蜜源的数量相等;其中,每个蜜源的位置代表问题的一个可能解,蜜源的花蜜量对应于相应的解的适应度,一个采蜜蜂与一个蜜源是相对应的;与第i个蜜源相对应的采蜜蜂依据如下公式寻找新的蜜源:
[0047][0048]
其中,i=1,2,...,sn,d=1,2,...,d,表示区间上[-1,1]的随机数,k≠i;标准的abc算法将新生成的可能解与原来的解作比较:
[0049]
new:x
i’={xi′1,xi′2,...,xi′d}
[0050]
old:xi={x
i1
,x
i2
,...,x
id
},
[0051]
并采用贪婪选择策略保留较好的解;每一个观察蜂依据概率选择一个蜜源,概率
公式为:
[0052][0053]
其中,fiti表示可能解xi的适应值;对于被选择的蜜源,观察蜂根据上面概率公式搜寻新的可能解;当所有的采蜜蜂和观察蜂都搜索完整个搜索空间时,如一个蜜源的适应值在给定的步骤内没有被提高,则丢弃该蜜源,而与该蜜源相对应的采蜜蜂变成侦查蜂,侦查蜂通过以下公式搜索新的可能解;其中,
[0054][0055]
其中,r表示区间[0,1]上的随机数,和分别表示第d维的下界和上界,重复运行达到最大迭代次数,得到最优位置,将其作为天牛新的位置,更新天牛位置,重复步骤(3)和步骤(4),直至bas算法达到最大迭代次数。
[0056]
进一步的,在步骤(5)中,所述得到的最优位置即为参数b,其中a可由b计算得到:
[0057][0058]
进一步的,在步骤(6)中,所述软件可靠性是指:在规定条件下,在规定时间内,软件不发生失效的概率;
[0059]
所述软件可靠性模型,是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型,其公式为:
[0060]
m(t)=a(1-e-bt
),
[0061]
其中,m(t)表示到时刻t为止的累积失效数的期望函数;通过公式计算得到后五个失效发生的时间序列,然后将其与实际值对比,计算均方误差mse,公式为:
[0062][0063]
其中,表示预测值,yi表示实际值。
[0064]
有益效果:本发明与现有技术相比,本发明的特点:1、利用极大似然估计公式构造了新的适应值函数,只与参数b有关,相比于改进前的适应值函数,该函数提高了算法的准确性和收敛速度;2、将bas与abc结合,在天牛的位置更新过程中加入了abc算法,在天牛位置周围再用abc算法进行搜索,abc得到的最优位置作为天牛的新位置,可以降低bas的迭代次数,提高准确性,加快了收敛速度。
附图说明
[0065]
图1是本发明的操作流程图;
[0066]
图2是本发明中bas混合abc算法的流程图。
具体实施方式
[0067]
以下结合附图和具体实施例,对本发明做出进一步说明。
[0068]
如图所述,本发明所述的一种软件可靠性模型参数估计方法,具体操作步骤如下:
[0069]
(1)、获取训练所需的软件失效时间序列,对前一部分数据进行训练,以预测有五
个失效的失效时间;
[0070]
(2)、利用极大似然估计公式构造一种新的适应值函数,用于初始化模型参数;
[0071]
(3)、用天牛须搜索算法bas进行训练,训练中用天牛的位置更新公式更新天牛位置x;
[0072]
(4)、在天牛位置x周围,运用人工蜂群算法abc进行搜素,将abc算法得到的最优位置作为新的天牛位置,重复步骤(3),直至达到bas算法的最大迭代次数;
[0073]
(5)、根据得到的最优位置和最优适应值,最优位置即为参数b,由此求出模型参数a;;
[0074]
(6)、计算模型参数的误差率,并根据参数预测后五个失效的失效时间,与实际值进行对比,计算均方误差mse,从而形成基于天牛须搜索算法与人工蜂群算法融合的软件可靠性模型参数估计方法。
[0075]
进一步的,在步骤(1)中,所述失效时间序列与失效数之间存在非线性关系,其参数需要通过对大量数据进行训练而得到;软件失效时间序列与失效数之间的关系为:
[0076]
m(t)=a(1-e-bt
),
[0077]
其中,m(t)表示到时刻t为止的累积失效数的期望函数;a表示测试结束后软件期望被检测出来的失效总数;b代表剩余失效被发现的概率,即在时刻t产生的失效的检出率,是一个比例常数,范围为(0,1)。可见go模型的参数就是a和b,它们的选取会影响到模型预测的准确性;本方法的主要目的即为估计参数a和b。
[0078]
进一步的,在步骤(2)中,所述构造合适的适应值函数即目标优化函数,是用智能优化算法来估计软件可靠性模型的关键,将参数估计问题转变为函数优化问题;
[0079]
针对软件可靠性模型的特点,参照最小二乘法的原理,构造出的适应值函数如下所示:
[0080][0081]
其中,f
it
表示实际测得的软件失效数与通过模型估计出的失效数之间的误差相对距离,f
it
的值越小说明模型拟合的准确性越高,即参数估计的效果越好;m(ti)表示在测试时间段(0,ti]中实际发现的累积失效数;m0(ti)表示在在测试时间段(0,ti)中用模型估计出来的累积失效数;ti为第i个失效发生的时刻;i=1,2,...,n,n表示测试结束一共发生的失效数;
[0082]
在用公式控制参数寻优之前,为了加快算法收敛速度,根据软件可靠性g-o模型参数的极大似然估计公式构造b的适应值函数来对参数b进行初始化;已知a、b的极大似然估计公式如下所示:
[0083][0084]
将第一项a的表达式代入到第二项中并进行数学变换,构造成一个只与参数b相关的公式,其具体如下式所示:
[0085][0086]
其中;式中除了b以外其余的参数均为已知;因此,用智能优化算法来估计软件可靠性模型的关键,就是优化构造的适应值函数,求得最优适应值和最优位置,最优位置即为软件可靠性模型的参数b。
[0087]
进一步的,在步骤(3)中,所述采用的bas算法,相比于粒子群等群智能优化算法,bas只需要一个个体,即一只天牛,运算量大大降低,且易于实现,具有较快的收敛速度和较高的收敛质量;对于一个n维空间的优化问题,使用x
l
表示左须坐标,xr表示右须坐标,x表示质心坐标,用d0表示两须之间距离;
[0088]
天牛步长step与两须之间距离d0的比是个固定常数:
[0089]
step=c*d0,
[0090]
其中,c表示常数,即两须距离长的大天牛走大步,两须距离短的小天牛走小步;假设天牛飞到下一步后,头的朝向是随机的,则从天牛右须指向左须的向量的朝向也是任意的;因此,其表示为一个随机向量:
[0091]
dir=rands(n,1),
[0092]
将其进行归一化:
[0093]
dir=dir/norm(dir),
[0094]
则可以得到:
[0095]
x
l-xr=d0*dir。
[0096]
显然,x
l
和xr亦可表示成质心的表达式:
[0097]
x
l
=x+d0*dir/2,
[0098]
xr=x-d0*dir/2。
[0099]
对于待优化函数f,求取左右两须的值:
[0100]fleft
=f(x
l
),
[0101]fright
=f(xr),
[0102]
如果f
left
《f
right
,为了探寻f的最小值,则天牛向着左须方向行进距离step,
[0103]
即:
[0104]
x=x+step*normal(x
l-xr);
[0105]
如果f
left
》f
right
,为了探寻f的最小值,则天牛向着右须方向行进距离step,
[0106]
即:x=x-step*normal(x
l-xr);
[0107]
如上述两种情况均采用符号函数sign,则统一写成:
[0108]
x=x-step*normal(x
l-xr)*sign(f
left-f
right
)=x-step*dir*
[0109]
sign(f
left-f
right
)其中,normal表示归一化函数。
[0110]
进一步的,在步骤(4)中,所述采用的abc算法,使用了较少的控制参数,鲁棒性强,且每次迭代过程中都会进行全局和局部的最优解搜索,因此能够找到最优解的概率大大增加;
[0111]
从步骤(3)得到天牛位置x周围运用abc算法进行搜索,主要步骤:
[0112]
(1)、将参数的搜索区间设置为(0,x+1),初始化abc算法的参数;假设问题的解空
间是d维的,采蜜蜂与观察蜂的个数都是sn,采蜜蜂的个数或观察蜂的个数与蜜源的数量相等;
[0113]
(2)、其中,每个蜜源的位置代表问题的一个可能解,蜜源的花蜜量对应于相应的解的适应度,一个采蜜蜂与一个蜜源是相对应的;与第i个蜜源相对应的采蜜蜂依据如下公式寻找新的蜜源:
[0114][0115]
其中,i=1,2,...,sn,d=1,2,...,d,表示区间上[-1,1]的随机数,k≠i;标准的abc算法将新生成的可能解与原来的解作比较:
[0116]
new:x
i’={xi′1,xi′2,...,xi′d}
[0117]
old:xi={x
i1
,x
i2
,...,x
id
},
[0118]
并采用贪婪选择策略保留较好的解;每一个观察蜂依据概率选择一个蜜源,概率公式为:
[0119][0120]
其中,fiti表示可能解xi的适应值;
[0121]
(3)、对于被选择的蜜源,观察蜂根据上面概率公式搜寻新的可能解;当所有的采蜜蜂和观察蜂都搜索完整个搜索空间时,如一个蜜源的适应值在给定的步骤内没有被提高,则丢弃该蜜源,而与该蜜源相对应的采蜜蜂变成侦查蜂,侦查蜂通过以下公式搜索新的可能解;其中,
[0122][0123]
其中,r表示区间[0,1]上的随机数,和分别表示第d维的下界和上界;
[0124]
(4)、重复运行达到最大迭代次数,得到最优位置,将其作为天牛新的位置,更新天牛位置,重复步骤(3)和步骤(4),直至bas算法达到最大迭代次数。
[0125]
进一步的,在步骤(5)中,优化算法运行后得到的最优位置即为参数b,其中a可由b计算得到:
[0126][0127]
其中,tn表示第n个失效对应的时间。
[0128]
进一步的,在步骤(6)中,所述软件可靠性是指:在规定条件下,在规定时间内,软件不发生失效的概率;
[0129]
所述软件可靠性模型,是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型,其公式为:
[0130]
m(t)=a(1-e-bt
),
[0131]
其中,m(t)表示到时刻t为止的累积失效数的期望函数;通过公式计算得到后五个失效发生的时间序列,然后将其与实际值对比,计算均方误差mse,公式为:
[0132]
[0133]
其中,表示预测值,yi表示实际值。
[0134]
本发明公开了一种基天牛须搜索算法与人工蜂群算法融合的软件可靠性模型参数估计方法,下面以sys1数据集为例,给出了该实施例子的具体步骤:
[0135]
步骤1:设置天牛须搜索算法的参数,维数d=1,迭代次数n=100,步长step=0.8,质心坐标x=2*rand(d,1);设计人工蜂群算法的参数,蜂群数量大小即引领蜂与侦察蜂之和np=20,蜜源的数量foodnumber=10,一个蜜源的最大搜索次数limit=100,最大迭代次数maxcycle=10;
[0136]
步骤2:运行bas-abc混合算法,得到最优位置,即为参数b,由此计算得到参数a;通过参数a和b计算后五个失效的失效时间,并与真实失效时间对比,计算mse。输出mse、参数a和b、适应值随迭代次数的变化曲线图;
[0137]
步骤3:将参数a和b的预测值与真实值对比,计算参数的误差率;重复运行20次。这里可以将其与基于bas的软件可靠性模型参数估计、与基于abc的软件可靠性模型参数估计进行对比,本方法具有更高的准确率。
[0138]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1