基于分组‑综合多目标进化的多任务测试优选方法与流程

文档序号:12719152阅读:242来源:国知局
基于分组‑综合多目标进化的多任务测试优选方法与流程

本发明属于系统故障诊断技术领域,更为具体地讲,涉及一种基于分组-综合多目标进化的多任务测试优选方法。



背景技术:

随着半导体集成电路向集成化和小型化两个方向发展,电子系统越来越复杂,在电路中设置测点也越来越不方便,由于测点急剧缩减,导致故障诊断难度加大。经常出现研制成本与维修成本倒置的局面,使维修人员数目增加,对他们的技术等级要求变高、培训时间变长。为了减轻设备日后的维护难度,系统在设计的初始阶段就应该考虑可测试性设计。可测试性指的是系统的状态能够被准确地检测的程度。为了评价系统可测性的好坏,需要对系统进行可测性分析。可测试性分析是指使用模拟的故障状态对系统的测点设置等测试性设计进行检验,以求合理地估计系统的可测试程度。

在针对大型电子设备系统的故障诊断问题中,如何选择测试方案,使故障检测率(FDR,fault diagnose rate)、虚警率(FAR,fault alarm rate)以及测试各项开销(时间、经济等)等可测试性指标同时满足约束条件甚至趋向更好,是学术或者工程领域不断探索的问题。

对于以上同时考虑多个测试性指标的测试优选问题,可以视为多目标优化问题。多目标优化问题是讨论如何在一定约束条件下,找到满足多个目标都能达到最优的解。一般情况下,多目标优化问题的各个子目标之间是矛盾的,一个子目标的改善有可能会引起另一个或者另几个子目标的性能降低,也就是要同时使多个子目标一起达到最优值是不可能的,而只能在它们中间进行协调和折中处理,使各个子目标都尽可能地达到最优化。多目标优化问题的数学形式可以描述如下:

min y=f(x)=[f1(x),f2(x),…,fn(x)…,fN(x)],n=1,2,…,N

gi(x)≤0,i=1,2,…,P

hj(x)=0,j=1,2,…,Q

x=[x1,x2,…,xd,…,xD]

xd_min≤xd≤xd_max,d=1,2,…,D

其中,x表示D维决策向量,y表示目标向量,fn(x)表示第n个目标函数,N表示优化目标总数,gi(x)≤0表示第i个不等式约束,P表示不等式约束的数量,hj(x)=0表示第j个等式约束,Q表示等式约束的数量,X表示决策向量形成的决定空间,Y表示目标向量形成的目标空间。gi(x)≤0和hj(x)=0确定了解的可行域,xd_max和xd_min为每维向量搜索的上下限。

与单目标优化问题的本质区别在于,多目标优化问题的解并非唯一,而是存在一组由众多Pareto(帕累托)最优解组成的最优解集合,集合中的各个元素称为Pareto最优解或非劣最优解。

多目标进化算法是一类模拟生物遗传机制而形成的全局性概率优化搜索方法,在20世纪90年代中期开始迅速发展,其发展可以分为两个阶段:第一阶段主要有两种方法即不基于Pareto优化的方法和基于Pareto优化的方法;第二个阶段就是在此基础上提出了外部集这个概念,外部集存放的是当前代的所有非支配个体,从而使解集保持较好的分布度。这个时期提出的多目标遗传算法更多地强调算法的效率和有效性。在这两个阶段中,比较典型的多目标遗传算法有NSGA-II。对于这种算法而言,其优点为将时间复杂度降低了,但是其缺点也比较明显的,Li等人实验证明,NSGA-II中的拥挤距离(crowding distance)策略甚至会在高维多目标问题上对种群的进化起到反作用。

多目标进化算法的基本原理描述如下:多目标进化算法从一组随机生成的种群出发,通过对种群执行选择、交叉和变异等进化操作,经过多代进化,种群中个体的适应度不断提高,从而逐步逼近多目标优化问题的Pareto最优解集。与单目标进化算法不同,多目标进化算法具有特殊的适应度评价机制。为了充分发挥进化算法的群体搜索优势,大多数MOEA均采用基于Pareto排序的适应度评价方法。

在电子系统故障测试领域,随着大型装备系统的日益复杂,单任务测试优选问题逐渐演化成多任务测试优选问题。对于一个复杂系统,只有各个子任务测试方案执行成功,最终的总体测试任务才会成功。为了确保总体系统执行成功,各个子模块也要全部执行成功,例如,导弹要确保爆炸和摧毁目标完全正确执行,它的子模块(能源供应、目标获取、稳定装置和导航)也必须要全部正确执行。所以,各个模块的潜在故障必须被检测出来。

