[发明专利]一种基于遗传算法的卫星并行测试资源配置方法无效
申请号: | 201210046718.5 | 申请日: | 2012-02-27 |
公开(公告)号: | CN102646061A | 公开(公告)日: | 2012-08-22 |
发明(设计)人: | 郑征;林树民;刘一帆;闫金栋;郭泽;蔡开元 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06N3/12 |
代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 遗传 算法 卫星 并行 测试 资源配置 方法 | ||
1.一种基于遗传算法的卫星并行测试资源配置方法,其特征在于:该方法具体步骤如下:
第一步定义资源配置方案的稳定性和总工期
在卫星并行测试中,一旦发生中断,管理者就需要重新调度剩余的测试任务,以保持资源配置方案的可行性,这样就可能导致一些卫星的测试发生延期;显然这种延期越小,资源配置方案的稳定性越好;因此,用各颗卫星测试总工期的延期量来衡量资源配置方案的稳定性;下面首先给出相关变量的定义:
Δdij卫星i的测试任务j工期的增加量,Δdij>0;
ΔDlij当资源配置方案被重新调度时,由Δdij导致的卫星l的总工期的增加量,若卫星l的总工期减小,则ΔDlij=0;
simax卫星i最晚开始的测试的任务的开始时间,
Al所有能够影响卫星l的测试总工期的测试任务的集合,
Al={(i,j)|fij≤slmax;i=1,…,L;j=2,…,Nl-1}
卫星并行测试资源配置的资源配置方案的稳定性定义为:
由上式看出,RM为所有卫星测试的总工期的平均增加量的总和,RM越小,则说明资源配置方案的稳定性越好;
稳定性RM是和不确定性水平密切相关的,只有在给定了不确定性水平的前提下,RM才具有明确的比较意义,即表示资源配置方案抵抗不确性影响的能力;例如,相同的RM值,不确定性水平较高时显然比不确定性水平较低时,资源配置方案具有更好的稳定性;因此,应该指明RM是在什么样的不确定性水平下计算的,测试任务的不确定性水平由下式定义:
在卫星并行测试资源配置中,资源配置方案的总工期由下式表示:
因此,卫星并行测试资源配置双目标模型的目标函数为:
第二步模型的求解
采用非支配排序遗传算法NSGA-II求解卫星并行测试资源配置的双目标调度模型,以得到非支配解集;
在非支配排序遗传算法NSGA-II中,问题的解被表示成染色体,它是该算法的操作对象;因此,该NSGA-II算法的应用依赖于解到染色体的映射方式;在项目调度中,从解到染色体的映射称为编码,而从染色体到解的映射称为解码;除了设计解与染色体之间的映射外,还需设计选择、交叉和变异遗传算子,它们是和染色体的编码形式相关的;
(1)编码方案
结合卫星并行测试资源配置模型的特点,在基于任务列表的染色体表达方式的基础上,提出一种带有优先级的编码方式;该方式将一个资源配置方案编码为一个任务序列从而形成一条染色体;一条染色体被分成几个独立的片段,每个片段代表一颗卫星的测试任务的序列,并且片段之间没有交叉;每个片段的位置代表了它的优先级,优先级越高其位置越靠前;若L颗卫星并行测试,并且它们的优先级是按序号递减的,那么所有卫星的测试任务可以按如下方式编码:
在此,假定每颗卫星的测试任务序列是符合时序约束的,并且对i=1,…,L有
这种编码方式是按照卫星的优先级分段编码的,即将优先级高的卫星的测试任务排在前面;只要保证每颗卫星首尾两个虚拟测试任务的编码位置不变,无论其它测试任务的位置如何变化,当从左到右地调度时,总能保证优先级高的卫星的测试任务首先被安排,这样就保证了卫星的优先级关系不会被打破;这种分级的编码方式除了可以保证卫星的优先级关系外,还极大的缩小了搜索空间,因为它限制了每个任务位置变化的范围;
这种编码方式形成了一个从资源配置方案到染色体的多值映射,即一个资源配置方案可能会被编成不同的染色体;这种多值映射的形成还与资源和项目网络的复杂性有关;一般说来,当资源比较少或者项目网络复杂性比较高时,这种多值映射接近于单值映射;而随着资源量的增加和网络复杂性的降低,多值现象会越来越明显,这种现象会影响遗传算子操作的效率,因为它有时可能导致遗传操作产生相同的资源配置方案;
(2)初始种群的产生
初始种群应该保证充分的多样性,以减小计算陷入局部极小的可能性;虽然较大的种群规模可以增加种群的多样性,但是过大的种群规模可能使较优个体过早占据种群从而造成过早收敛,而且会增加计算负担;因此,种群规模应该适中;初始种群采用随机的方式产生,也能依据优先规则产生,或者将二者结合以得到更加分散的个体;无论哪种产生方式,都必须保证卫星优先级关系和测试任务时序约束不被打破;
编码时,每个测试任务Aij对应一个可行任务集合Dij,Dij包含目前所有未被安排但其所有紧前任务已被安排的测试任务;每个测试任务被编码后都要计算其可行任务集合,然后从其可行任务集合中选取下一个要被编码的测试任务;当一颗卫星的测试任务编码完毕后,其虚拟结束任务看作是下一颗应被编码的卫星的虚拟开始任务的紧前任务,这样就能将各卫星按优先级顺序依次编码;设有L颗卫星进行并行测试,则一条染色体π可以进行如下编码:
(1令π=[A11],i=1;
(2令j=1;
(3计算可行任务集合Dij,随机或依优先规则在Dij中选择一个任务Aij′,令π=[π,Aij′];
(4 j=j+1,若j≤Ni,则转(3,否则转(5;
(5 i=i+1,若i≤L,则转(2,否则转(6;
(6结束;
(3)解码方案
解码是编码的逆过程,它将染色体转化为资源配置方案,提出一种适合编码方案的解码方式,它得到积极的资源配置方案,即任何测试任务都不可能在不改变其它测试任务开始时刻的前提下更早地开始;该解码方案在满足资源约束和时序约束的前提下根据测试任务在染色体中的顺序依次调度每个测试任务,并使其在最早可开始的时刻开始;每个测试任务的最早开始时刻满足:①不小于其紧前任务的结束时刻;②该任务在整个执行阶段满足资源约束;③满足条件①和②的最小时刻;若遇到虚拟开始测试任务,则将它的开始时间设置为0,这样就保证了每颗卫星都是从0时刻开始调度的;令T为目前已调度的测试任务结束时刻的递增序列,Tg是其第g个元素,根据上面的结论,一个待调度的测试任务的开始时间只能为T中的某个值,解码方案的流程如下:
(1令L={0},i=1;
(2令si1=0,fi1=0,j=2
(3计算Aij所有紧前任务的最晚结束时刻t′,并确定t′在T中的位置g;
(4若当t∈[Tg,Tg+dij]时Aij满足资源约束,则令Sij=Tg,fij=Sij+dij,T=T∪{fij},并对T进行递增排序,转(5,否则令g=g+1,转(4;
(5 j=j+1,若j≤Nig<J,则转(3,否则转(6;
(6 i=i+1,若i≤L,则转(2,否则转(7;
(7结束;
由此看出,该解码方案是从染色体到资源配置方案的单射,即每个染色体都只能解码为一个资源配置方案;
(4)稳定性的计算
根据卫星并行测试资源配置的稳定性的定义,应该计算每个测试任务对每颗测试卫星的总工期的影响;当某个测试任务的工期增加后,就要进行重新调度,实际上就是对此刻还未开始的测试任务进行重新解码,以此确定其对每颗测试卫星的总工期的影响;
设有L颗卫星并行测试,测试卫星l含有Nl个测试任务,其总工期为Dl,其计算步骤如下:
(1将某染色体解码,获得各颗测试卫星的总工期Dl(l=1,…,L);
(2令Rl=0(l=1,…,L),nl=0(l=1,…,L),i=1;
(3令j=2;
(4让测试任务Aij的工期增加Δdij,然后将该任务结束时还未开始执行的测试任务按照其开始的时间升序排列,然后重新解码,获得各颗测试卫星的总工期D′l(l=1,…,L);
(5对l=1,…,L,若D′l>Dl,则Rl=Rl+(D′l-Dl);
(6对l=1,…,L,若fij≤slmax,则nl=nl+1;
(7 j=j+1,若j<Ni,转(4,否则转(8;
(8 i=i+1,若i≤L,转(3,否则转(9
(5)遗传算子
遗传算子用来产生新的个体以提高解的质量,选择算子用来选出最优个体进入下一代,舍弃较差个体;交叉算子是产生新个体的主要方式;变异算子以小概率随机产生新个体,用来扩大搜索范围,避免种群陷入局部极小;
1)选择算子
在NSGA-II算法中,每一代要进行两次选择操作,第一次是从混合种群中选择种群Pt+1,通过非支配性排序和密度估计后,直接复制最好的N个个体形成Pt+1;第二次使用2-联赛选择机制从Pt+1中选出Qt+1,每次从Pt+1中随机选择两条染色体,然后根据比较算子选取其中较好的一条放入Qt+1中,直到满足种群规模;
2)交叉算子
采用一点交叉方式;在对染色体进行交叉时,要在每颗卫星的虚拟结束任务与紧邻的下一颗卫星的虚拟开始任务间加上虚拟的时序约束关系;加上虚拟约束关系保证在进行交叉时卫星的优先级关系不被打破,即每颗卫星所占的染色体片段的位置不会改变,而且不同卫星的测试任务也不会发生交叠;
设两条交叉的染色体分别为:
和
首先,随机产生一个正整数作为交叉点,πF和πM交叉产生两个后代πS和πD;子代染色体πS的前r个基因直接继承自πF,剩余的基因继承自πM并保持在πM中的相对顺序不变,即
其中,
以同样的方式可以产生另一个子代染色体
其中,
3)变异算子
变异算子用来增加搜索的随机性,防止种群过早收敛;其变异方式如下:对某个任务进行变异操作时,首先找到其所有紧前任务的最后位置r1和所有紧后任务的最前位置r2,然后随机产生一个正整数r(r1<r<r2),将该任务插入位置r上,虚拟任务不进行变异;显然这种变异方式也不会改变任务的时序约束和各颗卫星的优先级;
经过以上设计,使用NSGA-II算法求解卫星并行测试资源配置模型,从而得到非支配解集合;
第三步最优解筛选算法
对双目标模型进行求解得到的是一个非支配解集合,其元素往往不只一个,这就面临如何从中选择一个最优的资源配置方案;
在实际中,认为所有测试任务的不确定性水平ULij在一个有限集合中取值,例如取自集合{0,0.1,0.5},那么所有测试任务根据其不确定性水平的大小分成不同的集合,即
Qα={Aij|ULij=α,i=1,…,L;j=1,…,Ni} (10)
延期任务百分比是指具有相同不确定性水平的测试任务的数量与所有卫星测试任务总数的比值,即
延期任务百分比用来估计发生延期的任务数量;
设每条染色体由个测试任务组成,测试任务的不确定性水平取自有限集合{α1,α2,…,αn},其相对应的延期任务百分比为并令
(1将染色体解码计算其总工期D,令sum=0,g=1;
(2若g≤N_size,则令i=1,否则转(5;
(3若i≤M,则生成[0,1)之间的随机数r,确定k的值使得wk≤r<wk+1,令测试任务Ai的工期对测试任务Ai原结束时间之后开始的测试任务重新调度,i=i+1,转(3,否则转(4;
(4计算总工期Dg,sum=sum+Dg,g=g+1,转(2;
(5取平均值作为资源配置方案的延期总工期D′=sum/N_size;
对非支配集合中的每个解进行上述计算后,每个解都对应一个在多个任务发生延期的情况下的总工期,总工期最短的资源配置方案作为最优的资源配置方案;
第四步设计结束
围绕资源配置方案的总工期最短和稳定性最高这两个指标,首先在第一步给出了卫星并行测试资源配置方案的稳定性和总工期的定义,从而将卫星并行测试资源配置问题作为一种多目标优化问题进行求解;第二步给出卫星并行测试资源配置问题的求解方法;第三步的最优解筛选算法用以在求解双目标调度模型后得到最优的资源配置方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210046718.5/1.html,转载请声明来源钻瓜专利网。