一种面向航天器自动化测试的并行测试任务两阶段调度方法

文档序号:6628995阅读:381来源:国知局
一种面向航天器自动化测试的并行测试任务两阶段调度方法
【专利摘要】本发明是一种面向航天器自动化测试的并行测试任务两阶段调度方法,属于并行测试领域。本方法包括:第一阶段,分析和确定测试任务、任务中指令和被测参数,明确任务间约束关系,建立时序约束矩阵和参数竞争关系矩阵,将任务及其间约束关系转化为无向图,把并行任务调度问题转化为图顶点的顺序最小着色问题,使用基于粒子群和模拟退火结合的方法求解,得到并行度最大的测试任务组;第二阶段,把得到的并行度最大的测试任务组在有限的测试设备上进行分配,获取最优调度方案。本发明快速建立起多个测试任务的约束关系,分析出测试任务之间的独立性,增加了测试任务的并行度,并且在满足约束的条件下实现任务在设备上的最优调度,提高测试的效率。
【专利说明】-种面向航天器自动化测试的并行测试任务两阶段调度方 法

【技术领域】
[0001] 本发明属于并行测试领域,涉及一种面向航天器自动化测试的先分组后再调度的 两阶段并行测试任务调度方法。

【背景技术】
[0002] 航天器系统由若干不同功能的分系统构成,系统复杂且可靠性要求极高,是一种 典型的安全苛刻系统。为了验证航天器组成部件的各项性能和功能是否满足设计要求,大 量的测试工作贯穿整个航天器型号研制过程的各个阶段,是航天器设计制造过程中必不可 少的组成部分。随着航天器研制数量与复杂度的增加,航天器由单一类型扩展到多类型的 批产化网络测试,测试任务的激增极大缩短了测试周期,多任务并行测试的测试模式对测 试理论和方法提出了新的挑战。并行测试成为提高测试效率的重要手段。
[0003] 并行测试技术属于下一代测试技术范畴,根植于并行处理技术,其表现为,在并行 测试程序的控制下对多个被测对象同时测试。相比于传统顺序测试技术,可以大幅度提高 测试效率和测试资源的利用率,减小测试成本。
[0004] 在航天器自动化测试中测试任务数量多,每个任务中多个指令会频繁地对飞船参 数进行读写来判断飞船是否正常,并且这多个任务之间存在着执行的时序关系,于是需要 在测试设备上调度测试任务之前对各测试任务的独立性进行分析,使得不存在航天器参数 修改竞争关系的任务才能并行执行。其次,考虑到测试设备有限而且各任务之间的指令以 及任务内的指令之间存在执行时间间隔的约束,将可并行的任务在测试设备上进行执行时 需要合理的调度,使得在测试效率最高的情况下满足各种约束。由上述对航天器自动化测 试的分析可知,任务并行调度约束比较复杂,涉及到测试任务、测试指令、航天器被测参数 和测试设备各方面的约束,并且并行调度存在着明显的层次关系,于是考虑为航天器测试 任务并行调度建立两阶段调度模型,第一阶段计算出可以并行执行的任务,第二阶段将可 并行的任务在设备上进行最优的调度。
[0005] 计算可并行测试任务的核心是将多个相互之间独立不会引起被测量冲突的测试 任务分到一个组中,一个好的分组结果会使得组内的任务尽可能的多,这样能尽可能得提 高测试效率和资源的利用率。传统的避免并行测试干扰的分组方法是由测试人员凭经验来 决定各个测试任务间的独立性,从而决定哪些测试程序是可并行的,但是在航天器自动化 测试中,航天器功能日益复杂,使得航天器的测试任务也变得复杂,完全由测试人员来确定 测试程序间的独立性已经变得不可行。因此,需要对航天器并行调度的策略进行分析,建立 多任务调度模型,由运行环境自动分析所提交的测试任务间的关系,规划出由各个测试程 序组成的无干扰并行执行序列。目前常用的并行测试任务分组的实现主要是基于算法的, 利用智能优化算法,以一个测试任务整体为粒度来求解出各并行任务组的组成,目标为使 得总的测试时间最短。但是在航天器自动化测试中,每一个任务由多条指令组成,指令之间 有一些时间间隔,初始时并未确定,于是任务的执行时间也不确定,以总测试时间最短作为 调度的目标变得不可行;而且航天器自动化测试中任务中各指令会频繁地对被测对象的参 数状态进行修改,如果以一个任务整体对参数的修改情况来判断各任务是否产生干扰,会 使得相互独立的任务非常少;此外,多个测试任务可能会有测试需求决定一些执行的前后 时序关系。以上种种因素决定了需要设计一种适用于航天器并行测试任务的分组方法。
[0006] 在设计好分组算法后,如何在测试设备上对组内的任务中各条指令进行调度也是 一个需要考虑的问题。传统的任务在设备上调度的方法一般仅考虑任务对设备的竞争,只 要满足任务对设备的独占关系,通过智能优化算法找到总执行时间最短的调度方式即可。 但在航天器自动化测试中,测试设备有限、不同的任务执行可能会需要不同种类的设备,而 且各任务之间的指令(此处为有相同参数修改需求的指令)以及任务内的指令之间存在执 行时间间隔的约束,因此需要设计一种适用于航天器并行测试任务在设备上的配置方法。