基于以上需求,系统的多任务测试设计中,每个任务模式都会有其自己的测试需求。测点选取的目的是从原始测试集中选择最优测试集,满足所有单个任务模式的若干个测试需求。而最终的总体测试方案中,也要满足总体的测试需求。对比传统单任务测试需求,多任务测试设计存在优化目标过多、约束条件过多的问题,如果直接沿用单任务测试优选算法,则会存在运行时间过长、解集搜索不完全、最终解不是全局非支配解等缺点。此外,在多任务测试优选中,需要对各个任务模式和总体任务进行测试优选。那么对于多任务测试优选问题,如果只是将总体优化目标和单任务优化目标简单的整合在一起,采用多目标进化算法进行求解,会造成目标太多,维数过高的问题,这对搜索解是不利的,需要进行适应性的改进。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种于分组-综合多目标进化的多任务测试优选方法,实现多目标情况下高效准确的多任务测试优选。

为实现上述发明目的,本发明基于分组-综合多目标进化的多任务测试优选方法包括以下步骤:

S1:根据系统信息获取系统的多任务测试依赖矩阵,根据实际需要选择多任务测试优选参照的测试性指标,包括故障检测率或故障隔离率,确定系统总体和每个任务模式下各个测试性指标的进化目标,以及故障检测率或故障隔离率的约束条件;定义测试方案选取向量X=[b1,b2,…,bQ],q=1,2,…,Q,Q表示测试方案数量,bq取值为0或1,bq=0表示第q个测试方案未选取,bq=1表示第q个测试方案选取,记第m个任务模式下测试性指标Fn的计算公式为n=1,2,…,N,N表示测试性指标数量,m=1,2,…,M,M表示任务模式数量,记系统总体的测试性指标Fn的计算公式为

S2:对每个任务模式分别采用多目标进化算法得到测试优选的精英个体集合Ym,其中多目标进化算法中的个体为测试方案选择向量X=[b1,b2,…,bQ],进化目标为步骤S1中所选择的N个测试性指标Fn在该任务模式下的进化目标,各个进化目标的约束条件为测试性指标在该任务模式下的约束条件,对于每个个体根据多任务测试依赖矩阵按照该任务模式下的测试性指标计算公式计算其进化目标值;

S3:根据步骤S2所得到的各个任务模式的精英个体集合Ym,设置多目标进化算法的个体为X′=[x1′,x2′,…,x′M],其中x′m表示第m个任务模式的精英个体序号,其取值范围为1≤x′m≤|Ym|,|Ym|表示精英个体集合Ym中的精英个体数量;进化目标为步骤S1中所选择的N个测试性指标Fn在系统总体的进化目标,各个进化目标的约束条件为测试性指标在系统总体的约束条件;对于每个个体根据多任务测试依赖矩阵按照系统总体测试性指标的计算公式计算其进化目标值,其中Xall=y(x1′)|y(x2′)|…|y(x′M),y(x′m)表示精英个体集合Ym中第x′m个精英个体;

根据以上设置运行该多目标进化算法,得到精英个体集合Z,其中每个精英个体Zd=[zd1,zd2,…,zdM]对应一个多任务测试方案选择向量即zdm表示精英个体集合Z中第d个精英个体中第m个任务模式的精英个体序号,y(zdm)表示精英个体集合Ym中第zdm个精英个体,d=1,2,…,|Z|,|Z|表示精英个体集合Z中精英个体数量;从而获得|Z|个多任务测试方案选择向量,即为多任务测试优选的非支配解。

本发明基于分组-综合多目标进化的多任务测试优选方法,首先对每个任务模式分别采用多目标进化算法得到测试优选的精英个体集合,其中多目标进化算法中的个体为测试方案选择向量,进化目标为预设的测试性指标在该任务模式下的进化目标,各个进化目标的约束条件为测试性指标在该任务模式下的约束条件,然后根据各个任务模式的精英个体集合采用多目标进化算法进行多任务综合测试优选,其个体的元素为各个任务模式精英个体在对应集合中的序号,得到多任务综合测试优选的精英个体集合后,根据求得的精英个体集合得到多任务测试方案选择向量,即为多任务测试优选的非支配解。采用本发明可以比直接整体求解更快速地得到多目标情况下多任务测试优选的非支配解,且能避免非全局非支配解的产生,使求解结果更加准确。

附图说明

图1是本发明基于分组-综合多目标进化的多任务测试优选方法的具体实施方式流程图;

图2是本实施例中所采用的多目标遗传进化算法的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

