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

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

Info

Publication number
CN104239213A
CN104239213A CN201410513604.6A CN201410513604A CN104239213A CN 104239213 A CN104239213 A CN 104239213A CN 201410513604 A CN201410513604 A CN 201410513604A CN 104239213 A CN104239213 A CN 104239213A
Authority
CN
China
Prior art keywords
instruction
task
test
test assignment
particle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410513604.6A
Other languages
English (en)
Other versions
CN104239213B (zh
Inventor
蒋亚若
吕江花
高世伟
马世龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201410513604.6A priority Critical patent/CN104239213B/zh
Publication of CN104239213A publication Critical patent/CN104239213A/zh
Application granted granted Critical
Publication of CN104239213B publication Critical patent/CN104239213B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

一种面向航天器自动化测试的并行测试任务两阶段调度方法
技术领域
本发明属于并行测试领域,涉及一种面向航天器自动化测试的先分组后再调度的两阶段并行测试任务调度方法。
背景技术
航天器系统由若干不同功能的分系统构成,系统复杂且可靠性要求极高,是一种典型的安全苛刻系统。为了验证航天器组成部件的各项性能和功能是否满足设计要求,大量的测试工作贯穿整个航天器型号研制过程的各个阶段,是航天器设计制造过程中必不可少的组成部分。随着航天器研制数量与复杂度的增加,航天器由单一类型扩展到多类型的批产化网络测试,测试任务的激增极大缩短了测试周期,多任务并行测试的测试模式对测试理论和方法提出了新的挑战。并行测试成为提高测试效率的重要手段。
并行测试技术属于下一代测试技术范畴,根植于并行处理技术,其表现为,在并行测试程序的控制下对多个被测对象同时测试。相比于传统顺序测试技术,可以大幅度提高测试效率和测试资源的利用率,减小测试成本。
在航天器自动化测试中测试任务数量多,每个任务中多个指令会频繁地对飞船参数进行读写来判断飞船是否正常,并且这多个任务之间存在着执行的时序关系,于是需要在测试设备上调度测试任务之前对各测试任务的独立性进行分析,使得不存在航天器参数修改竞争关系的任务才能并行执行。其次,考虑到测试设备有限而且各任务之间的指令以及任务内的指令之间存在执行时间间隔的约束,将可并行的任务在测试设备上进行执行时需要合理的调度,使得在测试效率最高的情况下满足各种约束。由上述对航天器自动化测试的分析可知,任务并行调度约束比较复杂,涉及到测试任务、测试指令、航天器被测参数和测试设备各方面的约束,并且并行调度存在着明显的层次关系,于是考虑为航天器测试任务并行调度建立两阶段调度模型,第一阶段计算出可以并行执行的任务,第二阶段将可并行的任务在设备上进行最优的调度。
计算可并行测试任务的核心是将多个相互之间独立不会引起被测量冲突的测试任务分到一个组中,一个好的分组结果会使得组内的任务尽可能的多,这样能尽可能得提高测试效率和资源的利用率。传统的避免并行测试干扰的分组方法是由测试人员凭经验来决定各个测试任务间的独立性,从而决定哪些测试程序是可并行的,但是在航天器自动化测试中,航天器功能日益复杂,使得航天器的测试任务也变得复杂,完全由测试人员来确定测试程序间的独立性已经变得不可行。因此,需要对航天器并行调度的策略进行分析,建立多任务调度模型,由运行环境自动分析所提交的测试任务间的关系,规划出由各个测试程序组成的无干扰并行执行序列。目前常用的并行测试任务分组的实现主要是基于算法的,利用智能优化算法,以一个测试任务整体为粒度来求解出各并行任务组的组成,目标为使得总的测试时间最短。但是在航天器自动化测试中,每一个任务由多条指令组成,指令之间有一些时间间隔,初始时并未确定,于是任务的执行时间也不确定,以总测试时间最短作为调度的目标变得不可行;而且航天器自动化测试中任务中各指令会频繁地对被测对象的参数状态进行修改,如果以一个任务整体对参数的修改情况来判断各任务是否产生干扰,会使得相互独立的任务非常少;此外,多个测试任务可能会有测试需求决定一些执行的前后时序关系。以上种种因素决定了需要设计一种适用于航天器并行测试任务的分组方法。
在设计好分组算法后,如何在测试设备上对组内的任务中各条指令进行调度也是一个需要考虑的问题。传统的任务在设备上调度的方法一般仅考虑任务对设备的竞争,只要满足任务对设备的独占关系,通过智能优化算法找到总执行时间最短的调度方式即可。但在航天器自动化测试中,测试设备有限、不同的任务执行可能会需要不同种类的设备,而且各任务之间的指令(此处为有相同参数修改需求的指令)以及任务内的指令之间存在执行时间间隔的约束,因此需要设计一种适用于航天器并行测试任务在设备上的配置方法。
发明内容
本发明提供一种面向航天器自动化测试的并行测试任务两阶段调度方法,用以快速建立起多个测试任务的约束关系,分析出测试任务之间的独立性,增加了测试任务的并行度,并且在满足约束的条件下实现任务在设备上的最优调度,提高测试的效率。
本发明给出的一种面向航天器自动化测试的并行测试任务两阶段调度方法,主要包括如下步骤:
步骤1:确定测试任务、测试任务中的各条指令和被测的状态参数。
步骤2:明确测试任务的约束关系,按照时序关系建立测试任务之间的时序约束矩阵,按照参数修改竞争关系建立测试任务之间的参数竞争关系矩阵。
步骤3:将各测试任务转化为无向图上的顶点,测试任务之间的参数修改竞争关系转化为图上的边,若两个测试任务之间有冲突,则无向图上对应的顶点之间有连边。把并行测试任务调度问题转化为图中顶点顺序最小着色问题。
步骤4:使用基于粒子群算法和模拟退火算法结合的方法迭代求解图中顶点顺序最小着色问题,得出并行度最大的测试任务组。
步骤5:对步骤4得到的测试任务组,把测试任务之间有修改相同参数的指令时间间隔约束、测试任务内各指令的执行时间最大间隔约束以及总的调度时间最短作为目标,把测试任务在测试设备上的最优调度问题转化为多目标优化问题。
步骤6:使用NSGA-II算法求解步骤5的多目标优化问题,获取测试任务在测试设备上的最优调度。
所述的步骤1中,读取周期内的测试任务文件,按行提取出测试任务中的测试指令,分析测试指令获取航天器被测的状态参数,被测的状态参数为指令修改的航天器参数,根据指令的类型估算出指令的执行时间。用数学定义的方法将每个测试任务中的指令条数、各指令的执行时间、各指令之间的最大执行时间间隔、各指令修改的航天器状态参数表示如下:设Pα表示航天器被测的第α个状态参数,P={P1,P2,...,Pm}为航天器被测状态参数集合,m是状态参数个数,α=1,2,…,m;设Ti表示一个周期内第i个测试任务,T={T1,T2,...,Tn}表示一个周期内的测试任务集合,n为任务个数,i=1,2,…,n;设表示第i个任务的第k条指令,表示指令的种类,指令的种类决定指令的执行时间;为指令将修改的航天器状态参数,其中
任务Ti表示为 { ins i 1 , mxspan i 1 , ins i 2 , mxspan i 2 , . . . , mxspan i ic ( i ) - 1 , ins i ic ( i ) } ; 的形式,其中是任务Ti中第k条指令与第k+1条指令之间的最大时间间隔,ic(i)是任务Ti中的指令条数。用偏序符号来表示任务间的时序约束关系,如任务Ti必须先于任务Tj执行,记做Ti>Tj
所述的步骤2先分析测试任务之间的时序关系,按照时序关系建立测试任务之间的时序约束矩阵An×n,如果Ti>Tj,则An×n[i][j]=1,否则An×n[i][j]=0;根据航天器自动化测试的特点,建立测试任务对于参数修改的时间间隔不等式。读取各测试任务中各指令对于航天器参数状态改变情况,如两个测试任务中有指令对相同的参数进行修改,将任务中各指令信息代入时间间隔不等式中,如满足不等式,那么两个任务不冲突。按照任务之间的参数竞争关系建立任务参数冲突矩阵Bn×n,如果Ti和Tj由时间间隔不等式计算出有冲突,则Bn×n[i][j]=1,否则Bn×n[i][j]=0。设测试任务Ti的指令与测试任务Tj的指令对相同的参数进行修改,根据下面时间间隔不等式判断Ti和Tj是否冲突:
| ( Σ p = 1 t - 1 exe ( ins j p ) - Σ p = 1 k - 1 exe ( ins i p ) ) + begin ( T i ) + [ max ( exe ( T i ) ) - ( max ( exe ( T j ) ) ] / 2 + ( Σ p = 1 k - 1 mxspan j p - Σ p = 1 t - 1 mxspan i p ) / 2 | > max ( exe ( ins i k ) , exe ( ins j t ) )
若满足不等式则Ti和Tj不冲突,否则,Ti和Tj有冲突;exe(x)表示任务x或者指令x的执行时长;begin(x)表示任务x或者指令x的开始执行时间;max(exe(Ti))是任务Ti中各条指令之间的间隔时间都为最大值时任务Ti的总的执行时间;是指令与指令的执行时长的较大值。
步骤3将各测试任务转化为无向图G中的顶点,读取参数竞争关系矩阵Bn×n,如两个任务有冲突,矩阵中元素Bn×n[i][j]=1,那么无向图G中的测试任务Ti和Tj对应的顶点之间有连边。
综上所述,本发明的并行测试任务两阶段调度方法的优点和积极效果在于:
(1)易用性,本发明第一阶段航天器自动化测试系统中的测试任务、测试指令和被测航天器状态参数以及任务之间的约束关系使用统一的数学方法进行表述,简单易用;第二阶段考虑到约束复杂计算量太大,将多约束问题转化为多目标优化问题,方便进行处理。本发明方法接口调用易用性强,方便与现有其它模块集成;
(2)通用性,本发明提出的一种面向航天器自动化测试的并行测试任务两阶段调度方法,在实际应用中针对特定领域工程,通过对方法接口进行适当修改即可满足本领域需求;
(3)实用性,本发明通过以上六个步骤实现航天器自动化测试并行任务合理调度方法,可以满足工程实际需求,具有一定的实用性;本发明可快速建立起多个测试任务的约束关系,分析出测试任务之间的独立性,增加了测试任务的并行度,并且在满足约束的条件下实现任务在设备上的最优调度,提高测试的效率;
(4)高效性,本发明第一阶段考虑到单种智能优化算法存在各种缺陷,组合了两种智能优化算法,能在有效提高全局搜索能力的基础上加快算法收敛速度,以提高测试的效率。
附图说明
图1为本发明一种面向航天器自动化测试的并行测试任务两阶段调度方法的流程图;
图2为本发明一种面向航天器自动化测试的并行测试任务两阶段调度方法的软件功能结构图;
图3为本发明混合粒子群模拟退火初始化种群的方法伪代码示意图;
图4为本发明使用粒子群算法迭代过程中粒子位置越界的两种处理策略示意图;
图5为本发明使用改进的NSGA-II算法中使用交叉算子的一个示例图。
具体实施方法
下文中将参考附图并结合实施来详细说明本发明。
本发明提供的面向航天器自动化测试的并行测试任务两阶段调度方法,在第一阶段通过抽取出各个任务的航天器参数修改需求和任务的时序关系,建立适用于航天器自动化测试的任务约束关系,使用粒子群和模拟退火结合的思想,生成相互之间无冲突的可并行测试的任务组;在第二阶段把第一阶段分组得到的测试任务在有限的测试设备上进行分配,将多约束优化问题转化为多目标优化问题,使用改进的多目标优化NSGA-II算法(带有精英策略的非支配排序遗传算法)生成满足各种时间间隔约束并且总执行时间最短的调度方案。
本发明提供的一种面向航天器自动化测试并行测试任务两阶段调度方法所其软件结构图如图2所示,包含测试任务读取模块,测试任务约束生成模块,并行任务生成模块和并行任务调度模块。
测试任务读取模块主要功能包括测试任务预处理及测试任务分析。
测试任务预处理:读取周期内的测试任务文件,按行提取出测试任务中的测试指令。指令对航天器状态的操作分为修改和只读,一些数据操作类的指令只是从航天器获取某些状态参数的值并进行相应的判别,这些指令不会对状态参数进行改变,不会引起状态参数的竞争,因此只需要考虑修改类指令即可。分析任务中的指令,得到任务中各指令修改航天器参数的情况。在航天器自动化测试中,测试指令耗时的主要原因是它涉及到的网络通讯以及一定的测试业务逻辑过程,网络通讯时间由特定的网络环境决定,不同类型的指令由于其完成的测试业务不同,网络通信及需要交互次数都不同,可以根据指令的类型估算出指令的执行时间。
测试任务分析:定义航天器自动化测试并行调度模型中的变量。将测试任务、任务中的各条指令(指令的执行时间、指令之间最大间隔时间、指令修改参数情况)、任务执行的时序关系和航天器的参数均使用模型中的变量表示。
测试任务约束生成模块主要功能包括任务时序约束矩阵生成、有相同参数修改的任务时间间隔计算、以及任务参数竞争关系矩阵生成。
任务时序约束矩阵生成:通过读取任务之间的时序关系,建立矩阵A。
相同参数修改的任务时间间隔计算:为任务参数竞争约束关系提供依据。考虑到航天器自动化测试中每个任务都有多条指令,一个任务修改的参数是其中指令修改参数的并集,则不同任务修改的参数很可能有重叠。如果以一个任务整体对于参数的修改情况来作为区分任务是否有参数冲突的依据,那么任务出现冲突的情况会很多,使得能够并行测试的任务很少甚至不存在,所以需要设计一种适用于航天器自动化测试的冲突判断方法。对于任务Ti和Tj,将其带入定义好的时间间隔不等式中,如果任务满足此不等式,则可以说明两个任务在一定程度上不会引起冲突,否则,认为此两个任务会引起冲突。
任务参数竞争关系矩阵生成:读取由相同参数修改的任务时间间隔计算功能得到的任务冲突情况,建立矩阵B。
并行任务生成模块主要功能包括任务及其约束关系到图的转化和并行任务方法调用。
任务及其约束关系到图的转化:将任务以及任务对于航天器参数修改竞争关系转化为无向图上的顶点和边,把并行任务调度问题转化为图节点顺序最小着色问题。
并行调度方法调用主要功能是使用基于粒子群算法和模拟退火算法结合的算法思想来解决图顶点的着色问题,目标为使得任务调度的并行度尽可能大。
并行任务调度模块主要功能包括任务在设备上调度的约束分析和并行任务调度方法调用。
任务在设备上调度的约束分析:在调度算法使用之前对任务在设备上的调度需要满足的各项约束进行分析,包括任务之间有修改参数竞争关系的指令执行时间间隔约束、任务内各指令的执行时间最大间隔约束、各指令对于设备的独占约束。
并行任务调度方法调用:使用针对航天器自动化测试改进的NSGA-II算法来解决测试任务在测试设备上的合理调度,目标是使得总的调度时间尽可能短并且满足任务在测试设备上执行的多个约束。
一种面向航天器自动化测试并行测试任务两阶段调度方法,如图1所示,包括如下6步。
步骤1:确定和分析测试任务,明确自动化测试系统中的被测状态参数。
读取周期内的测试任务文件,按行提取出测试任务中的测试指令。分析任务中的指令,获取测试任务中各指令修改航天器状态参数的情况,根据指令的类型估算出指令的执行时间。用数学定义的方法将每个测试任务中的指令条数、各指令的执行时间、各指令之间的最大执行时间间隔、各指令修改的航天器参数对象表示出来,方便下面步骤的求解。
设Pα表示航天器被测的第α个状态参数,P={P1,P2,...,Pm}为航天器被测状态参数集合,m是状态参数个数,α=1,2,…,m;Ti表示周期内第i个测试任务,T={T1,T2,...,Tn}表示一个周期内的测试任务集合,n为任务个数,i=1,2,…,n;表示第i个任务Ti的第k条指令,表示指令的种类,指令的种类决定指令的执行时间;为指令将会修改的航天器状态参数,其中任务Ti表示为 { ins i 1 , mxspan i 1 , ins i 2 , mxspan i 2 , . . . , mxspan i ic ( i ) - 1 , ins i ic ( i ) } 的形式,其中是任务Ti中第k条指令与第k+1条指令之间的最大时间间隔,ic(i)是任务Ti中的指令条数。用偏序符号来表示任务间的时序约束关系,如任务Ti必须先于任务Tj执行,记做Ti>Tj
步骤2:使用航天器自动化测试任务参数修改的竞争关系确定方法和时序关系抽取方法,明确任务的约束关系,建立测试任务之间的时序约束矩阵和参数竞争关系矩阵,为下一步分析任务的独立性做准备。
步骤2先分析任务之间的时序关系,按照时序关系建立任务时序约束矩阵An×n;然后根据航天器自动化测试的特点,建立任务对于参数修改的时间间隔不等式。读取各任务中各指令对于航天器参数状态改变情况,如两个任务中有指令对相同的参数进行修改,将任务中各指令信息代入时间间隔不等式中,如满足不等式,那么两个任务不冲突。按照任务之间的参数竞争关系建立任务之间的参数竞争关系矩阵Bn×n
步骤2.1:读取n个任务之间的时序关系,建立一个n×n的时序约束矩阵An×n,如果Ti>Tj,则An×n[i][j]=1,否则An×n[i][j]=0。
步骤2.2:生成任务之间的参数竞争关系矩阵。
假设begin(x)表示任务x或者指令x的开始执行时间,exe(x)表示任务x或者指令x的执行时长,表示的是在实际在测试设备上调度时指令与其后一条的指令的真正间隔时间,由定义可知对于任意两个任务Ti和Tj,如果任务中有指令修改了相同的航天器状态参数,即下面对如何判断任务Ti和Tj是否冲突进行阐述。考虑任务在测试设备上实际调度的情况,如果任务Tj的指令先于任务Ti的指令被执行,则 begin ( ins i k ) - begin ( ins j t ) > exe ( ins j t ) , 相反则应该有为了更大限度地避免冲突认为两条指令的开始执行时间必须满足式(1)。
| begin ( ins i t ) - begin ( ins j k ) | > max ( exe ( ins i k ) , exe ( ins j t ) ) - - - ( 1 )
由于 begin ( ins i k ) = begin ( T i ) + Σ p = 1 k - 1 ( exe ( ins i p ) + span ( ins i p ) ) , max ( exe ( ins i k ) , exe ( ins j t ) ) = M , 则式(1)可以写为式(2)的形式:
| begin ( T j ) + Σ p = 1 t - 1 ( exe ( ins j p ) + span ( ins j p ) ) - ( begin ( T i ) + Σ p = 1 k - 1 ( exe ( ins i p ) + span ( ins i p ) ) ) | > M - - - ( 2 )
由于在并行任务序列生成阶段并不知道测试设备的情况,所以测试任务在测试设备上具体的开始时间以及任务中各指令的间隔时间并不能明确,假设任务Tj和任务Ti执行时间间隔为t(此处t可以为正也可为负),则begin(Tj)-begin(Ti)=t,带入式(2)得到:
| ( Σ p = 1 t - 1 exe ( ins j p ) - Σ p = 1 k - 1 exe ( ins t p ) ) + t + ( Σ p = 1 t - 1 span ( ins j p ) - Σ p = 1 k - 1 span ( ins i p ) ) | > M - - - ( 3 )
对于式(3)中左边:
第一部分为固定的值,因为任务中各指令的执行时间是已知的;
第二部分为两个任务的开始执行时间间隔t,考虑到在任务调度过程中,t在区间 [ - &Sigma; p = 1 p < n & p &NotEqual; i max ( exe ( T p ) ) , &Sigma; p = 1 p < n & p &NotEqual; j max ( exe ( T p ) ) ] 上满足均匀分布,其中max(exe(Tp)是一个任务Tp中各条指令之间的间隔时间都为最大值时这个任务Tp的总的执行时间,则t的数学期望为[max(exe(Ti))-(max(exe(Tj))]/2;
第三部分为任务在测试设备上实际调度时指令之间的间隔,
y = &Sigma; p = 1 t - 1 span ( ins j p ) - &Sigma; p = 1 k - 1 span ( ins i p ) &Element; [ - &Sigma; p = 1 k - 1 mxspan i p , &Sigma; p = 1 t - 1 mxspan j p ] , 与两个任务开始的时间间隔相同,实际调度时指令的间隔也没有特定的规律,可认为y在区间上满足均匀分布,数学期望为 ( &Sigma; p = 1 k - 1 mxspan i p , &Sigma; p = 1 t - 1 mxspan j p ) / 2 .
将第二、三部分的数学期望带入到式(3)中,则有:
| ( &Sigma; p = 1 t - 1 exe ( ins j p ) - &Sigma; p = 1 k - 1 exe ( ins i p ) ) + begin ( T i ) + [ max ( exe ( T i ) ) - ( max ( exe ( T j ) ) ] / 2 + ( &Sigma; p = 1 k - 1 mxspan j p - &Sigma; p = 1 t - 1 mxspan i p ) / 2 | > max ( exe ( ins i k ) , exe ( ins j t ) ) - - - ( 4 )
设begin(Ti)=0,式(4)中所有的值都为已知。如两个任务Ti和Tj中有修改相同参数的指令把任务中各个值带入式(4),如果能满足不等式,则认为这两个任务Ti和Tj不会引起冲突,否则认为这两个任务会引起冲突。
建立一个n×n的参数竞争关系矩阵Bn×n,如果Ti和Tj由式(4)计算出有冲突,则Bn×n[i][j]=1,否则,Bn×n[i][j]=0。
步骤3:将各测试任务转化为无向图上的顶点,测试任务之间的参数竞争关系转化为图上的边,把问题转化为图的染色问题。
建立一个无向图G=(V,E),来描述各个任务之间对于参数修改的竞争冲突关系,其中V={v1,v2,...,vn}表示图G的顶点集,步骤3.1用每一个顶点代表一个测试任务,测试任务Ti对应顶点vi;步骤3.2生成图G的边集E,E={eij|Bn×n[i][j]=1},通过读取矩阵Bn×n,若两个测试任务之间有冲突关系,则G中代表任务的顶点之间有连边。
通过生成的无向图G,可把并行任务调度问题转化为图的顺序最小着色问题。图的顺序最小着色问题要求按照一定的着色顺序对各个顶点进行着色,使得有边连接的相邻顶点之间不能有相同的颜色,目标是求得对图进行正常顶点着色所需要的最小颜色数。
步骤4:使用基于粒子群算法和模拟退火算法结合的方法迭代求解出并行度最大的测试任务组。步骤1~步骤4为本发明并行测试任务第一阶段。
步骤4.1:确定编码和适应度函数。
使用智能优化算法解决图顺序最小着色问题首先需要确定编码,编码即把实际问题的解描述为一种便于算法操作的形式。将图中各顶点也就是各测试任务的着色数作为编码,着色数为正整数。着色数的大小表示着色的先后顺序,也表示顶点对应的测试任务执行的先后顺序,着色数越小的测试任务代表越先被着色,着色数相同的测试任务表示可以并行执行。如当前周期中有5个任务,一个编码为(1,2,3,2,1),代表的着色序列为{T1,T5}→{T2,T4}→{T3},对应并行调度则为任务T1和T5并行执行,执行完毕后T2和T4并行执行,最后再执行任务T3
适应度函数用来评价智能算法中一个解的优劣,方便对解进行比较。如果相邻顶点vi和vj着色数相同,表示为q(i,j)=1,用即可表示一个解中违反着色约束的次数;如时序约束规定Ti>Tj,但是任务Ti对应顶点vi的着色数比Tj对应顶点vj的着色数大,表示为g(i,j)=1,用可以表示解中违反时序约束的次数。问题的目标为着色数最小,假设在一个解中使用了b种颜色来对图进行着色。
于是构造适应度函数 f c = AC &times; ( &Sigma; e ij &Element; E q ( i , j ) + &Sigma; i = 1 n &Sigma; j = i + 1 n g ( i , j ) ) + b . 对于此适应度函数,取值越小表示此解越优。适应度函数括号内的部分为惩罚项,AC为惩罚系数,通过增大AC值可以使得违反约束的解的适应度算出来特别大,则可以在迭代的过程中将此解剔除。
步骤4.2:确定使用的粒子群算法和模拟退火算法所需要的参数和各个变量。
在并行任务调度中,给定一个实例,可用n(n表示测试任务的个数)维空间表示搜索空间,第i维代表第i个测试任务Ti对应顶点vi的着色;设着色的数目为b,有b≤n,b=n时表示最差的情况,即所有任务串行执行,第i维的有效取值集为Di={1,2,...,n-1},事实上本问题中每一个维度的有效取值范围相同。每个粒子有n维,对应n个顶点,即每个粒子为n个测试任务的一个执行顺序。设第r次迭代时粒子a的位置为Xa(r)=(xa1(r),xa2(r),...,xan(r)),速度为Va(r)=(va1(r),va2(r),...,van(r)),xai(r)对应第r次迭代时粒子a中第i个顶点(测试任务)的着色(执行顺序),vai(r)对应第r次迭代时粒子a中第i个顶点(测试任务)的速度。pBest表示粒子本身迄今搜索到的最优解,称为个体极值;gBest表示整个粒子群到目前为止找到的最优解,称为全局极值。基于粒子群算法和模拟退火算法结合的并行测试任务调度方法的参数包括:迭代次数MI,种群规模MP,粒子群算法中的惯性权重ω,学习因子c1和c2,惩罚系数AC,模拟退火算法的降火初温ε0,降温系数μ。通过参考相关文献和实际效果,本发明设置参数值如表1所示:
表1 参数设置
步骤4.3:产生初始种群,进化代数记为1。
种群初始化方法的伪代码如图3所示,为了尽快的找到最优解并且保证群体中粒子的质量,采用一种改进的随机初始化方法,具体是:(a)从未着色顶点集中随机选择一个顶点,着一个颜色,然后再对与该顶点不邻接的各个顶点着相同的颜色;(b)重复上述(a)过程,直到所有的顶点被染色。(c)重复上述(a)和(b)MP次生成规模为MP的初始种群。
如图3所示,该方法使用的变量和方法如下:
UC是还没有被染色的顶点集合;c是一个一维数组,用来保存各个顶点的颜色;color表示当前着色使用的颜色。方法PutToUC(UC,i)表示将顶点i放入UC集中;方法Random(UC)从UC集中随机选择一个顶点并将其返回,方法DeleteFromUC(UC,v)表示把UC集中的顶点v删除。使用改进的初始化方法可以在初始时保证个体的质量,能够更快地找到满意的解,并且不影响个体的多样性。
步骤4.4:计算每个粒子的适应度值,得到局部最优位置和全局最优位置。
把种群中每个粒子带入适应度函数中计算出适应值,粒子的局部最优位置为粒子迭代过程中适应度值最优的位置,设第r次迭代时得到第a个粒子的局部最优位置为pBesta(r)。全局最优位置为种群迭代过程中适应度值最优的粒子所在的位置,设第r次迭代时得到的全局最优位置为gBest(r)。
步骤4.5:根据局部最优位置和全局最优位置更新粒子位置。
在每次迭代中,使用如下规则来更新粒子的速度和位置:
vai(r+1)=ωvai(r)+c1rand1(pBestai(r)-xai(r))+c2rand2(gBesti(r)-xai(r))
xai(r+1)=xai(r)+vai(r+1)
其中,vai(r)表示在第r次迭代中第a个粒子在第i维的速度,xai(r)表示在第r次迭代中第a个粒子在第i维的位置坐标。ω是在一个取值范围内随着迭代次数线性减小的值,ωvai(r)代表的是粒子先前的速度或惯性;c1和c2表示学习因子,用于决定局部最优位置和全局最优位置对于解的影响的比例;rand1和rand2是两个随机值;pBestai(r)-xai(r)可以看作是粒子的“认知”行为,表示粒子本身的思考能力;而gBesti(r)-xai(r)可看作是粒子的“社会”行为,表示粒子之间的信息共享与相互合作。gBesti(r)表示第r次迭代中全局最优位置的第i维,pBestai(r)为第r次迭代中第a个粒子的局部最优位置的第i维。
需要注意的是,并行任务调度问题属于离散优化问题,于是本发明中对于每次迭代计算出的vai(r)的值进行四舍五入取整并且限定在[1,n-1]的范围内,如果vai(r)<1,则vai(r)=1;如果vai(r)>n-1,则vai(r)=n-1。另外,如果计算出的xai(r)飞出了搜索空间范围,如图4的(a)和(b)所示,可以采用吸收和反射两种策略来处理。
吸收策略:当粒子的位置超出某一边界时,粒子被吸收到相应的边界上,如xai(r)<1,则xai'(r)=1;如xai(r)>n-1,则xai'(r)=n-1;xai'(r)为重新设置的位置。
反射策略:当粒子的位置超出某一边界时,粒子被反射到相应的边界内,如xai(r)<1,则重新设置的位置xai'(r)=1+(1-xai(r))=2-xai(r);如xai(r)>n-1,则重新设置的位置xai'(r)=n-1-[xai(r)-(n-1)]=2(n-1)-xai(r)。
在实际的应用过程中,可以根据情况选择这两种策略中较优的一个。
步骤4.6:比较粒子新旧位置适应度值的变化,以一定概率接受较差的新值。
计算出粒子新位置的适应度值,得出新旧两个位置的适应度值的变化量▽f,如▽f<0,则新位置的适应度值小,则说明新的解是一个更优的解。
降温操作为εr+1=μεr,对于概率pc=min(1,exp(-▽f/εr)),如pc≥random(0,1),则接受新的位置,否则拒绝新的位置,保持原来位置不变。以一定的概率接受劣解能够避免陷入局部最优,随着ε不断变小,接受劣解的概率也不断减小,最终ε趋于0,不再接受劣解,得到全局最优解。ε1=με0,ε0为降火初温。
步骤4.7:判断是否满足终止条件?即判断进化代数是否大于50、或最优解是否连续M代未发生变化,如果是,则执行步骤4.9,如果不是,则执行步骤4.8。本发明实施例中M取值10。
步骤4.8:进化代数+1,进入步骤4.4开始下一次迭代。
步骤4.9:迭代结束,输出全局最优解。
步骤5:把任务之间有修改参数竞争关系的指令时间间隔约束、任务内各指令的执行时间最大间隔约束以及总的调度时间最短作为目标,把任务在设备上的最优调度问题转化为多目标优化问题。
设DevTypeq表示第q个测试设备类型,DevType={DevType1,DevType2,...,DevTypeH}为航天器自动化测试系统中测试设备类型集合,H是测试设备类型个数;设dnumq表示第q个测试设备类型下的测试设备个数,DevNum={dnum1,dnum2,...,dnumH}描述了各测试设备类型下的测试设备个数,属于相同测试设备类型的测试设备可以看作是等同的。与第一阶段相同,Ti表示一个代表具体功能的测试任务,T={T1,T2,...,Tn}表示一个周期内的测试任务集合,n为周期内任务个数,由第一阶段的分析可知组内的测试任务可以并行执行;每个任务执行时都需要一种特定种类的测试设备,TaskDevi表示第i个测试任务执行所需要的测试设备类型,TaskDevi∈DevType。
本步骤将各测试任务修改相同参数的指令之间的时间间隔约束、测试任务内各指令的最大执行时间间隔约束和总的调度时间最短,一起作为多目标优化问题的目标,问题转化为求满足这些目标的在有限测试设备上的合理调度。
第二阶段问题的可以用数学方式表示如下:
目标函数F=min(time),其中 time = max i = 1 n ( begin ( T i ) + exe ( T i ) ) ;
min表示求取最小值,max表示求取最大值;
约束条件:
1如果存在测试任务Ti的指令和测试任务Tj的指令修改了相同的航天器状态参数,即 | begin ( ins i k ) - begin ( ins j t ) | > max ( exe ( ins i k ) , exe ( ins j t ) ) ;
2 &ForAll; k &Element; [ 1 , ic ( i ) ] , begin ( ins i k + 1 ) - begin ( ins i k ) &le; mxspan i k ;
3 &mu; &Element; [ 0 , time ] , | { ins i k | i = 1,2 , . . . , n , k = 1 , 2 , . . . , ic ( i ) , gc ( &mu; , ins i k ) = 1 } | < dnum TaskDev i ;gc ( &mu; , ins i k ) = 1 表示指令在时刻μ时正在执行。
目标函数表示总的调度时间最短,约束1表示如果周期内的两个测试任务中有修改相同参数的指令,则二个指令的开始执行时间必须至少间隔两条指令执行时间的最大值,约束2表示对于周期内的每一个侧任务,每条指令与其上一条指令的执行间隔时间必须小于规定好的最大间隔时间,约束3表示任一时刻占用一类测试设备的指令条数不大于该类测试设备的总数,为测试任务中指令对于测试设备的独占约束。
由于约束比较复杂,本发明将约束优化问题转化为多目标优化问题,把目标函数和约束当作并列的多个目标来进行处理。计算每个解违反约束的程度,并把该程度作为一个目标进行优化,随着使用步骤6算法的迭代,该程度越来越小并且趋近于0,即产生了满足约束的最优目标解。
步骤6,使用算法NSGA-II来求解出满足各项时间间隔约束的任务在设备上的最优调度。第二阶段结束,得到目标解。
步骤6.1:确定算法NSGA-II编码和所需的参数。
把系统周期中的指令按照所属测试任务进行从小到大的编号,如测试任务Ti的第k个指令的编号为由前面定义可知,ic(s)为任务Ts中的指令条数,并定义一个从编号到指令互相映射的函数f。编码定义为系统中每个测试设备上执行的指令编号的矩阵Dispatchh×L,其中,h为所有测试设备类型下的测试设备总个数,L为此编码代表的调度方式各测试设备上执行指令的最大条数。
对于一个编码,使用一种方法将所有测试任务中的所有指令分配到各个测试设备上,形成可行的调度并且计算各个目标值的过程成为解码。定义一种解码规则:
1)对于矩阵Dispatchh×L中第一列中的各指令,开始执行时间为0;
2)对于矩阵中第二列及以后的各指令,假设如k=1,则此指令的开始执行时间为begin(f(Dispatch[c][l-1]))+exe(f(Dispatch[c][l-1])),即第c台设备上一条执行指令的结束时间;如k>1,此条指令的开始执行时间为 max ( begin ( f ( Dispatch [ c ] [ l - 1 ] ) ) + exe ( f ( Dispatch [ c ] [ l - 1 ] ) ) , begin ( ins i k - 1 ) + exe ( ins i k - 1 ) ) , 即取第c台设备上一条指令的结束时间和相同测试任务中上一条指令的结束时间中较大的值。
Dispatch[c][l]表示矩阵Dispatchh×L的第c行第l列元素,f(Dispatch[c][l])表示第c行第l列元素对应的指令。
使用此编码规则,默认满足同一时刻资源独占的约束。给定一个确定的解,也即设备上指令调度矩阵,就可以得到多个测试任务中多条测试指令在测试设备上的唯一的调度。
对于NSGA-II算法,参考相关文献和实际效果,设置种群大小N为20,遗传代数Rmax为100,变异概率为0.2。
步骤6.2:初始进化代数R=1,随机生成初始种群XR
采用特殊的随机方法来初始化生成初始种群X1。在初始化确定矩阵Dispatchh×L的每一列时使用一个当前可以选择的指令集合UE,UE中是各测试任务中当前还未执行的编号最小的指令集合。最开始为每一个测试任务的第一条指令。矩阵生成过程如下:
(1)设l=1;
(2)随机选择一个UE中的指令再随机选择相应测试设备类型下的一个设备,设所选择的是第c台设备,令即使得第c台设备上第l个执行的指令为
(3)更新UE,把从UE中删除,将放入UE中。
(4)如Dispatch矩阵中第l列每一行都已经有元素,l=l+1,然后转(2)继续执行;如果UE已经为空,结束。
执行上面的矩阵生成过程N次,即可得到初始化的N个个体。本发明实施例N为20。
步骤6.3:对当前种群XR进行快速非支配排序生成非支配集Z。
对种群中的每一个个体按照解码规则可以得到一个各测试设备上执行的每条指令的开始时间。按照第二阶段问题的目标函数和约束,可以把种群中个体的总调度时间和对约束1、2的违反情况三个目标(因为约束3已经通过解码方法得到了满足)的值进行计算。对于个体u1,如果存在个体u2,u2的每个目标函数F的值都优于u1,则称个体u2支配个体u1
(1)找到种群中所有不被其他个体支配的个体,将它们存入当前集合Z1,并将这些个体从种群中删除,可知Z1集合中个体为种群中最优的;
(2)对于当前集合Z1中的每个个体u2,将u2对于其他个体的支配关系解除,目前种群中不被任何其他个体所支配的个体放入集合Z2,并将这些个体从种群中删除;
(3)重复上面的操作生成Zw直到种群为空。设最终将种群分为W个集合,Z={Z1,Z2,…,ZW},W为正整数,Zw表示非支配集Z中的第w个集合,w=1,2,…,W。
步骤6.4:Z中集合按照等级高低依次加入新的父代种群YR+1中,对于同一个集合Zw中的个体,比较拥挤度,拥挤度高的进入YR+1
对于Z中的集合,按等级从高到底依次将Zw(w=1,2,…,W)放入新的父代种群YR+1中,w值越小Zw等级越高,如果YR+1的数量还未达到规定的种群大小N,则依次加入Zw+1,Zw+2,…,如果最后还需加入种群的个数小于当前的集合Zw中的个体个数,则对集合Zw中的个体按照拥挤度排序,按照拥挤度从高到低依次加入种群YR+1中,直到种群YR+1个数达到N。拥挤度表示原种群中给定点的周围个体的密度。
步骤6.5:对当前种群XR进行交叉和变异操作,生成新的子代种群QR+1
对于前面提到的编码方式,一般的交叉变异算子不适用,于是需要设计特殊的算子,需要保证交叉变异后解的可行性。
交叉算子:首先,对于每一个设备类型,随机选择一个测试设备,交换两个个体相同行号的元素,也即相同测试设备上执行的指令的序列进行交换。其次,对交换元素后的个体,将个体中与交换后的行中元素相同的元素删除。交换后可能发现其他行有重复的指令,删掉其他行的重复指令。然后,对每个个体,生成UE集合,根据步骤6.2中生成个体的方法将指令随机放到测试设备上。对删除元素后的个体重新计算当前UE集合,按照步骤6.2初始化构造矩阵的方法来将指令随机放到设备上执行。最后,调整同一设备上的指令,使得同一测试任务的指令执行顺序正确。在调用初始化构造方法生成了新的矩阵后,可能会出现一个设备上同一测试任务后面的指令在前面指令之前执行,这个时候需要将这种顺序错位的指令交换,一个交叉的例子如图5所示。如图5所示,对于某两个个体,交换第二行元素,交叉后,将其他行与第二行相同的元素删除,然后针对每个个体,生成对应的UE集合,根据步骤6.2中生成矩阵的方法,将指令随机放到测试设备上,最后,调整同一设备上的指令,使得同一测试任务的指令执行顺序正确。
变异算子:交换一个个体同一行的两个元素,并调整同一行上的指令,使得同一测试任务的指令执行顺序正确。对于每一个设备类型,随机选择一个测试设备,找到此行中随机的两个位置,判断这两个位置上的指令,如果不是属于同一个测试任务,则将两个指令位置交换。需要注意变异后也可能会出现一个测试设备上同一测试任务后面的指令在前面指令之前执行的情况,此时需要将这种顺序错位的指令交换。
步骤6.6:将前面生成的父代种群YR+1与交叉编译后生成的子代种群QR+1合并形成大小为种群大小两倍的新种群XR+1,此步的作用是为了使得父子两代共同竞争产生下一代种群,有利于保持父代中的优良个体进入下一代,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度。
步骤6.7:更新迭代次数,R=R+1,判断当前R是否大于规定的最大值Rmax,如果不是,转入步骤6.3,否则,转入步骤6.8。
步骤6.8:迭代结束,输出当前种群中的最优个体。最优个体是根据步骤5的目标函数计算得到,是测试任务在测试设备上的最优调度方案。
本发明结合航天器自动化测试的实际问题,给出了并行任务的两阶段调度方法,避免了传统的并行测试任务调度方法的局限性,在第一阶段采用粒子群算法和模拟退火两种算法结合的方法,避免了单一智能算法可能存在的容易陷入局部最优或者收敛速度过慢的缺点;在第二阶段把复杂的约束求解问题转化为多目标优化问题,并且针对航天器测试的特点对NSGA-II算法进行改进,能够有效提高航天器自动化测试任务调度方法的效率。

Claims (8)

1.一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,包括如下步骤:
步骤1:确定测试任务、测试任务中的各条指令和被测的状态参数;
设Ti表示一个周期内的第i个测试任务,一个周期内的测试任务集合T={T1,T2,...,Tn},n为任务个数,i=1,2,…,n;设表示任务Ti的第k条指令,是任务Ti中第k条指令与第k+1条指令之间的最大时间间隔;用偏序符号来表示任务间的时序约束关系,如任务Ti必须先于任务Tj执行,记做Ti>Tj
步骤2:按照时序关系建立测试任务之间的时序约束矩阵,按照参数修改竞争关系建立测试任务之间的参数竞争关系矩阵;
步骤3:将各测试任务转化为无向图上的顶点,若两个测试任务之间有冲突,则无向图上对应的顶点之间有连边;把并行测试任务调度问题转化为图中顶点顺序最小着色问题;
步骤4:使用基于粒子群算法和模拟退火算法结合的方法迭代求解图中顶点顺序最小着色问题,得出并行度最大的测试任务组;
步骤5:对步骤4得到的测试任务组,把测试任务之间有修改相同参数的指令时间间隔约束、测试任务内各指令的执行时间最大间隔约束以及总的调度时间最短作为目标,把测试任务在测试设备上的最优调度问题转化为多目标优化问题;
步骤6:使用NSGA-II算法求解步骤5的多目标优化问题,获取测试任务在测试设备上的最优调度。
2.根据权利要求1所述的一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,所述的步骤1具体是:读取周期内的测试任务文件,提取测试任务中的测试指令,分析测试指令获取航天器被测的状态参数;设Pα表示航天器被测的第z个状态参数,被测的状态参数集合P={P1,P2,...,Pm},m是状态参数个数,α=1,2,…,m;设表示第i个任务的第k条指令,表示指令的种类;为指令将修改的航天器状态参数;
任务Ti表示为 { ins i 1 , mxspan i 1 , ins i 2 , mxspan i 2 , . . . , mxspan i ic ( i ) - 1 , ins i ic ( i ) } ; ic(i)是测试任务Ti中的指令条数,是测试任务Ti中第k条指令与第k+1条指令之间的最大时间间隔。
3.根据权利要求2所述的一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,步骤2中所述的时序约束矩阵,设为An×n,如果Ti>Tj,则An×n[i][j]=1,否则An×n[i][j]=0;所述的参数竞争关系矩阵设为Bn×n,若测试任务Ti和Tj有冲突,Bn×n[i][j]=1,否则Bn×n[i][j]=0;
设测试任务Ti的指令与测试任务Tj的指令对相同的参数进行修改,根据下面时间间隔不等式判断Ti和Tj是否冲突:
| ( &Sigma; p = 1 t - 1 exe ( ins j p ) - &Sigma; p = 1 k - 1 exe ( ins i p ) ) + begin ( T i ) + [ max ( exe ( T i ) ) - ( max ( exe ( T j ) ) ] / 2 + ( &Sigma; p = 1 k - 1 mxspan j p - &Sigma; p = 1 t - 1 mxspan i p ) / 2 | > max ( exe ( ins i k ) , exe ( ins j t ) )
若满足不等式则Ti和Tj不冲突,否则,Ti和Tj有冲突;exe(x)表示任务x或者指令x的执行时长;begin(x)表示任务x或者指令x的开始执行时间;max(exe(Ti))是任务Ti中各条指令之间的间隔时间都为最大值时任务Ti的总的执行时间;是指令与指令的执行时长的较大值。
4.根据权利要求3所述的一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,所述的步骤3,读取参数竞争关系矩阵Bn×n,若矩阵中元素Bn×n[i][j]=1,则无向图中测试任务Ti和Tj对应的顶点之间有连边。
5.根据权利要求1所述的一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,步骤4中所述的使用基于粒子群算法和模拟退火算法结合的方法迭代求解图中顶点顺序最小着色问题,具体步骤如下:
步骤4.1:确定编码和适应度函数;
将图中各顶点的着色数作为编码,着色数的大小表示顶点着色的先后顺序,也表示顶点对应的测试任务执行的先后顺序,着色数相同的测试任务表示并行执行;着色数为正整数;
构造适应度函数 f c = AC &times; ( &Sigma; e ij &Element; E q ( i , j ) + &Sigma; i = 1 n &Sigma; j = i + 1 n g ( i , j ) ) + b ;
其中,AC为惩罚系数;E表示无向图中的边集合,eij表示顶点vi和vj之间的连边;设某个解中使用了b种颜色着色;若相邻顶点vi和vj着色数相同,表示为q(i,j)=1,表示解中违反着色约束的次数;若Ti>Tj,但解中Ti对应顶点vi的着色数比Tj对应顶点vj的着色数大,表示为g(i,j)=1,则表示解中违反时序约束的次数;所计算的适应度值越小表示解越优;
步骤4.2:设置参数,包括:迭代次数MI,种群规模MP,粒子群算法中的惯性权重ω、学习因子c1和c2、惩罚系数AC,模拟退火算法的降火初温ε0以及降温系数μ;
步骤4.3:产生初始种群,进化代数记为1;初始种群生成方法是:
(a)从未着色顶点集中随机选择一个顶点,着一个颜色,然后再对与该顶点不邻接的各个顶点着相同的颜色;
(b)重复(a)直到所有的顶点被染色;
(c)重复(a)和(b)MP次,生成规模为MP的初始种群;每个粒子有n维,对应n个顶点;
步骤4.4:计算每个粒子的适应度值,得到局部最优位置和全局最优位置;设gBest(r)表示第r次迭代中的全局最优位置,pBesta(r)表示第r次迭代中第a个粒子的局部最优位置;
步骤4.5:更新粒子的位置和速度;
获得第r+1次迭代中第a个粒子在第i维的速度vai(r+1)为:
vai(r+1)=ωvai(r)+c1rand1(pBestai(r)-xai(r))+c2rand2(gBesti(r)-xai(r))
获得第r+1次迭代中第a个粒子在第i维的位置xai(r+1)为:
xai(r+1)=xai(r)+vai(r+1)
其中,vai(r)和xai(r)分别表示在第r次迭代中第a个粒子在第i维的速度和位置,rand1和rand2是两个随机值;gBesti(r)表示第r次迭代中全局最优位置的第i维,pBestai(r)为第r次迭代中第a个粒子的局部最优位置的第i维;
步骤4.6:比较粒子新旧位置适应度值的变化,设某个粒子的新旧两个位置的适应度值的变化量为▽f,计算概率pc=min(1,exp(-▽f/εr)),εr+1=μεr,ε1=με0;若pc≥random(0,1),则接受新的位置,否则拒绝新的位置,保持原来位置不变;
步骤4.7:判断是否达到最大进化代数或全局最优解连续M代未变化,如果是,执行步骤4.9,如果不是,则执行步骤4.8;
步骤4.8:进化代数+1,进入步骤4.4开始下一次迭代;
步骤4.9:迭代结束,输出全局最优解,所得到的全局最优解就是并行度最大的测试任务组。
6.根据权利要求5所述的一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,所述的步骤4.5中,对更新得到的粒子的速度值进行四舍五入取整并且限定在[1,n-1]的范围内;对更新得到的粒子的位置,若该粒子的位置飞出搜索空间范围,则采用吸收策略或反射策略重新设置粒子的位置;
吸收策略:当粒子的位置超出某一边界时,粒子被吸收到相应的边界上,表示如下:
x ai &prime; ( r ) = 1 , x ai ( r ) < 1 , n - 1 , x ai ( r ) > n - 1 , 其中,xai'(r)为重新设置的位置;
反射策略:当粒子的位置超出某一边界时,粒子被反射到相应的边界内,表示如下:
x ai &prime; ( r ) = 2 - x ai ( r ) , x ai ( r ) < 1 , 2 ( n - 1 ) - x ai ( r ) , x ai ( r ) > n - 1 .
7.根据权利要求2所述的一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,步骤5中所述的测试任务在测试设备上的最优调度问题表示如下:
目标函数F=min(time),其中 time = max i = 1 n ( begin ( T i ) + exe ( T i ) ) ;
约束条件:
1如果测试任务Ti的指令和测试任务Tj的指令修改了相同的航天器状态参数,则 | begin ( ins i k ) - begin ( ins j t ) | > max ( exe ( ins i k ) , exe ( ins j t ) ) ;
2 &ForAll; k &Element; [ 1 , ic ( i ) ] , begin ( ins i k + 1 ) - begin ( ins i k ) &le; mxspan i k ;
3 &mu; &Element; [ 0 , time ] , | { ins i k | i = 1,2 , . . . , n , k = 1 , 2 , . . . , ic ( i ) , gc ( &mu; , ins i k ) = 1 } | < dnum TaskDev i ;
其中,exe(x)表示任务x或者指令x的执行时长,begin(x)表示任务x或者指令x的开始执行时间,TaskDevi表示第i个测试任务执行所需要的测试设备类型,表示测试设备类型TaskDevi下的测试设备个数,表示指令在时刻μ时正在执行。
8.根据权利要求2或7所述的一种面向航天器自动化测试的并行测试任务两阶段调度方法,其特征在于,所述的步骤6具体包括如下步骤:
步骤6.1:确定NSGA-II算法的编码,设置NSGA-II算法的参数;
将周期内所有指令按照所属测试任务进行从小到大的编号,第i个测试任务Ti的第k个指令的编号为并定义一个编号到指令互相映射的函数f;编码定义为每个测试设备上执行的指令编号的矩阵Dispatchh×L,其中,h为所有测试设备类型下的测试设备总个数,L为编码代表的调度方式各测试设备上执行的指令的最大条数;
定义解码规则如下:
1)对于矩阵Dispatchh×L中第一列中的各指令,开始执行时间为0;
2)对于矩阵中第二列及以后的各指令,设如k=1,则指令的开始执行时间为第c台设备上一条执行指令的结束时间;如k>1,则指令的开始执行时间为第c台设备上一条指令的结束时间和测试任务Ti中指令的结束时间中较大的值;
设置的NSGA-II算法参数包括:种群大小N、遗传代数Rmax和变异概率;
步骤6.2:进化代数R=1,随机生成大小为N的初始种群X1,种群中每个个体通过如下方式生成:
(1)设l=1;
(2)随机选择集合UE中的一个指令再随机选择相应测试设备类型下的一个设备,设所选择的是第c台设备,令集合UE是各测试任务中当前还未执行的编号最小的指令集合,初始
(3)更新UE,把从UE中删除,将放入UE中;
(4)如Dispatch矩阵中第l列每一行都已经有元素,l=l+1,然后转(2)执行;如果UE已经为空,结束;
步骤6.3:对当前种群XR进行快速非支配排序生成非支配集Z,设将当前种群分为W个集合,Z={Z1,Z2,…,ZW},W为正整数,Zw表示非支配集Z中的第w个集合,w=1,2,…,W;
步骤6.4:生成大小为N的父代种群YR+1,具体是:将Z中集合按照等级高低依次加入YR+1中,对于同一个集合Zw中的个体,将拥挤度高的个体加入种群YR+1
步骤6.5:对当前种群XR进行交叉和变异操作,生成新的子代种群QR+1
交叉算子:首次,交换两个个体相同行号的元素;其次,对交换元素后的个体,将个体中与交换后的行中元素相同的元素删除;然后,对每个个体,生成UE集合,根据步骤6.2中生成个体的方法将指令随机放到测试设备上;最后,调整同一测试设备上的指令,使得同一测试任务的指令执行顺序正确;
变异算子:交换一个个体同一行的两个元素,并调整同一行上的指令,使得同一测试任务的指令执行顺序正确;
步骤6.6:将生成的父代种群YR+1与生成的子代种群QR+1合并形成大小为2N的新种群XR+1
步骤6.7:更新迭代次数,R=R+1,判断当前R是否大于规定的最大值Rmax,如果不是,转入步骤6.3,否则,执行步骤6.8;
步骤6.8:迭代结束,输出当前种群中的最优个体。
CN201410513604.6A 2014-09-29 2014-09-29 一种面向航天器自动化测试的并行测试任务两阶段调度方法 Expired - Fee Related CN104239213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410513604.6A CN104239213B (zh) 2014-09-29 2014-09-29 一种面向航天器自动化测试的并行测试任务两阶段调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410513604.6A CN104239213B (zh) 2014-09-29 2014-09-29 一种面向航天器自动化测试的并行测试任务两阶段调度方法

Publications (2)

Publication Number Publication Date
CN104239213A true CN104239213A (zh) 2014-12-24
CN104239213B CN104239213B (zh) 2017-04-12

Family

ID=52227329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410513604.6A Expired - Fee Related CN104239213B (zh) 2014-09-29 2014-09-29 一种面向航天器自动化测试的并行测试任务两阶段调度方法

Country Status (1)

Country Link
CN (1) CN104239213B (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679633A (zh) * 2015-02-15 2015-06-03 北京空间飞行器总体设计部 一种多航天器并行测试过程的效能评价方法
CN104899101A (zh) * 2015-06-10 2015-09-09 合肥工业大学 基于多目标差异演化算法的软件测试资源动态分配方法
CN104978269A (zh) * 2015-06-30 2015-10-14 四川九洲电器集团有限责任公司 一种自动化测试方法
CN105160417A (zh) * 2015-08-04 2015-12-16 大连大学 基于改进nsga-ii算法的航天器任务规划求解方法
CN105243021A (zh) * 2015-11-03 2016-01-13 电子科技大学 多任务测试性指标分配方法
CN107370612A (zh) * 2016-05-12 2017-11-21 中兴通讯股份有限公司 一种网络质量管理系统检测任务调度方法、装置
CN108363840A (zh) * 2018-01-23 2018-08-03 中国人民解放军战略支援部队航天工程大学 一种基于电磁力的集群航天器磁矩最优分配方法
CN108428335A (zh) * 2018-01-24 2018-08-21 中国人民解放军63920部队 基于指令计数变化为判据的遥控指令执行情况判断方法
CN108958274A (zh) * 2018-06-25 2018-12-07 南京理工大学 一种基于pso的刚柔液耦合系统姿态机动路径规划方法
CN108958275A (zh) * 2018-06-25 2018-12-07 南京理工大学 一种刚柔液耦合系统姿态控制器和机动路径联合优化方法
CN109491791A (zh) * 2018-11-09 2019-03-19 华东师范大学 基于申威众核处理器的nsga-ii的主从增强式运行方法及装置
CN109684067A (zh) * 2018-12-29 2019-04-26 中电科仪器仪表有限公司 一种任务调度规划自动生成和运行系统及方法
CN109947058A (zh) * 2019-02-15 2019-06-28 北京空间飞行器总体设计部 一种航天器多项自主管理功能状态控制方法
CN110954762A (zh) * 2019-11-06 2020-04-03 中国商用飞机有限责任公司 地面测试方法
CN111176753A (zh) * 2019-12-20 2020-05-19 贝壳技术有限公司 云资源优化配置方法、装置、电子设备及可读存储介质
CN111738510A (zh) * 2020-06-18 2020-10-02 北京航空航天大学 一种基于汇聚任务冲突关系图着色的制造服务调度方法
CN112511367A (zh) * 2020-07-31 2021-03-16 中国移动通信有限公司研究院 一种测试方法及设备
CN112506644A (zh) * 2020-11-02 2021-03-16 合肥工业大学 基于云边端混合计算模式系统的任务调度方法和系统
CN112527671A (zh) * 2020-12-18 2021-03-19 上海航天计算机技术研究所 一种基于事件流分析的多任务时序冲突检测方法
CN113282402A (zh) * 2021-07-22 2021-08-20 航天中认软件测评科技(北京)有限责任公司 一种面向复杂资源约束的测试任务调度方法
CN114691327A (zh) * 2022-03-23 2022-07-01 华南理工大学 面向两阶段任务调度的多目标群智能优化方法与系统
CN118394666A (zh) * 2024-07-01 2024-07-26 竞跃数字科技(山东)有限公司 基于低代码平台的智能业务流程自动化和优化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102646061A (zh) * 2012-02-27 2012-08-22 北京航空航天大学 一种基于遗传算法的卫星并行测试资源配置方法
CN104035816A (zh) * 2014-05-22 2014-09-10 南京信息工程大学 一种基于改进nsga-ii的云计算任务调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102646061A (zh) * 2012-02-27 2012-08-22 北京航空航天大学 一种基于遗传算法的卫星并行测试资源配置方法
CN104035816A (zh) * 2014-05-22 2014-09-10 南京信息工程大学 一种基于改进nsga-ii的云计算任务调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHONGWEN LI等: ""The study of spacecraft parallel testing"", 《TELECOMMUNICATION SYSTEMS》 *
李金金等: ""粒子群优化算法边界条件研究"", 《计算机工程》 *

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679633A (zh) * 2015-02-15 2015-06-03 北京空间飞行器总体设计部 一种多航天器并行测试过程的效能评价方法
CN104899101A (zh) * 2015-06-10 2015-09-09 合肥工业大学 基于多目标差异演化算法的软件测试资源动态分配方法
CN104899101B (zh) * 2015-06-10 2021-05-11 合肥工业大学 基于多目标差异演化算法的软件测试资源动态分配方法
CN104978269A (zh) * 2015-06-30 2015-10-14 四川九洲电器集团有限责任公司 一种自动化测试方法
CN105160417B (zh) * 2015-08-04 2019-05-14 大连大学 基于改进nsga-ii算法的航天器任务规划求解方法
CN105160417A (zh) * 2015-08-04 2015-12-16 大连大学 基于改进nsga-ii算法的航天器任务规划求解方法
CN105243021A (zh) * 2015-11-03 2016-01-13 电子科技大学 多任务测试性指标分配方法
CN105243021B (zh) * 2015-11-03 2017-10-31 电子科技大学 多任务测试性指标分配方法
CN107370612A (zh) * 2016-05-12 2017-11-21 中兴通讯股份有限公司 一种网络质量管理系统检测任务调度方法、装置
CN108363840A (zh) * 2018-01-23 2018-08-03 中国人民解放军战略支援部队航天工程大学 一种基于电磁力的集群航天器磁矩最优分配方法
CN108428335A (zh) * 2018-01-24 2018-08-21 中国人民解放军63920部队 基于指令计数变化为判据的遥控指令执行情况判断方法
CN108428335B (zh) * 2018-01-24 2020-05-22 中国人民解放军63920部队 基于指令计数变化为判据的遥控指令执行情况判断方法
CN108958275A (zh) * 2018-06-25 2018-12-07 南京理工大学 一种刚柔液耦合系统姿态控制器和机动路径联合优化方法
CN108958275B (zh) * 2018-06-25 2023-09-26 南京理工大学 一种刚柔液耦合系统姿态控制器和机动路径联合优化方法
CN108958274B (zh) * 2018-06-25 2021-06-22 南京理工大学 一种基于pso的刚柔液耦合系统姿态机动路径规划方法
CN108958274A (zh) * 2018-06-25 2018-12-07 南京理工大学 一种基于pso的刚柔液耦合系统姿态机动路径规划方法
CN109491791B (zh) * 2018-11-09 2021-11-19 华东师范大学 基于申威众核处理器的nsga-ii的主从增强式运行方法及装置
CN109491791A (zh) * 2018-11-09 2019-03-19 华东师范大学 基于申威众核处理器的nsga-ii的主从增强式运行方法及装置
CN109684067A (zh) * 2018-12-29 2019-04-26 中电科仪器仪表有限公司 一种任务调度规划自动生成和运行系统及方法
CN109684067B (zh) * 2018-12-29 2020-10-16 中电科仪器仪表有限公司 一种任务调度规划自动生成和运行系统及方法
CN109947058B (zh) * 2019-02-15 2020-08-18 北京空间飞行器总体设计部 一种航天器多项自主管理功能状态控制方法
CN109947058A (zh) * 2019-02-15 2019-06-28 北京空间飞行器总体设计部 一种航天器多项自主管理功能状态控制方法
CN110954762A (zh) * 2019-11-06 2020-04-03 中国商用飞机有限责任公司 地面测试方法
CN110954762B (zh) * 2019-11-06 2022-02-22 中国商用飞机有限责任公司 地面测试方法
CN111176753A (zh) * 2019-12-20 2020-05-19 贝壳技术有限公司 云资源优化配置方法、装置、电子设备及可读存储介质
CN111738510B (zh) * 2020-06-18 2021-07-13 北京航空航天大学 一种基于汇聚任务冲突关系图着色的制造服务调度方法
CN111738510A (zh) * 2020-06-18 2020-10-02 北京航空航天大学 一种基于汇聚任务冲突关系图着色的制造服务调度方法
CN112511367B (zh) * 2020-07-31 2022-11-15 中国移动通信有限公司研究院 一种测试方法及设备
CN112511367A (zh) * 2020-07-31 2021-03-16 中国移动通信有限公司研究院 一种测试方法及设备
CN112506644A (zh) * 2020-11-02 2021-03-16 合肥工业大学 基于云边端混合计算模式系统的任务调度方法和系统
CN112506644B (zh) * 2020-11-02 2022-09-30 合肥工业大学 基于云边端混合计算模式系统的任务调度方法和系统
CN112527671A (zh) * 2020-12-18 2021-03-19 上海航天计算机技术研究所 一种基于事件流分析的多任务时序冲突检测方法
CN112527671B (zh) * 2020-12-18 2023-04-21 上海航天计算机技术研究所 一种基于事件流分析的多任务时序冲突检测方法
CN113282402B (zh) * 2021-07-22 2021-11-05 航天中认软件测评科技(北京)有限责任公司 一种面向复杂资源约束的测试任务调度方法
CN113282402A (zh) * 2021-07-22 2021-08-20 航天中认软件测评科技(北京)有限责任公司 一种面向复杂资源约束的测试任务调度方法
CN114691327A (zh) * 2022-03-23 2022-07-01 华南理工大学 面向两阶段任务调度的多目标群智能优化方法与系统
CN114691327B (zh) * 2022-03-23 2024-08-02 华南理工大学 面向两阶段任务调度的多目标群智能优化方法与系统
CN118394666A (zh) * 2024-07-01 2024-07-26 竞跃数字科技(山东)有限公司 基于低代码平台的智能业务流程自动化和优化方法

Also Published As

Publication number Publication date
CN104239213B (zh) 2017-04-12

Similar Documents

Publication Publication Date Title
CN104239213A (zh) 一种面向航天器自动化测试的并行测试任务两阶段调度方法
CN103235743B (zh) 一种基于分解和最优解跟随策略的多目标测试任务调度方法
CN104035816B (zh) 一种基于改进nsga‑ii的云计算任务调度方法
Yu et al. Automated runtime-aware scheduling for multi-tenant dnn inference on gpu
CN104408589A (zh) 基于混合粒子群算法的agv优化调度方法
CN103116493B (zh) 一种应用于粗粒度可重构阵列的自动映射方法
CN104331749A (zh) 基于模拟退火粒子群的agv优化调度方法
CN110187988A (zh) 适用于虚函数和函数指针的静态函数调用图构建方法
Wang et al. A genetic-algorithm-based approach for task matching and scheduling in heterogeneous computing environments
CN112306658B (zh) 一种多能源系统数字孪生应用管理调度方法
CN106193734A (zh) 一种立体车库调度控制装置
CN105929690A (zh) 一种基于分解多目标进化算法的柔性车间鲁棒调度方法
CN109684190A (zh) 软件测试装置和方法
CN104699466A (zh) 一种面向vliw体系结构的多元启发式指令选择方法
CN110058882A (zh) 一种用于cnn加速的opu指令集定义方法
CN110222824B (zh) 智能算法模型自主生成及进化方法、系统、装置
CN109902936A (zh) 一种基于装备维修工序的维修人员调配方法
CN112668876A (zh) 一种无人机系统方案综合评估方法
Feljan et al. Task allocation optimization for multicore embedded systems
CN117575086B (zh) 基于风险预测的林业辖区生态管理方法及系统
CN110048886A (zh) 一种大数据分析任务的高效云配置选择算法
CN102222274A (zh) 基于调度编码的免疫克隆选择作业车间调度方法
CN102508963A (zh) 一种基于仿真的参数化武器作战效能分析系统及其分析方法
CN102508720B (zh) 一种提高前处理模块和后处理模块效率的方法及系统
CN117193988A (zh) 一种晶圆级架构ai加速芯片的任务调度方法及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170412

Termination date: 20200929

CF01 Termination of patent right due to non-payment of annual fee