【发明内容】

[0007] 本发明提供一种面向航天器自动化测试的并行测试任务两阶段调度方法,用以快 速建立起多个测试任务的约束关系,分析出测试任务之间的独立性,增加了测试任务的并 行度,并且在满足约束的条件下实现任务在设备上的最优调度,提高测试的效率。
[0008] 本发明给出的一种面向航天器自动化测试的并行测试任务两阶段调度方法,主要 包括如下步骤:
[0009] 步骤1 :确定测试任务、测试任务中的各条指令和被测的状态参数。
[0010] 步骤2 :明确测试任务的约束关系,按照时序关系建立测试任务之间的时序约束 矩阵,按照参数修改竞争关系建立测试任务之间的参数竞争关系矩阵。
[0011] 步骤3 :将各测试任务转化为无向图上的顶点,测试任务之间的参数修改竞争关 系转化为图上的边,若两个测试任务之间有冲突,则无向图上对应的顶点之间有连边。把并 行测试任务调度问题转化为图中顶点顺序最小着色问题。
[0012] 步骤4 :使用基于粒子群算法和模拟退火算法结合的方法迭代求解图中顶点顺序 最小着色问题,得出并行度最大的测试任务组。
[0013] 步骤5 :对步骤4得到的测试任务组,把测试任务之间有修改相同参数的指令时间 间隔约束、测试任务内各指令的执行时间最大间隔约束以及总的调度时间最短作为目标, 把测试任务在测试设备上的最优调度问题转化为多目标优化问题。
[0014] 步骤6 :使用NSGA-II算法求解步骤5的多目标优化问题,获取测试任务在测试设 备上的最优调度。
[0015] 所述的步骤1中,读取周期内的测试任务文件,按行提取出测试任务中的测试指 令,分析测试指令获取航天器被测的状态参数,被测的状态参数为指令修改的航天器参数, 根据指令的类型估算出指令的执行时间。用数学定义的方法将每个测试任务中的指令条 数、各指令的执行时间、各指令之间的最大执行时间间隔、各指令修改的航天器状态参数表 示如下:SP a表示航天器被测的第α个状态参数,P= (P11P2,...,pm}为航天器被测状态 参数集合,m是状态参数个数,a = 1,2,…,m ;设Ti表示一个周期内第i个测试任务,T = IT1, T2, ...,Tj表示一个周期内的测试任务集合,n为任务个数,i = 1,2,…,η ;设Msf表示 第i个任务的第k条指令,)表示指令!><的种类,指令的种类决定指令的执行时 间;modiry(i>wf)为指令imf将修改的航天器状态参数,其中modify(i>?f) e /?;
[0016] 任务Ti表示为