本发明根据多任务测试优选的特点,采用分组-综合多目标进化,来实现多任务测试优选。图1是本发明基于分组-综合多目标进化的多任务测试优选方法的具体实施方式流程图。如图1所示,本发明基于分组-综合多目标进化的多任务测试优选方法的具体步骤包括:

S101:获取系统相关数据:

根据系统信息获取系统的多任务测试依赖矩阵,根据实际需要选择多任务测试优选参照的测试性指标,包括故障检测率或故障隔离率,确定系统总体和每个任务模式下各个测试性指标的进化目标,以及故障检测率或故障隔离率的约束条件。定义测试方案选取向量X=[b1,b2,…,bQ],q=1,2,…,Q,Q表示测试方案数量,bq取值为0或1,bq=0表示第q个测试方案未选取,bq=1表示第q个测试方案选取,记第m个任务模式下测试性指标Fn的计算公式为n=1,2,…,N,N表示测试性指标数量,m=1,2,…,M,M表示任务模式数量,记系统总体的测试性指标Fn的计算公式为

系统的多任务测试依赖矩阵是通过收集系统信息来得到的,其中包含了测试性指标在各个测点上的数据。表1是多任务测试的故障检测率依赖矩阵示例。

表1

如表1所示,sm表示第m个任务模式,m=1,2,…,M,M表示任务模式数量;fmk表示第m个任务模式中第k个故障模式,k=1,2,…,Km,Km表示第m个任务模式中故障模式数量;λmk表示第m个任务模式中第k个故障模式的故障概率;tq表示第q个测试方案,q=1,2,…,Q,Q表示测试方案数量;pm表示第m个任务模式对应的故障概率,cq表示第q个测试方案对应的测试时间开销,dmkq表示第q个测试方案对第m个任务模式中第k个故障模式的故障检测率。

在测试优选问题中,通常所关注的测试性指标有故障检测率(FDR,fault diagnose rate)、故障隔离率(FIR,fault isolation rate)、虚警率(FAR,fault alarm rate)、测试时间开销(TC,time cost)以及测试经济开销(PC,price cost)等等,可以根据实际需要来进行选择。为了简化说明,本实施例中选择考虑故障检测率FDR、虚警率FAR和测试时间开销TC这三个测试性指标,根据多任务测试测试的依赖矩阵即可计算。以故障检测率FDR为例,每个任务模式的故障检测率FDRm的计算公式如下:

系统整体的故障检测率FDRall的计算公式如下:

虚警率FAR与故障检测率FDR的计算公式近似,测试时间开销TC的计算公式为各个测试性指标的进化目标和约束条件,是根据实际情况来设置的。以本实施例而言,需要故障检测率FDR尽可能高,虚警率FAR与测试时间开销TC尽可能低,并且故障检测率FDR需要大于等于预设的最小阈值,从而可以获取本实施例中的进化目标和约束条件表示如下:

其中,表示第m个任务模式的故障检测率阈值,表示系统总体的故障检测率阈值。

S102:基于多目标进化的单个任务模式测试优选:

对每个任务模式采用多目标进化算法得到测试优选的精英个体集合Ym,其中多目标进化算法中的个体为测试方案选择向量X=[b1,b2,…,bQ],进化目标为步骤S101中所选择的N个测试性指标Fn在该任务模式下的进化目标,各个进化目标的约束条件为测试性指标在该任务模式下的约束条件,对于每个个体根据多任务测试依赖矩阵按照该任务模式下的测试性指标计算公式计算其进化目标值。

目前行业内已经存在数种多目标进化算法,其具体算法可以根据实际需要来进行选择,经过性能比对,本实施例采用效果较好的多目标遗传进化算法。图2是本实施例中所采用的多目标遗传进化算法的流程图。如图2所示,本实施例中所采用的多目标遗传进化算法的具体步骤包括:

S201:种群初始化:

在多目标进化个体的取值范围内,随机生成Q个个体构成初始种群A,每个个体的得分score=α,初始化精英个体集合迭代次数t=1。显然,在单个任务模式测试优选时,种群中的个体即为元素为不同取值组合的测试方案选择向量。初始种群的数量Q可以根据实际需要来进行确定。

S202:产生新个体:

根据当前种群A中个体的得分score随机选择两个个体进行交叉变异产生Q个新个体,得分score越大,被选择概率越大。

S203:个体排序:

