发明名称 一种基于分解和最优解跟随策略的多目标测试任务调度方法
摘要 本发明公开了一种基于分解和最优解跟随策略的多目标测试任务调度方法,属于并行测试任务调度领域。本方法首先初始化参数设置,然后利用基于分解的方法将多目标问题在其目标函数空间内分解为一系列子问题,子问题通过与其邻域的信息交换得到更新进化。然后对参考点以及每个子问题的邻域进行更新,再采用最优解跟随策略使得解集在整体上进行提高,通过多次迭代以得到更优的解,即得到更优的测试任务序列极其对应的测试方案集合。本发明方法采用基于分解的策略解决多目标优化问题,避免了加权和方法的使用,减少了人为因素的影响;而最优解跟随策略的加入使得每一代解集质量整体提高,最终提高了多目标测试任务调度方法的效率。
申请公布号 CN103235743A 申请公布日期 2013.08.07
申请号 CN201310118145.7 申请日期 2013.04.07
申请人 北京航空航天大学 发明人 路辉;朱政;王晓腾
分类号 G06F9/50(2006.01)I;G06F11/36(2006.01)I 主分类号 G06F9/50(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 赵文利
主权项 1.一种基于分解和最优解跟随策略测试任务调度方法,包括以下几个步骤:第一步:开始进入调度方法计算接口;第二步:初始化确定目标函数并初始化方法的参数设置,计算权重矢量邻域索引集并给出初始解;2.1 确定目标函数本发明中目标函数为:最大完成时间与资源平均工作负荷;确定测试任务集T={t<sub>1</sub>,t<sub>2</sub>,…,t<sub>j</sub>,…,t<sub>N</sub>},t<sub>j</sub>为第j个测试任务,N为测试任务总数;确定仪器资源集R={r<sub>1</sub>,r<sub>2</sub>,…,r<sub>i</sub>,…,r<sub>M</sub>},r<sub>i</sub>为第i个仪器,M为仪器总数,<img file="FDA00003017239800011.GIF" wi="74" he="67" /><img file="FDA00003017239800012.GIF" wi="53" he="67" />与<img file="FDA00003017239800013.GIF" wi="52" he="67" />分别代表在测试任务t<sub>j</sub>在资源r<sub>i</sub>进行时的起始时间、完成时间以及消耗时间,有<img file="FDA00003017239800014.GIF" wi="245" he="70" />判断矩阵<img file="FDA00003017239800015.GIF" wi="48" he="64" />表示资源与任务的需求关系,<img file="FDA00003017239800016.GIF" wi="931" he="147" />其中t<sub>j</sub>为第j个测试任务而r<sub>i</sub>为第i个仪器;t<sub>j</sub>的测试方案集为<img file="FDA00003017239800017.GIF" wi="390" he="84" />其中k<sub>j</sub>是测试任务t<sub>j</sub>的测试方案总数,<img file="FDA00003017239800018.GIF" wi="215" he="94" />表示测试任务t<sub>j</sub>选择测试方案<img file="FDA00003017239800019.GIF" wi="56" he="69" />的测试消耗时间,r<sub>i</sub>表示测试方案<img file="FDA000030172398000110.GIF" wi="48" he="69" />中的资源,测试方案集之间的资源约束表示为:<img file="FDA000030172398000111.GIF" wi="1470" he="155" />其中<img file="FDA000030172398000112.GIF" wi="74" he="77" />与<img file="FDA000030172398000113.GIF" wi="78" he="95" />分别表示任务t<sub>j</sub>的第k个方案选择与任务<img file="FDA000030172398000124.GIF" wi="50" he="68" />的第k<sup>*</sup>个方案选择;两个目标函数是最大完成时间与资源平均工作负荷,分别用f<sub>1</sub>(x)与f<sub>2</sub>(x)表示;设任务t<sub>j</sub>选择方案<img file="FDA000030172398000114.GIF" wi="54" he="66" />时完成时间为<img file="FDA000030172398000115.GIF" wi="251" he="95" />r<sub>i</sub>表示测试方案<img file="FDA000030172398000116.GIF" wi="54" he="70" />中的资源,因此最大完成时间为<maths num="0001"><![CDATA[<math><mrow><msub><mi>f</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>max</mi><mfenced open='' close=''><mtable><mtr><mtd><mn>1</mn><mo>&le;</mo><mi>k</mi><mo>&le;</mo><msub><mi>k</mi><mi>j</mi></msub><mo></mo></mtd></mtr><mtr><mtd><mn>1</mn><mo>&le;</mo><mi>j</mi><mo>&le;</mo><mi>n</mi></mtd></mtr></mtable></mfenced></munder><msubsup><mi>C</mi><mi>j</mi><mi>k</mi></msubsup><mo>;</mo></mrow></math>]]></maths>设D表示并行步数,初始值设置为1,再给所有的任务都安排测试资源后,如果<img file="FDA000030172398000118.GIF" wi="172" he="70" />D=D+1,计算得到并行总步数,则资源平均工作负荷为:<img file="FDA000030172398000119.GIF" wi="403" he="115" />其中<img file="FDA000030172398000120.GIF" wi="222" he="93" />表示测试任务t<sub>j</sub>选择测试方案<img file="FDA000030172398000121.GIF" wi="56" he="69" />的测试消耗时间,判断矩阵<img file="FDA000030172398000122.GIF" wi="66" he="80" />表示资源与任务的需求关系;2.2 变量及参数初始化记最优解集为EP,且<img file="FDA000030172398000123.GIF" wi="197" he="60" />初始化每个目标函数的暂时最优解z=(z<sub>1</sub>,…,z<sub>i</sub>,…,z<sub>m</sub>)<sup>T</sup>,z<sub>i</sub>=min{f<sub>i</sub>(x),x∈Ω},即z<sub>i</sub>为各目标函数在定义域内的理论最小值,基于分解和最优解跟随策略测试任务调度方法的参数包括:迭代次数M,种群大小N,邻域大小T,交叉概率CR,变异概率p,惯性权重w,学习因子c1、c2;2.3 计算权重索引集计算与第i个权重矢量最近的T个权重索引集,其中索引集记为B(i)={i<sub>1</sub>,…,i<sub>T</sub>},记λ<sup>i</sup>为均匀分布的N个权重矢量中的第i个权重值,i∈[1,N],<img file="FDA000030172398000211.GIF" wi="193" he="60" />是λ<sup>i</sup>的T个最近的权重值,N为基于分解和最优解跟随策略的多目标测试任务调度方法的子问题的数目即种群大小,T为距离每单个的权重矢量最近的权重矢量的数量即邻域大小。2.4 生成初始解随机产生初始种群记为x<sup>1</sup>,…,x<sup>N</sup>,并令每个个体对应目标函数的解为f<sub>i</sub>(x<sup>j</sup>),其中i∈[1,2],j∈[1,N];第三步:交叉记t代中一个体为<img file="FDA000030172398000212.GIF" wi="66" he="53" />交叉之后产生的个体<img file="FDA00003017239800021.GIF" wi="72" he="63" />为具体交叉方式如下:<maths num="0002"><![CDATA[<math><mrow><msubsup><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>x</mi><mi>t</mi><mi>i</mi></msubsup><mo>+</mo><msub><mi>F</mi><mn>1</mn></msub><mo>&times;</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mi>t</mi><mi>i</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>t</mi><mrow><mi>i</mi><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>F</mi><mn>2</mn></msub><mo>&times;</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mi>t</mi><mi>i</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>t</mi><mrow><mi>i</mi><mn>2</mn></mrow></msubsup><mo>)</mo></mrow></mtd><mtd><mi>rand</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>&lt;</mo><mi>CR</mi></mtd></mtr><mtr><mtd><msubsup><mi>x</mi><mi>t</mi><mi>i</mi></msubsup></mtd><mtd><mi>rand</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>&GreaterEqual;</mo><mi>CR</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中:<img file="FDA00003017239800023.GIF" wi="62" he="61" />与<img file="FDA00003017239800024.GIF" wi="58" he="62" />为权重矢量B(i)中随机挑选的指标,F<sub>1</sub>与F<sub>2</sub>设置为1,rand(1)为变化范围为0到1的一随机小数;第四步:变异变异采用高斯变异,对于每一个解<img file="FDA00003017239800025.GIF" wi="313" he="66" />高斯变异算子如下所示:<img file="FDA00003017239800026.GIF" wi="1104" he="147" />其中<img file="FDA00003017239800027.GIF" wi="309" he="77" />表示变异后的新个体,<img file="FDA00003017239800028.GIF" wi="243" he="70" />为一服从正态分布的数,其中<img file="FDA00003017239800029.GIF" wi="48" he="78" />为均值,σ为方差,σ在自然数编码中设置为决策变量变化范围的1/20;rand(1)为变化范围为0到1的一随机小数,p为0.05;第五步:邻域与参考点更新更新z:对任意j=1,…,m,若z<sub>j</sub><f<sub>j</sub>(y′),则赋值z<sub>j</sub>=f<sub>j</sub>(y′),z<sub>j</sub>为任意一最优解;更新邻域:y′为变异后得到的解;定义参考点为z<sub>i</sub>的第j个子问题的适应度函数值为<img file="FDA000030172398000210.GIF" wi="595" he="88" />其中λ<sup>j</sup>为均匀分布的权重矢量组中一个权重矢量,对j∈B(i),若适应度函数值F(y′)≤F(x<sup>j</sup>),则任意初始种群x<sup>j</sup>=y′,f<sub>i</sub>(x<sup>j</sup>)=f<sub>i</sub>(y′),其中i∈[1,2];第六步:最优解跟随具体过程如下:6.1 确定自身最优解在每一代中,如果粒子所到达的点没有被粒子之前所到达的点支配;则自身到达的最优解p<sub>ld</sub>为其本身;如果粒子所到达的点被粒子之前所到达的点支配,将支配现在粒子到达点的解保存到一个集合中,则p<sub>ld</sub>为此集合中对应的目标函数空间中的点与现在到达点欧式距离最近的解;6.2 确定全局最优解具体确定方法为:每一次迭代过程中,在交叉变异之后,所有的非支配解作为现有的前沿,然后计算每一个粒子与前沿上的点的欧式距离,其中与粒子最近的非支配解即为全局最优解p<sub>gd</sub>;6.3 进行最优解跟随操作按照以下公式以及由6.1与6.2中确定的优值来进行最优跟随v<sub>td</sub>=w×v<sub>td</sub>+c<sub>1</sub>×rand<sub>1</sub>×(p<sub>ld</sub>-x<sub>td</sub>)+c<sub>2</sub>×rand<sub>2</sub>×(p<sub>gd</sub>-x<sub>td</sub>)x<sub>td</sub>=x<sub>td</sub>+v<sub>td</sub>其中x<sub>td</sub>代表解,v<sub>td</sub>代表粒子飞行速度,p<sub>ld</sub>为确定的自身到达的最优解,p<sub>gd</sub>为全局最优解,惯性权重w与学习因子c<sub>1</sub>、c<sub>2</sub>一般设置为1,rand<sub>1</sub>与rand<sub>2</sub>为变化范围由0到1的随机小数;第七步:更新最优解集从保留最优解的解集EP中删除被支配的解,加入新的非支配解;第八步:输出最优解集在满足停止条件后,计算停止,输出最优解集,进而得到测试方案的任务排序以及各任务所采用的资源。
地址 100191 北京市海淀区学院路37号