【权利要求】
1. 一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,包括如 下步骤: 步骤1 :确定测试任务、测试任务中的各条指令和被测的状态参数; 设Ti表示一个周期内的第i个测试任务,一个周期内的测试任务集合T=IT1,T2,...,TJ,η为任务个数,i= 1,2,…,η;设表示任务Ti的第k条指令,mxs/wwf 是任务Ti中第k条指令与第k+1条指令之间的最大时间间隔;用偏序符号来表示任务间的 时序约束关系,如任务Ti必须先于任务L执行,记做Ti >Tj ; 步骤2 :按照时序关系建立测试任务之间的时序约束矩阵,按照参数修改竞争关系建 立测试任务之间的参数竞争关系矩阵; 步骤3 :将各测试任务转化为无向图上的顶点,若两个测试任务之间有冲突,则无向图 上对应的顶点之间有连边;把并行测试任务调度问题转化为图中顶点顺序最小着色问题; 步骤4 :使用基于粒子群算法和模拟退火算法结合的方法迭代求解图中顶点顺序最小 着色问题,得出并行度最大的测试任务组; 步骤5 :对步骤4得到的测试任务组,把测试任务之间有修改相同参数的指令时间间隔 约束、测试任务内各指令的执行时间最大间隔约束以及总的调度时间最短作为目标,把测 试任务在测试设备上的最优调度问题转化为多目标优化问题; 步骤6 :使用NSGA-II算法求解步骤5的多目标优化问题,获取测试任务在测试设备上 的最优调度。
2. 根据权利要求1所述的一种面向航天器自动化测试的并行测试任务两阶段调度方 法,其特征在于,所述的步骤1具体是:读取周期内的测试任务文件,提取测试任务中的测 试指令,分析测试指令获取航天器被测的状态参数;设Pa表示航天器被测的第z个状态参 数,被测的状态参数集合P= (P1,P2,...,Pj,m是状态参数个数,a=1,2,…,m;设Owf表示第i个任务的第k条指令,)表示指令iraf的种类;modify(imf)为指令/mf 将修改的航天器状态参数; 任务Ti表示为{im丨,mv-ψαη丨,imf.jtiiwim,2,…,厭.ψαη 中的指令条数,mxspawf是测试任务Ti中第k条指令与第k+Ι条指令之间的最大时间间隔。
3. 根据权利要求2所述的一种面向航天器自动化测试的并行测试任务两阶段调度方 法,其特征在于,步骤2中所述的时序约束矩阵,设为Anxn,如果Ti >Ir则AnXn[i] [j]= 1,否则AnXn[i] [j] = 0 ;所述的参数竞争关系矩阵设为Bnxn,若测试任务Ti和L有冲突, BnXn[i] [j] = 1,否则BnXn[i] [j] = 0 ; 设测试任务Ti的指令与测试任务L的指令对相同的参数进行修改,根据下面 时间间隔不等式判断Ti和L是否冲突:
若满足不等式则Ti和L不冲突,否则,Ti和L有冲突;exe (X)表示任务X或者指令X的执行时长;begin(X)表示任务X或者指令X的开始执行时间;max(exe(Ti))是任务Ti中 各条指令之间的间隔时间都为最大值时任务Ti的总的执行时间;max(exe(/〃.、) ),exc(/m_,,)) 是指令/m,4与指令的执行时长的较大值。
4. 根据权利要求3所述的一种面向航天器自动化测试的并行测试任务两阶段调度方 法,其特征在于,所述的步骤3,读取参数竞争关系矩阵Bnxn,若矩阵中元素BnXn[i] [j] = 1, 则无向图中测试任务Ti和L对应的顶点之间有连边。
5. 根据权利要求1所述的一种面向航天器自动化测试的并行测试任务两阶段调度方 法,其特征在于,步骤4中所述的使用基于粒子群算法和模拟退火算法结合的方法迭代求 解图中顶点顺序最小着色问题,具体步骤如下: 步骤4. 1:确定编码和适应度函数; 将图中各顶点的着色数作为编码,着色数的大小表示顶点着色的先后顺序,也表示顶 点对应的测试任务执行的先后顺序,着色数相同的测试任务表示并行执行;着色数为正整 数; _ η η 构造适应度函数乂 =Σ排w)十ΣΣ魂,Λ>+ C1JcE ?-! j-i-i-1 其中,AC为惩罚系数;E表示无向图中的边集合,表示顶点Vi和'之间的连边;设某 个解中使用了b种颜色着色;若相邻顶点Vi和'着色数相同,表示为q(i,j)=1,Σ 丄 J e, h 表示解中违反着色约束的次数;若Ti >Ir但解中Ti对应顶点Vi的着色数比L对应顶点 n ? Vj的着色数大,表示为g(i,j) = 1,则ΣΣ《(υ)表示解中违反时序约束的次数;所计算 j-Ij-jil 的适应度值越小表示解越优; 步骤4. 2 :设置参数,包括:迭代次数MI,种群规模MP,粒子群算法中的惯性权重ω、学 习因子C1和C2、惩罚系数AC,模拟退火算法的降火初温%以及降温系数μ; 步骤4. 3:产生初始种群,进化代数记为1;初始种群生成方法是: (a) 从未着色顶点集中随机选择一个顶点,着一个颜色,然后再对与该顶点不邻接的各 个顶点着相同的颜色; (b) 重复(a)直到所有的顶点被染色; (c) 重复(a)和(b)MP次,生成规模为MP的初始种群;每个粒子有η维,对应η个顶点; 步骤4. 4:计算每个粒子的适应度值,得到局部最优位置和全局最优位置;设gBest(r) 表示第r次迭代中的全局最优位置,PBesta(r)表示第r次迭代中第a个粒子的局部最优位 置; 步骤4. 5:更新粒子的位置和速度; 获得第r+Ι次迭代中第a个粒子在第i维的速度Vai (r+Ι)为: vai (r+Ι) =ωVai (r)+qrandi(pBestai (r) -xai (r)) +c2rand2(gBesti(r) -xai (r)) 获得第r+1次迭代中第a个粒子在第i维的位置xai (r+1)为: Xai (r+1) =xai(r)+vai(r+l) 其中,Vai (r)和XaiCr)分别表示在第r次迭代中第a个粒子在第i维的速度和位 置,Tand1和rand2是两个随机值;gBestiCr)表示第r次迭代中全局最优位置的第i维, PBestai (r)为第r次迭代中第a个粒子的局部最优位置的第i维; 步骤4.6 :比较粒子新旧位置适应度值的变化,设某个粒子的新旧两个位置的适应度 值的变化量为▽f,计算概率pc = min(l, exp(_▽f/ εr)),εr+1=μ ε r,ε丨=μ ε。;若 pc彡random(0,I),则接受新的位置,否则拒绝新的位置,保持原来位置不变; 步骤4. 7 :判断是否达到最大进化代数或全局最优解连续M代未变化,如果是,执行步 骤4. 9,如果不是,则执行步骤4. 8 ; 步骤4. 8 :进化代数+1,进入步骤4. 4开始下一次迭代; 步骤4. 9 :迭代结束,输出全局最优解,所得到的全局最优解就是并行度最大的测试任 务组。
6. 根据权利要求5所述的一种面向航天器自动化测试的并行测试任务两阶段调度方 法,其特征在于,所述的步骤4. 5中,对更新得到的粒子的速度值进行四舍五入取整并且限 定在[l,n-l]的范围内;对更新得到的粒子的位置,若该粒子的位置飞出搜索空间范围,则 采用吸收策略或反射策略重新设置粒子的位置; 吸收策略:当粒子的位置超出某一边界时,粒子被吸收到相应的边界上,表示如下: 丨'm? -其中,xai,(r)为重新设置的位置; 反射策略:当粒子的位置超出某一边界时,粒子被反射到相应的边界内,表示如下: [2(n-I)-χ?ξ?(Γ%χα? (r)>I
7. 根据权利要求2所述的一种面向航天器自动化测试的并行测试任务两阶段调度方 法,其特征在于,步骤5中所述的测试任务在测试设备上的最优调度问题表示如下: 目标函数F=min(time),其中">wt,=max:'H(bcgiii(7;) +cxc(7;)h 约束条件: 1如果测试任务Ti的指令imf和测试任务L的指令修改了相同的航天器状态参数,贝ij |begin(i>?.vf)-begin(/m·》|> max( ),)): 2 e[l,ic(i)],begin(/mf+i)-bcgiii(?isf) <mxspankt *, 3/^ e [0,/<>?·>],({im*Ii =1,2,."n,k =I, = 1} |<dnum-、% 其中,exe(X)表示任务x或者指令x的执行时长,begin(X)表示任务x或者指令x的 开始执行时间,TaskDevi表示第i个测试任务执行所需要的测试设备类型,表示 测试设备类型TaskDevi下的测试设备个数,gc(//,i#wf) =l表示指令/?sf在时刻μ时正在执 行。
8. 根据权利要求2或7所述的一种面向航天器自动化测试的并行测试任务两阶段调度 方法,其特征在于,所述的步骤6具体包括如下步骤: 步骤6. 1 :确定NSGA-II算法的编码,设置NSGA-II算法的参数; 将周期内所有指令按照所属测试任务进行从小到大的编号,第i个测试任务Ti的第k个指令的编号为+Α,并定义一个编号到指令互相映射的函数f;编码定义为每 應iv-l 个测试设备上执行的指令编号的矩阵DispatchhxS其中,h为所有测试设备类型下的测试 设备总个数,L为编码代表的调度方式各测试设备上执行的指令的最大条数; 定义解码规则如下: 1) 对于矩阵Dispatchhxi中第一列中的各指令,开始执行时间为O; 2) 对于矩阵中第二列及以后的各指令,设/(£%?#%][/】)二/<,如k= 1,则指令 ftwf的开始执行时间为第c台设备上一条执行指令的结束时间;如k>l,则指令Iaff的开始 执行时间为第c台设备上一条指令的结束时间和测试任务Ti中指令&if?的结束时间中较 大的值; 设置的NSGA-II算法参数包括:种群大小Ν、遗传代数Rmax和变异概率; 步骤6. 2 :进化代数R= 1,随机生成大小为N的初始种群X1,种群中每个个体通过如下 方式生成: (1) 设 1 = 1 ; (2) 随机选择集合UE中的一个指令/?<,再随机选择相应测试设备类型下的一个设备, 设所选择的是第c台设备,令= );集合UE是各测试任务中当前还未执 行的编号最小的指令集合,初始促=讲》·,11i=丨,...,缚; ⑶更新UE,把/?<从UE中删除,将imf1放入UE中; (4)如Dispatch矩阵中第1列每一行都已经有元素,1 = 1+1,然后转(2)执行;如果UE已经为空,结束; 步骤6. 3 :对当前种群Xk进行快速非支配排序生成非支配集Z,设将当前种群分为W个 集合,Z= (Z1,Z2,…,Zw},W为正整数,Zw表示非支配集Z中的第w个集合,w= 1,2,…,W; 步骤6. 4 :生成大小为N的父代种群Υκ+1,具体是:将Z中集合按照等级高低依次加入Υκ+1中,对于同一个集合Zw中的个体,将拥挤度高的个体加入种群Υκ+1 ; 步骤6. 5 :对当前种群Xk进行交叉和变异操作,生成新的子代种群QK+1 ; 交叉算子:首次,交换两个个体相同行号的元素;其次,对交换元素后的个体,将个体 中与交换后的行中元素相同的元素删除;然后,对每个个体,生成UE集合,根据步骤6. 2中 生成个体的方法将指令随机放到测试设备上;最后,调整同一测试设备上的指令,使得同一 测试任务的指令执行顺序正确; 变异算子:交换一个个体同一行的两个元素,并调整同一行上的指令,使得同一测试任 务的指令执行顺序正确; 步骤6. 6 :将生成的父代种群Υκ+1与生成的子代种群QK+1合并形成大小为2N的新种群 Xr+1 ; 步骤6. 7 :更新迭代次数,R=R+1,判断当前R是否大于规定的最大值Rmax,如果不是, 转入步骤6. 3,否则,执行步骤6. 8 ; 步骤6. 8 :迭代结束,输出当前种群中的最优个体。
【文档编号】G06F9/38GK104239213SQ201410513604
【公开日】2014年12月24日 申请日期:2014年9月29日 优先权日:2014年9月29日
【发明者】蒋亚若, 吕江花, 高世伟, 马世龙 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1