将步骤S202中产生的新个体与当前种群A合并为新种群B,将新种群B中各个个体的得分score还原为初始值α,然后根据以下规则进行排名:计算种群B中每个个体的进化目标值(在单个任务模式测试优选时根据进行计算),如果进化目标值满足预设的约束条件,则对应的个体称为可行解;然后从种群B中不重复地选出两个个体,如果两个个体均是可行解,则根据支配规则排名,令被支配的一方score=0.9score,支配的一方不作任何操作;如果只有一方是可行解,则该可行解一方不作任何操作,另一方的score=0.9score;如果双方均不是可行解,目标值距离约束条件最远的一方score=0.9score,另一方不作任何操作;遍历完所有个体对后,根据得分score对个体进行降序排列。

S204:选择精英个体:

从种群B中选择得分score=α的个体,如果该个体的进化目标值不满足约束条件,或与精英个体集合Y中的个体重复,或被精英个体集合Y中的个体支配,则不作任何操作,否则将该个体加入精英个体集合Y中;如果精英个体集合Y中存在原有个体被新加入个体所支配,则删除这些原有个体,否则不作任何操作。

S205:判断是否迭代次数达到阈值,即t<T,T表示预设的迭代次数阈值,如果是,进入步骤S206,否则多目标遗传进化算法结束。

S206:选出下一代种群:

由于种群B中的个体数量是种群A的两倍,且在步骤S203中对种群B中的个体进行了排序,因此选择种群B中前一半个体集合,作为新种群A,令t=t+1,返回步骤S202。

根据步骤S201至步骤S206,多目标进化遗传算法经过T次迭代,得到一个精英个体集合,该精英个体集合中的个体互相非支配,所以是一个Pareto最优解集。

S103:基于多目标进化的多任务综合测试优选:

根据步骤S102所得到的各个任务模式的精英个体集合Ym,设置多目标进化算法的个体为X′=[x1′,x2′,…,x′M],其中x′m表示第m个任务模式的精英个体序号,其取值范围为1≤x′m≤|Ym|,|Ym|表示精英个体集合Ym中的精英个体数量;进化目标为步骤S101中所选择的N个测试性指标Fn在系统总体的进化目标,各个进化目标的约束条件为测试性指标在系统总体的约束条件;对于每个个体根据多任务测试依赖矩阵按照系统总体测试性指标的计算公式计算其进化目标值,其中Xall=y(x1′)|y(x2′)|…|y(x′M),y(x′m)表示精英个体集合Ym中第x′m个精英个体,|表示对向量的每维元素进行求或运算。

根据以上设置运行该多目标进化算法,得到精英个体集合Z,其中每个精英个体Zd=[zd1,zd2,…,zdM]对应一个多任务测试方案选择向量即zdm表示精英个体集合Z中第d个精英个体中第m个任务模式的精英个体序号,y(zdm)表示精英个体集合Ym中第zdm个精英个体,d=1,2,…,|Z|,|Z|表示精英个体集合Z中精英个体数量;从而获得|Z|个多任务测试方案选择向量,即为多任务测试优选的非支配解。

假设某系统存在3个任务模式,4个测试方案,第1个任务模式的精英个体集合Y1={(0,1,0,1),(0,1,1,0)},第2个任务模式的精英个体集合Y2={(1,1,0,1)},第3个任务模式的精英个体集合Y3={(0,1,0,1),(0,1,1,0),(1,1,0,0)},可见3个任务模式的精英个体的数量分别为2,1,3。那么在基于多目标进化的多任务综合测试优选时,假定多目标进化算法的个体为X′=[1,1,3],那么其对应的测试方案选择向量Xall=(0,1,0,1)|(1,1,0,1)|(1,1,0,0)=(1,1,0,1)。可见,在本发明基于多目标进化的多任务综合测试优选中,通过个体的设置将单个任务模式的精英个体与系统总体的个体进行联系,从而通过分组-综合来实现多任务测试优选。

同样地,本步骤中的多目标进化算法也可以根据实际需要来选择,本实施例中同样采用如图2所示的多目标遗传进化算法,与基于多目标进化的单个任务模式测试优选相比,其不同之外在于个体不同,进化目标的计算和约束条件不同。

为了更好地说明本发明的技术效果,以一个实际多任务测试优选问题为例,直接采用多目标进化算法(总体优化目标和单任务模式优化目标整合作为目标)进行整体求解,并采用穷举法进行求解,将其求解时间和结果与采用本发明的求解时间和结果进行对比。表2是三种算法的求解时间和结果对比。

表2

如表2所示,采用本发明花费的求解时间最小,所得到的非支配解的数量虽然无法达到穷举法的非支配解数量,但是多于直接采用多目标进化算法进行整体求解的非支配解数量,且所得到的非支配解均是全局非支配解,因此综合求解时间和求解结果来看,本发明在针对多任务测试优选的求解效果最优。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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