[发明专利]一种基于混合贝叶斯先验分布的可靠性验证测试方法无效
申请号: | 201110257955.1 | 申请日: | 2011-09-02 |
公开(公告)号: | CN102411537A | 公开(公告)日: | 2012-04-11 |
发明(设计)人: | 高峰;郑晓云;李一晨;李刚;张振兴 | 申请(专利权)人: | 哈尔滨工程大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 赵文利 |
地址: | 150001 黑龙江*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于混合贝叶斯先验分布的可靠性验证测试方法,采用共轭先验分布法确定未知参数的先验分布,通过先验矩方法和最大熵方法分别求出两组不同参数,即得到不同的先验分布,再根据第二类极大似然方法确定以上两种先验分布的权重,按权重将先验矩方法和最大熵方法得出的参数融合,进而得到最终的先验分布比单纯使用其中一种方法得到的先验分布更加准确,与真实的分布拟合度更好。通过最终的贝叶斯先验分布及试验信息,计算出可靠性验证测试中所需的最小无失效用例数,这种方法相对于无先验知识的情况,可以有效的减少测试用例量。 | ||
搜索关键词: | 一种 基于 混合 贝叶斯 先验 分布 可靠性 验证 测试 方法 | ||
【主权项】:
1.一种基于混合贝叶斯先验分布的可靠性验证测试方法,其特征在于,具体包括以下几个步骤:步骤一、采用共轭先验分布的方法,确定未知失效概率p的先验分布;假定某软件在任一运行时刻、任意选择输入的失效概率为p,且每次输入操作执行是均满足贝努利实验的独立统计性,则在n次执行中失效r次的概率为:p ( r ) = C n r p r ( 1 - p ) n - r ]]> 因为二项式分布的共轭先验分布服从beta分布,所以失效概率p的概率密度函数的先验分布为:f(p)=pa-1(1-p)b-1/B(a,b) (1.0)其中:a>0,b>0,为beta函数的超参数,且B ( a , b ) = ∫ 0 1 p a - 1 ( 1 - p ) b - 1 dp ; ]]> 步骤二、利用先验矩方法确定共轭先验分布中的超参数;首先收集测试增长阶段的测试信息,假设选取最后的m组测试信息作为先验信息,每组测试中含有n个测试用例,其中m组测试信息中导致失效的测试用例数的个数分别为k1,k2,…,km,k1,k2,…,km组成样本x,则样本x的边缘分布为:h ( x ) = ∫ 0 1 f ( p ) π ( x | p ) dp - - - ( 2.0 ) ]]> 其中:π(x|p)为样本x对p条件分布,
将公式(1.0)带入公式(2.0)得出公式(2.1):h ( x ) = ∫ 0 1 1 B ( a , b ) p a - 1 ( 1 - p ) b - 1 C n x p x ( 1 - p ) n - x dp = ∫ 0 1 1 B ( a , b ) C n x p a + x - 1 ( 1 - p ) b + n - x - 1 dp ]]>= C n x B ( a , b ) ∫ 0 1 p a + x - 1 ( 1 - p ) b + n - x - 1 dp ]]> 因为B ( a , b ) = ∫ 0 1 p a - 1 ( 1 - p ) b - 1 dp , ]]> 所以∫ 0 1 p a + x - 1 ( 1 - p ) b + n - x - 1 dp = B ( a + x , n + b - x ) , ]]> 所以得到:h ( x ) = C n x B ( a + x , n + b - x ) / B ( a , b ) - - - ( 2.1 ) ]]> 则h(x)的一阶矩,二阶矩具体为:E ( x ) = ∫ xh ( x ) dx = Σ x = 0 n xh ( x ) = ∫ 0 1 f ( p ) Σ x = 0 n C n x xp x ( 1 - p ) n - x dp = na / ( a + b ) - - - ( 2.2 ) ]]>E [ ( x - 1 ) x ] = ∫ x ( x - 1 ) h ( x ) dx = Σ x = 0 n x ( x - 1 ) h ( x ) ]]>= ∫ 0 1 f ( p ) Σ x = 0 n C n x x ( x - 1 ) p x ( 1 - p ) n - x dp = n ( n - 1 ) a ( a + 1 ) ( a + b ) ( a + b + 1 ) - - - ( 2.3 ) ]]> 通过公式(2.2)(2.3)获取a,b的值如下:a=Ex(Ex2-nEx)/[(n-1)(Ex)2+n(Ex-Ex2)] (2.4)b=(n-Ex)(Ex2-nEx)/[(n-1)(Ex)2+n(Ex-Ex2)] (2.5)其中:Ex为h(x)的一阶矩,用样本均值
来估计超参数a和b,Ex2为h(x)的二阶矩,用
来估计超参数a和b,最后,通过先验矩方法得到的超参数a和b的值分别记为a1和b1;步骤三、利用最大熵方法确定共轭先验分布中的超参数;将失效概率p的先验信息用f(p)如式(3.0)所述的约束方式表示:E [ g k ( p ) ] = ∫ 0 1 f ( p ) g k ( p ) dp = μ k - - - ( 3.0 ) ]]> 其中:E[gk(p)]为f(p)的k阶原点矩,即gk(p)=pk,将E[gk(p)]记为μk;本发明中E[pk]采用f(p)的二阶原点矩,因此得到共轭最大熵求解公式如公式(3.1)所示;max H ( p ) = - ∫ 0 1 f ( p ) ln ( f ( p ) f 0 ( p ) dp ) s . t . E [ g k ( p ) ] = ∫ 0 1 f ( p ) g k ( p ) dp = μ k - - - ( 3.1 ) ]]> 其中:H(p)表示p的熵,f0(p)为问题自然的不变的无信息先验分布,取值为1;则将公式(1.0)代入公式(3.1),得到公式(3.2):H ( p ) = - 1 B ( a , b ) ∫ 0 1 p a - 1 ( 1 - p ) b - 1 [ ln p a - 1 ( 1 - p ) b - 1 - ln B ( a , b ) ] dp ]]>= ln B ( a , b ) B ( a , b ) - 1 B ( a , b ) ∫ 0 1 p a - 1 ( 1 - p ) b - 1 ln p a - 1 ( 1 - p ) b - 1 dp - - - ( 3.2 ) ]]> 取k=2,则:E [ g k ( p ) ] = 1 B ( a , b ) ∫ 0 1 p 2 p a - 1 ( 1 - p ) b - 1 dp ]]>= B ( a + 2 , b ) B ( a , b ) = a ( a + 1 ) ( a + b ) ( a + b + 1 ) = μ 2 - - - ( 3.3 ) ]]> 公式(3.1)为条件极值问题,利用拉格朗日乘数法将条件极值转换为无条件极值;具体为:令:![]()
获取
的无条件极值,则;![]()
![]()
式中:λ是拉格朗日求极值过程的一个参数,Fa(a,b,λ)表示F(a,b,λ)对a求偏导,Fb(a,b,λ)表示F(a,b,λ)对b求偏导,Fλ(a,b,λ)表示F(a,b,λ)对λ求偏导,ha表示对a求偏导、hb表示对b求偏导;根据方程组(3.5)获取得到a和b的值,分别记为a2和b2;步骤四、采用第二类极大似然方法确定步骤二和步骤三中得出的两种先验分布的权重;具体步骤如下:步骤4.1:将先验矩方法得出的分布函数记为π1(p),π 1 ( p ) = p a 1 - 1 ( 1 - p ) b 1 - 1 / B ( a 1 , b 1 ) , ]]> 最大熵方法得出的先验分布函数记为π2(p),π 2 ( p ) = p a 2 - 1 ( 1 - p ) b 2 - 1 / B ( a 2 , b 2 ) , ]]> 根据公式(4.0)和(4.1)分别取出确定这两种不同方法得出的先验分布的似然函数值;m ( x | π k ) = ∫ 0 1 f ( X | p ) π k ( p ) dp , k = 1,2 - - - ( 4.0 ) ]]>L ( X | π k ) = Π i = 1 n m ( x i | π k ) , k = 1,2 - - - ( 4.1 ) ]]> 其中:m(x|πk)为先验分布的边缘分布,L(X|πk)为似然函数;步骤4.2:根据公式(4.2)获取两种分布的置信因子,并将置信因子作为超参数的权重;ϵ k = L ( X | π k ) Σ k = 1 2 L ( X | π k ) , k = 1,2 - - - ( 4.2 ) ]]> 其中:ε1为先验矩方法取得的分布的置信因子,ε2为最大熵方法取得的分布的置信因子;步骤五、按不同的权重将两种方法估计出的超参数值进行融合,确定最终先验分布的超参数;a=ε1a1+ε2a2 (5.0)b=ε1b1+ε2b2步骤六、确定可靠性验证测试无失效最小测试用例数;步骤6.1:通过上述步骤,得到了未知失效概率p的先验分布,确定第一轮可靠性验证测试的无失效最小测试用例数n1,将公式(5.0)求出的a,b值代入公式(6.0),得到n1:p ( p < p 0 ) = ∫ 0 p 0 f ( p | 0 , n 1 , a , b ) = dp = ∫ 0 p 0 p a - 1 ( 1 - p ) b + n 1 - 1 dp B ( a , b + n 1 ) ≥ c - - - ( 6.0 ) ]]> 其中:(p0,c)为要求的可靠性指标已知,p0为失效率指标,c为置信度指标,f(p|0,n,a,b)为执行了n个测试用例发生0个失效的概率分布;步骤6.2:若根据步骤6.1第一轮得到的n1个测试用例全部无失效通过测试,则说明该软件符合给定的可靠性要求,验证结束;否则,若第一轮执行到第t1个测试用例发生失效,说明不符合验收指标,排除故障后需进行第二轮可靠性验证测试,转入步骤6.3;步骤6.3:把第一轮可靠性验证测试执行通过的测试用例数(t1-1)和失效的用例数1,作为先验信息融入到先验分布中,得到新的概率分布f(p|1,t1,a,b),见公式(6.1)所示;再根据公式(6.2)确定第二轮测试所需最小的无失效用例数n2;f ( p | 1 , t 1 , a , b ) = p a ( 1 - p ) b + t 1 - 2 B ( a + 1 , b + t 1 - 1 ) - - - ( 6.1 ) ]]>p ( p < p 0 ) = ∫ 0 p 0 f ( p | 1 , t 1 + n 2 , a , b ) dp = ∫ 0 p 0 p a ( 1 - p ) b + t 1 + n 2 - 2 dp B ( a + 1 , b + t 1 + n 2 - 1 ) ≥ c - - - ( 6.2 ) ]]> 其中:f(p|1,t1+n2,a,b)为在第1轮的基础上,无失效执行n2个测试用例的概率分布,仿真计算出n2的值;若n2个无失效用例全部无失效通过测试,则说明该软件符合给定的可靠性要求,验证结束;否则,若第二轮测试执行到第t2个测试用例发生失效,说明不符合验收指标,排除故障后需进行第下一轮可靠性验证测试,转入步骤6.4;步骤6.4:以此类推,若可靠性验证测试进行了i轮,各轮失效分别发生在第t1,t1+t2,,...t,1+t2+t3+...+i个测试用例上,则由公式(6.3)获取下一轮测试需要的无失效的最少用例数ni+1;∫ 0 p 0 p a + i - 1 ( 1 - p ) b + Σ 1 i t i - i + n i + 1 - 1 dp B ( a + i , b + Σ 1 i t i - i + n i + 1 ) ≥ c - - - ( 6.3 ) ]]> 其中:
为i轮测试共执行的测试用例数,
为i轮测试共通过的测试用例数,令
则公式(6.3)变为:∫ 0 p 0 p a + i - 1 ( 1 - p ) b + N i + 1 - i - 1 dp B ( a + i , b + N i + 1 - i ) ≥ c - - - ( 6.4 ) ]]> 利用公式(6.4),获取累积的总测试用例量Ni+1,然后再根据
得到具体的第i+1轮可靠性验证测试所需要的无失效测试用例量ni+1;根据第i+1轮可靠性验证测试所需要的无失效测试用例量ni+1进行软件可靠性测试。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工程大学,未经哈尔滨工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110257955.1/,转载请声明来源钻瓜专利网。