CN102880667A - 一种基于关键路径和禁忌搜索的测试任务调度方法 - Google Patents

一种基于关键路径和禁忌搜索的测试任务调度方法 Download PDF

Info

Publication number
CN102880667A
CN102880667A CN2012103242304A CN201210324230A CN102880667A CN 102880667 A CN102880667 A CN 102880667A CN 2012103242304 A CN2012103242304 A CN 2012103242304A CN 201210324230 A CN201210324230 A CN 201210324230A CN 102880667 A CN102880667 A CN 102880667A
Authority
CN
China
Prior art keywords
test
test assignment
current
assignment
testing scheme
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
CN2012103242304A
Other languages
English (en)
Other versions
CN102880667B (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 CN201210324230.4A priority Critical patent/CN102880667B/zh
Publication of CN102880667A publication Critical patent/CN102880667A/zh
Application granted granted Critical
Publication of CN102880667B publication Critical patent/CN102880667B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于关键路径和禁忌搜索的测试任务调度方法,属于自动测试系统并行测试任务调度领域。本方法首先确定和分析测试任务,并初始化参数设置,然后采用优先权编码方式确定初始的测试任务序列,然后利用禁忌结合关键路径的方法寻找该测试任务序列下的最优测试方案选择集合,通过多次迭代,寻找更优的测试任务序列以及对应的测试方案选择集合。本发明方法为在应用禁忌搜索解决测试任务调度问题时提供了满足约束的初始任务序列,并精简了禁忌的邻域搜索范围,减少冗余的邻域搜索操作,最终提高测试任务调度方法的运行效率和寻优效率。

Description

一种基于关键路径和禁忌搜索的测试任务调度方法
技术领域
本发明属于自动测试系统并行测试任务调度领域,具体涉及一种基于关键路径和禁忌搜索的测试任务调度方法。
背景技术
自动测试技术是复杂系统和仪器的保障,现广泛应用于半导体、无线电、航空航天等领域。随着科技的飞速发展,测试需求不断变化,测试系统的维护费用不断增加,测试任务间常出现资源冲突、死锁等问题。因此为了降低维护费用,同时提高测试效率和系统兼容性,测试任务调度作为自动测试技术的核心,成为了研究的热点。
测试任务调度要求将不同的测试任务通过方案选择分配适当的资源,使得测试时间最短。它主要解决测试任务排序和测试方案选择这两个问题。首先,通过测试任务排序合理地安排测试任务执行的先后顺序。但是在为测试任务进行排序时,往往涉及到测试任务间的时序约束。例如电源自检要在其他测试任务开始前进行,才能保证为其他测试任务安全供电。所以测试任务排序应该满足测试任务间的时序约束。其次,测试方案选择用来为测试任务分配合适的资源。由于测试任务众多,而测试资源有限,所以需要合理地分配测试资源。而同一任务的不同方案对应着不同的测试资源,所以不同的方案选择对应着不同的测试资源的分配。
测试任务调度是一个复杂的难以优化的NP-Complete问题,无法通过枚举给出最优解。因为测试任务调度中可能出现的解的数目多,穷举需要耗费大量时间。但是测试任务调度可以利用智能搜索方法有效地降低计算时间,并且得到近似最优解或者最优解。例如遗传,模拟退火,禁忌和粒子群等方法均已在测试调度问题中得到广泛应用。但是这些方法在测试调度问题中往往有局限性。例如,遗传方法在解决测试调度问题时采用的是复杂的二维编码,那么这种编码方式需要对传统的遗传算子进行更改设计。粒子群方法通过采用随机键的编码方式,将测试调度问题的解空间变成连续性空间,但是无法确定在搜索过程中合理的参数设置。所以多种方式的融合成为了解决测试调度问题的趋势。
禁忌搜索可以通过自适应的记忆结构来引导局部搜索技术,通过集中和扩散搜索策略能够有效避免迂回搜索,但是其对初始解的选取有很强的依赖性。测试调度问题中出现的测试任务间的时序约束首先要求初始解是满足约束的。但是在传统的方式中多通过随机选择的方式生成初始解,无法保证初始解满足约束条件。其次,禁忌搜索中邻域的移动方法很多,传统的方式是修改解的任意一个元素的方式或者两两交换,将所有这些移动后的解作为邻域。但是它们应用到测试调度问题中会产生很多邻域解,数目巨大,而且往往无法指导邻域朝着最优解的方向搜索。
关键路径法(CPM)是一种网络分析技术,多用于时间和项目管理上。整个项目工期的长度是由该项目中的关键路径来决定的,因为关键路径具有最长的执行时间,而且关键路径上的任何活动的推迟将使整个项目推迟,所以向关键路径要时间成为了项目中有效的管理方式。目前关键路径已被应用到了车间调度,旅行商等问题上,但是它在测试任务调度问题尚无应用。
发明内容
本发明的目的是:为了克服禁忌搜索在解决测试任务调度问题时的不足,产生满足约束的初始任务序列,同时有效避免在邻域搜索时大量的冗余,从而进一步提高禁忌搜索在测试调度问题中的寻优概率。
本发明提出一种基于关键路径和禁忌搜索的测试任务调度方法,具体包括如下步骤:
步骤1:确定和分析测试任务,具体是:确定测试任务集T={t1,t2,…,ti,...,tN},ti为第i个测试任务,N为测试任务总数,测试任务ti对应的测试方案总数为wi;确定仪器资源集R={r1,r2,…,ri,...,rM},rj为第j个仪器,M为仪器总数;确定测试任务之间的时序约束关系,并用约束矩阵[TS]N×N表示,若测试任务tj优先于测试任务ti,[TS]N×N(j,i)=1,否则[TS]N×N(j,i)=0。
步骤2:初始化参数设置,所述的参数包括:任务序列最大变换次数Gmax、禁忌搜索最大迭代次数G′max、禁忌表长度L和当前迭代次数Gcurrent;当前迭代次数Gcurrent的初始值为1。
步骤3:判断当前迭代次数Gcurrent是否满足条件:Gcurrent=Gmax,若是,执行步骤8,否则,更新当前迭代次数Gcurrent=Gcurrent+1,执行步骤4。
步骤4:首先采用优先权编码生成初始的测试任务序列TP,然后随机选择各测试任务的测试方案,生成测试方案选择集合SC,并将生成的测试任务序列和测试方案选择集合作为全局最优解。
步骤5:确定当前测试任务序列TP的测试方案选择集合SC的测试完成时间f。
步骤6:更新当前测试任务序列TP的测试方案选择集合,并寻找当前测试任务序列TP下的局部最优解。
步骤7:首先,判断当前步骤6得到的局部最优解对应的测试完成时间是否比全局最优解对应的测试完成时间小,若是,则将全局最优解替换为当前步骤6得到的局部最优解,否则,不替换;然后,转步骤3执行。
步骤8:输出全局最优解对应的测试任务调度序列与测试方案选择集合,结束本方法。
本发明的优点和积极效果在于:
(1)本发明方法是分步求解测试任务调度问题的,将调度结果分两个部分,一部分是测试任务调度序列,另一部分是对应于测试任务调度序列的测试方案选择,这种分步解决的方式避免了采用单一算法处理高维编码时要进行的复杂的变换。
(2)本发明方法在初始化时,利用优先权编码生成满足约束的解,在强约束的情况下为禁忌提供唯一且可行的初始解,防止随机生成的测试任务序列不满足测试任务间的时序约束。
(3)本发明方法通过关键路径的应用进一步精简了禁忌的邻域搜索范围,将搜索重点集中在邻域中最优希望的区域,以缩小邻域和减少计算时间。
附图说明
图1是本发明的测试任务调度方法的整体流程图;
图2是本发明实施例一6个任务8个资源的测试任务间的时序约束关系图;
图3是本发明针对实施例一采用优先权编码得到初始测试任务序列的过程示意图;
图4是本发明实施例一6个任务8个资源的某个测试任务序列的调度甘特图;
图5是本发明实施例二20个任务8个资源的测试任务间的时序约束关系图;
图6是本发明实施例二20个任务8个资源的某个测试任务序列的调度甘特图。
具体实施方式
下面将结合附图和实施案例对本发明作进一步的详细说明。
本发明的一种基于关键路径和禁忌组合测试任务调度方法,流程如图1所示,包括以下7个步骤:
步骤1:确定和分析测试任务。
测试任务集T={t1,t2,…,ti,...,tN},ti为测试任务表中的第i个测试任务,N为测试任务总数;仪器资源集R={r1,r2,…,rj,...,rM},rj为仪器资源表的第j个仪器,M为仪器总数。测试任务ti(i=1,2,…,N)对应的测试方案总数为wi,其中测试方案si(1≤si≤wi)占用的仪器资源集为
Figure BDA00002096489200031
j=1,…,M,如果占用仪器rj,则λj=1,否则为0。
测试任务ti的测试方案si的测试用时为
Figure BDA00002096489200032
。测试任务ti结束执行的时间是Ei,它在资源
Figure BDA00002096489200033
上的完成时间为
Figure BDA00002096489200034
,一般有
Figure BDA00002096489200035
测试任务之间的时序约束关系用约束矩阵[TS]N×N表示,其中矩阵中的元素表示两个测试任务间的时序约束关系。若测试任务tj优先于测试任务ti,即ti的紧前约束是tj,也可以表达为tj的紧后约束是ti,有[TS]N×N(j,i)=1;否则[TS]N×N(j,i)=0。任一测试任务集T中所有的测试任务的排序为TP,对应的测试方案选择集合为SC。
本发明实施例一中通过6个任务8个资源的测试任务调度案例进行详细说明,如表1所示。
表1:6个任务8个资源的测试任务调度案例
Figure BDA00002096489200041
例如测试任务t1共有w1=3个方案,其中s1=2的方案选择中占用的资源集为R1,2={0r1,0r2,r3,0r4,r5,0r6,0r7,0r8},执行时间为T1,2=5。
任务间的约束关系如图2所示。每个圆圈中圈住的是测试任务,圆圈外面的数值是优先权。箭头指向紧后约束。测试任务t1和t4无紧前约束。t1的紧后约束为t2。t2的紧后约束是t3和t5。t3的紧后约束是t6。t4的紧后约束是t5。t5的紧后约束是t6
图2的网状约束对应的约束矩阵 TS = 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 .
步骤2:初始化参数设置。本发明基于关键路径和禁忌搜索的测试任务调度方法的参数包括:任务序列最大变换次数Gmax、禁忌搜索最大迭代次数G′max和禁忌表长度L。这些参数的设置可以根据测试调度案例的不同而不同。任务序列最大变换次数Gmax一般为150,禁忌搜索最大迭代次数G′max一般为测试任务数N,禁忌表长度L一般为
Figure BDA00002096489200043
即所有任务的方案总数之和的1/3取整。同时还设置当前迭代次数Gcurrent,当前迭代次数Gcurrent的初始值为1。按照禁忌表长度建立禁忌表,禁忌表初始为空。
步骤3:判断是否满足停止条件,即判断当前迭代次数Gcurrent是否满足Gcurrent=Gmax。如果满足则执行步骤8,否则,更新当前迭代次数Gcurrent=Gcurrent+1,继续执行步骤4。
步骤4:初始化。本步骤中给出初始的测试任务序列和测试方案选择集合,并将该测试任务序列和测试方案选择集合作为最初的全局最优解。
步骤4.1:优先权编码生成测试任务序列。针对测试任务集中的每个任务,赋予不同的权值。权值的范围是[1,N]上不重复的整数,权值越大,优先级别越高。优先权的改变会导致不同的拓扑排序。通过优先权编码得到初始的测试任务序列TP。在每次迭代过程中,可通过改变测试任务的权值的设置,来得到不同的测试任务序列。
优先权编码生成测试任务序列需重复下面四个步骤:
1)设循环计数K=1。
2)构造候选集合S1,从当前要执行的剩余测试任务中选取满足如下条件的测试任务:该测试任务对应在矩阵[TS]N×N中的列元素全为0,将选取的测试任务加入到候选集合S1中,即S1={ti|[TS]N×N(:,i)=0,i=1,...,N,ti∈T}。
3)如果候选集合S1不为空集:S1≠φ,那么选择候选集合S1中具有最高优先权的测试任务ti(ti∈S1)作为当前要执行的测试任务放入到TP中,同时将矩阵[TS]N×N中第i行中的元素全部设置为0。
4)K=K+1,判断K是否小于N,若是,转2)执行,若否,终止本过程。
上述6个任务8个资源的测试任务调度案例中,假设初始化时每个任务的优先权编码如表2所示。
表2:6个测试任务的优先权值
  测试任务   t1   t2   t3   t4   t5   t6
  优先权   3   6   2   5   4   1
测试任务t1,t2,t3,t4,t5,t6的优先权分别为3,6,2,5,4,1,那么根据优先权编码的规则,可以得到的初始测试任务排序TP=[t4,t1,t2,t5,t3,t6],得到该测试任务排序过程如图3所示。详细过程如下所示。测试任务t1和t4没有紧前约束,但是t4的优先权值为6,比t1的优先权值3大,所以第一个执行的测试任务是t4。然后剔除t4与t5之间的约束,如图3的b)所示。这时无紧前约束的测试任务集合中只有测试任务t1。那么t1是第二个执行的测试任务。然后剔除t1与t2之间的约束,如图3的c)所示。在剩下的测试任务中,只有t2无紧前约束,那么t2为第三个执行的测试任务。然后剔除t2与其他测试任务的约束,如图3的d)所示,t2与t3和t5之间的约束剔除了。t3和t5都没有了紧前约束,但是t5的优先权4比t3的优先权大,所以t5是第四个执行的测试任务。剔除t5与t6间的约束,如图3的e)所示,只剩下测试任务t3和t6。但是只有t3无紧前约束,所以t3是第五个要执行的测试任务。剔除t3后,如图3的f)所示,t6为最后一个执行的测试任务。
步骤4.2:随机生成方案选择。确定了TP序列后,按顺序逐个为TP序列中的每个任务选择方案。任务ti的方案总数为wi,任选其中的一个测试方案si,1≤si≤wi作为该任务要执行的方案,从而可以得到完成任务ti所需的资源集
Figure BDA00002096489200051
TP序列中N个任务依次进行该过程,最后可以得到TP序列对应的测试方案选择集合SC。
本发明实施例中随机生成测试任务序列TP=[t4,t1,t2,t5,t3,t6]的一个测试方案选择集合SC=[1,2,4,1,1,3]。
步骤5:确定当前测试任务序列TP采取测试方案选择集合SC的测试完成时间f。在确定测试完成时间f时,要考虑测试任务间的资源抢占和冲突的关系。本发明方法采用串并转换将串行的TP,SC转换成并行的调度过程,步骤如下:
步骤5.1:设置循环计数k=1。
步骤5.2:设对应的测试任务序列TP中的第k个任务用ttmp表示,那么对应的测试方案选择为stmp。寻找任务集合S2。任务集合S2中的测试任务是测试任务ttmp的紧前约束,任务集合S2={ti|[TS]N×N(i,tmp)=1,i=1,....N,i≠tmp}。
步骤5.3:确定测试任务ttmp的结束时间,具体是:从任务集合S2中测试任务的最大结束时间和最大的仪器资源占用时间中取大者作为测试任务ttmp的开始时间,即测试任务ttmp的执行开始时间为任务集合S2中测试任务的最大结束时间max{Ei,ti∈S2}和最大的资源占用时间
Figure BDA00002096489200061
中取大,该测试任务ttmp的结束时间等于所得到的测试任务ttmp的开始时间与执行该测试任务ttmp的测试用时的和。
步骤5.4:判断是否满足终止条件?即判断循环次数k是否小于N,若是,则k=k+1,转到步骤5.2执行,若否,执行步骤5.5。
步骤5.5:获得测试完成时间。即记录所有仪器资源上的结束时间,取最大值作为当前测试方案集合SC的测试完成时间f。
例如实施例一6个任务8个资源的测试案例中,测试任务序列TP=[t4,t1,t2,t5,t3,t6]的测试方案选择集合SC=[1,2,4,1,1,3]的调度甘特图如图4所示。图中横坐标表示目标函数值即调度时间,纵坐标表示仪器资源,每个矩形表示在对应仪器资源上执行的测试任务。测试任务t5既要考虑资源r7的释放时间,也要考虑它的前向任务t4的结束时间,在两者中取大,得到t5的开始时间为23。
步骤6:更新当前测试任务序列TP的测试方案选择集合。本发明方法中利用禁忌搜索结合关键路径的方法寻找方案选择的邻域解。
步骤6.1:初始化。清空禁忌表,令当前禁忌搜索迭代次数G′current=0,同时将步骤4得到的测试任务序列和测试方案选择集合作为种群和禁忌搜索初始的解,该初始的解就是当前解,并且将该解作为初始的局部最优解。
步骤6.2:判断是否满足终止条件?即判断当前禁忌搜索迭代次数G′current是否满足条件:G′current=G′max,如果满足则结束步骤6的执行,执行步骤7,否则G′current=G′current+1,继续步骤6.3。
步骤6.3:查找当前解对应的关键路径。即寻找当前解对应的测试任务序列TP和测试方案选择集合SC下的关键路径。关键路径上的测试任务具有最长的测试完成时间,并且决定了测试任务序列TP的最短的完成时间。关键路径上的测试任务序列以及各测试任务对应的测试方案选择的集合定义为CTP,SC,包含c个测试任务以及对应的测试方案选择。在寻找关键路径时,需要用到步骤4记录下来的当前测试任务序列TP中每个测试任务的完成时间Ei,f为当前解对应的测试任务序列TP的测试方案选择集合的测试完成时间。关键路径上的每个测试任务都满足如下条件:该测试任务的结束时间是关键路径上该测试任务后一个测试任务的开始执行时间。寻找CTP,SC中的测试任务序列的方法如下:首先找到满足Ei=f情况下对应的测试任务ti放入到CTP,SC。然后,找到寻找满足
Figure BDA00002096489200071
的测试任务tj放入到CTP,SC。依次类推,直到找到测试任务tk,使得测试任务tk的完成时间
Figure BDA00002096489200072
Figure BDA00002096489200073
为执行测试任务tk的测试方案sk的测试用时。当多个任务具有相同的测试调度结束时间时即当满足条件
Figure BDA00002096489200074
的任务不止一个时,考虑测试任务间的时序约束关系,优先选取与测试任务Ei的时序约束关系[TS]N×N(j,i)=1的测试任务Ej,使得所选的关键路径上的测试任务即满足时间上的连续关系也满足测试任务间的约束关系。
本发明采用实施例二20个任务8个资源的测试任务的调度甘特图来进行关键路径的说明。表3是20个任务8个资源的测试任务调度案例的方案和资源的分配情况。
表3:20个任务8个资源的测试任务调度案例
Figure BDA00002096489200075
Figure BDA00002096489200081
图5是表3中的20个测试任务间的时序约束关系。图6是20个任务8个资源的测试案例中一个测试任务序列TP=[14,5,18,8,16,10,20,11,19,15,2,9,1,6,7,3,4,12,17,13],对应的测试方案选择集合SC=[1,1,1,2,3,2,1,2,4,1,2,1,2,1,1,1,2,1,2,1]的调度甘特图。测试任务t1到测试任务t20的完成时间分别为25,14,50,70,30,32,34,4,25,10,12,45,74,7,20,6,42,45,18,11。所有测试任务的完成时间中,最大完成时间是74,对应的是测试任务t13的完成时间。那么测试任务t13是关键路径上的第一个测试任务。然后关键路径上的第二个测试任务的结束时间可以通过74-T13=74-4=70求得。那么通过和所有测试任务的完成时间比对,只有t4的完成时间是70,所以关键路径上的第二个测试任务是t4,测试任务t13紧接着在测试任务t4执行完毕后开始执行。那么按照这种方法依次类推,关键路径上的下一个测试任务是t3。那么之后要寻找测试完成时间是45的测试任务。t12和t18的测试结束时间均为45,但是测试任务t18与t3之间存在直接的约束关系,所以测试任务t18在关键路径上,而非测试任务t12。直到关键路径上的最后一个测试任务t16完成时间等于该测试任务的结束时间。
最后该测试任务序列TP=[14,5,18,8,16,10,20,11,19,15,2,9,1,6,7,3,4,12,17,13],对应的测试方案选择集合SC=[1,1,1,2,3,2,1,2,4,1,2,1,2,1,1,1,2,1,2,1]的关键路径是t13,t4,t3,t18,t5,t14
步骤6.4:关键路径下的邻域搜索。即根据关键路径确定当前解的测试任务序列TP和测试方案选择SC的邻域解。方法是:按顺序依次针对关键路径的集合CTP,SC中的每个测试任务ti,ti∈CTP,SC,变换该测试任务对应的测试方案号,新的方案号的选择为[1,wi],不包含si,测试任务序列TP中的其他任务的方案号保持不变。设关键路径集合CTP,SC中包含Nc个测试任务,那么最后得到的邻域解的数目为关键路径集合CTP,SC中所包含的Nc个测试任务对应的测试方案总数之和与测试任务个数Nc之差。该测试任务序列TP=[14,5,18,8,16,10,20,11,19,15,2,9,1,6,7,3,4,12,17,13],对应的测试方案选择集合SC=[1,1,1,2,3,2,1,2,4,1,2,1,2,1,1,1,2,1,2,1]的领域解是对t13,t4,t3,t18,t5,t14变换对应的测试方案选择,那么总共有w13+w4+w18+w5+w16-6个邻域解。
步骤6.5:确定每一个领域解对应的测试方案选择集合的测试完成时间。确定测试完成时间的方法同步骤5中的方法。
例如,测试任务序列TP=[14,5,18,8,16,10,20,11,19,15,2,9,1,6,7,3,4,12,17,13],对应的测试方案选择集合SC=[1,1,1,2,3,2,1,2,4,1,2,1,2,1,1,1,2,1,2,1],该测试方案选择集合的一个邻域解是测试任务序列TP的方案选择SC1=[2,1,1,2,3,2,1,2,4,1,2,1,2,1,1,1,2,1,2,1],该邻域解是变换了测试任务t13的方案得到的,将测试任务t13的测试方案由1变成2,针对变换后的测试方案选择,执行步骤5.1~步骤5.5得到最终的测试完成时间。
步骤6.6:是否找到改进的测试方案选择集合?即在当前测试任务序列TP和测试方案选择集合SC的领域解中,选择出测试完成时间最小邻域解作为最优领域解,并判断最优领域解的测试完成时间是否比局部最优解的测试完成时间还小,如果是,则转到步骤6.8执行,如果否,执行步骤6.7。
步骤6.7:查找邻域解中不属于禁忌表的最优领域解,然后将该最优领域解作为当前解,然后转步骤6.9执行。禁忌表中存放的是测试方案选择发生改变的测试任务,以及交换的两个测试方案,它们作为一个禁忌对象放入到禁忌表中。只有禁忌对象中的每一项内容,即测试方案选择发生改变的测试任务,以及交换的两个测试方案选择都相同时,才仍认为是相同的禁忌对象,属于禁忌表。
步骤6.8:更新局部最优解。即利用最优领域解更新局部最优解,并将该最优领域解作为当前解。
步骤6.9:更新禁忌表,将当前解对应的测试方案选择发生改变的测试任务,以及交换的两个测试方案选择作为一个禁忌项存入到禁忌表中;然后转步骤6.2执行。
例如上述测试任务序列TP=[14,5,18,8,16,10,20,11,19,15,2,9,1,6,7,3,4,12,17,13]对应的测试方案选择集合SC1=[1,1,1,2,3,2,1,2,4,1,2,1,2,1,1,1,2,1,2,2]时的测试完成时间小于测试方案选择集合SC=[1,1,1,2,3,2,1,2,4,1,2,1,2,1,1,1,2,1,2,1]时,那么将测试任务t13,以及对应的原始测试方案1和变化后的测试方案2,一同存入到禁忌表中,作为禁忌表中的一个禁忌对象。如果当前禁忌表的长度超过了L,那么剔除最先放入禁忌表中的禁忌对象。
步骤7:更新全局历史最优解。判断禁忌结束后得到的禁忌局部最优解对应的测试任务序列TP和测试方案选择集合SC的测试完成时间是否比全局最优解对应的测试任务序列TP和测试方案选择集合SC的测试完成时间小。如果是,则将全局最优解替换为当前步骤6得到的局部最优解,如果不是,则不替换。
然后转步骤3执行。步骤8:结果输出,结束本方法。输出全局最优解对应的测试任务调度序列TP与测试方案选择集合SC,给出该最优结果的调度甘特图。

Claims (6)

1.一种基于关键路径和禁忌搜索的测试任务调度方法,其特征在于,具体该方法包括如下步骤:
步骤1:确定和分析测试任务,具体是:确定测试任务集T={t1,t2,…,ti,...,tN},ti为第i个测试任务,N为测试任务总数,测试任务ti对应的测试方案总数为wi;确定仪器资源集R={r1,r2,…,rj,...,rM},rj为第j个仪器,M为仪器总数;确定测试任务之间的时序约束关系,并用约束矩阵[TS]N×N表示,若测试任务tj优先于测试任务ti,[TS]N×N(j,i)=1,否则[TS]N×N(j,i)=0;
步骤2:初始化参数设置,所述的参数包括:任务序列最大变换次数Gmax、禁忌搜索最大迭代次数G′max、禁忌表长度L和当前迭代次数Gcurrent;当前迭代次数Gcurrent的初始值为1;
步骤3:判断当前迭代次数Gcurrent是否满足条件:Gcurrent=Gmax,若是,执行步骤8,若否,更新当前迭代次数Gcurrent=Gcurrent+1,执行步骤4;
步骤4:首先采用优先权编码生成初始的测试任务序列TP,然后随机选择各测试任务的测试方案,生成测试方案选择集合SC,并将生成的测试任务序列和测试方案选择集合作为全局最优解;
步骤5:确定当前测试任务序列TP的测试方案选择集合SC的测试完成时间f;
步骤6:更新当前测试任务序列TP的测试方案选择集合,并寻找当前测试任务序列TP下的局部最优解;
步骤7:首先,判断当前步骤6得到的局部最优解对应的测试完成时间是否比全局最优解对应的测试完成时间小,若是,则将全局最优解替换为当前步骤6得到的局部最优解,否则,不替换;然后,转步骤3执行;
步骤8:输出全局最优解对应的测试任务调度序列与测试方案选择集合,结束本方法。
2.根据权利要求1所述的测试任务调度方法,其特征在于,所述的步骤2中的参数具体设置为:任务序列最大变换次数Gmax设置为150,禁忌搜索最大迭代次数G′max设置为测试任务总数N,禁忌表长度L设置为
3.根据权利要求1所述的测试任务调度方法,其特征在于,步骤4中所述的采用优先权编码生成初始的测试任务序列,具体是:首先为测试任务集中的各测试任务赋予权值,权值的选取范围是[1,N]上不重复的整数,然后进行如下步骤:
1)设循环计数K=1;
2)构造候选集合S1,从当前要执行的剩余测试任务中选取满足如下条件的测试任务:该测试任务对应在矩阵[TS]N×N中的列元素全为0,将选取的测试任务加入到候选集合S1中;
3)如果候选集合S1不为空集,则选择候选集合S1中具有最高优先权的测试任务ti放入到TP中,同时将矩阵[TS]N×N中第i行中的元素全部置0;
4)K=K+1,判断K是否小于N,若是,转2)执行,若否,终止本次测试任务序列的生成。
4.根据权利要求1所述的测试任务调度方法,其特征在于,所述的步骤5具体包括如下步骤:
步骤5.1:设置循环计数k=1;
步骤5.2:设对应的测试任务序列TP中第k个测试任务设为ttmp,用stmp表示测试任务ttmp的测试方案选择,寻找任务集合S2,任务集合S2中的测试任务为测试任务ttmp的紧前约束;
步骤5.3:确定测试任务ttmp的结束时间,具体是:从任务集合S2中测试任务的最大结束时间和最大的仪器资源占用时间中取大者,作为测试任务ttmp的开始时间,测试任务ttmp的结束时间等于测试任务ttmp的开始时间与执行测试任务ttmp的测试用时的和;
步骤5.4:判断循环计数k是否小于N,若是,k=k+1,转到步骤5.2执行,若否,执行步骤5.5;
步骤5.5:记录所有仪器资源上的结束时间,取最大值作为当前测试方案选择集合SC的测试完成时间f。
5.根据权利要求1所述的测试任务调度方法,其特征在于,所述的步骤6具体包括如下步骤:
步骤6.1:初始化,包括如下操作:清空禁忌表,设置当前禁忌搜索迭代次数G′current=0,同时将最优解作为种群和禁忌搜索的初始的解,并且将该解作为初始的局部最优解;
步骤6.2:判断当前禁忌搜索迭代次数G′current是否满足条件:G′current=G′max,若是,执行步骤7,若否,执行步骤6.3;
步骤6.3:查找当前解对应的关键路径,关键路径用集合CTP,SC表示,集合CTP,SC中包含一个测试任务序列以及各测试任务对应的测试方案选择;对于关键路径上的测试任务序列中的各测试任务,都满足如下条件:该测试任务的结束时间是关键路径上该测试任务后一个测试任务的开始执行时间;
步骤6.4:根据关键路径确定当前解对应的测试任务序列和测试方案选择集合的邻域解,通过如下方法确定:按顺序依次对集合CTP,SC中的每个测试任务ti,ti∈CTP,SC,变换它对应的测试方案选择,不包含当前解中该测试任务的测试方案选择,测试任务序列中的其他测试任务的测试方案选择不变;设集合CTP,SC中包含Nc个测试任务,则得到的邻域解的数目为:集合CTP,SC中Nc个测试任务对应的测试方案总数之和与测试任务个数Nc之差;
步骤6.5:确定每一个领域解对应的测试方案选择集合的测试完成时间;
步骤6.6:选择出测试完成时间最小的邻域解作为最优领域解,并判断最优领域解的测试完成时间是否比局部最优解的测试完成时间小,如果是,执行步骤6.8,如果否,执行步骤6.7;
步骤6.7:查找邻域解中不属于禁忌表的最优领域解,并将该最优领域解作为当前解,然后执行步骤6.9;
步骤6.8:用最优领域解更新局部最优解,并将该最优领域解作为当前解;
步骤6.9:更新禁忌表,将当前解对应的测试方案选择发生改变的测试任务、以及交换的两个测试方案选择作为一个禁忌项存入到禁忌表中,如果当前禁忌表的长度超过L,则剔除最先放入禁忌表中的禁忌对象;然后转步骤6.2执行。
6.根据权利要求5所述的测试任务调度方法,其特征在于,所述的步骤6.3中集合CTP,SC中的测试任务通过如下方法获得:设当前解对应的测试任务序列TP中第i个测试任务为ti,测试任务ti对应的测试方案选择为si,测试任务ti的完成时间为Ei,执行测试方案si的测试用时为
Figure FDA00002096489100031
首先在测试任务序列TP中找到Ei=f的测试任务放入集合CTP,SC,然后,找到测试任务的完成时间满足
Figure FDA00002096489100032
的测试任务tj放入到CTP,SC,依次类推,直到找到测试任务tk,测试任务tk的完成时
Figure FDA00002096489100033
当找到两个以上的测试任务满足条件
Figure FDA00002096489100034
时,优先选取与测试任务Ei的时序约束关系[TS]N×N(j,i)=1的测试任务Ej
CN201210324230.4A 2012-09-04 2012-09-04 一种基于关键路径和禁忌搜索的测试任务调度方法 Expired - Fee Related CN102880667B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210324230.4A CN102880667B (zh) 2012-09-04 2012-09-04 一种基于关键路径和禁忌搜索的测试任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210324230.4A CN102880667B (zh) 2012-09-04 2012-09-04 一种基于关键路径和禁忌搜索的测试任务调度方法

Publications (2)

Publication Number Publication Date
CN102880667A true CN102880667A (zh) 2013-01-16
CN102880667B CN102880667B (zh) 2015-05-13

Family

ID=47481993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210324230.4A Expired - Fee Related CN102880667B (zh) 2012-09-04 2012-09-04 一种基于关键路径和禁忌搜索的测试任务调度方法

Country Status (1)

Country Link
CN (1) CN102880667B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226611A (zh) * 2013-05-07 2013-07-31 南京理工大学 一种基于禁忌搜索的组合主体服务选择方法
CN103235743A (zh) * 2013-04-07 2013-08-07 北京航空航天大学 一种基于分解和最优解跟随策略的多目标测试任务调度方法
CN105468692A (zh) * 2015-11-17 2016-04-06 盛趣信息技术(上海)有限公司 文件系统结构及其打包方法和读取方法
CN103617472B (zh) * 2013-07-09 2016-10-26 成都希盟泰克科技发展有限公司 多项目多任务管理中的资源平衡自适应调度方法
CN106611377A (zh) * 2015-11-27 2017-05-03 四川用联信息技术有限公司 针对作业车间调度的结合关键路径的混合邻域搜索算法
CN106022463B (zh) * 2016-05-13 2018-11-13 安徽教育网络出版有限公司 基于改进粒子群算法的个性化学习路径优化方法
CN111652412A (zh) * 2020-05-20 2020-09-11 华中科技大学 一种应用于置换流水车间的邻域搜索调度方法及装置
CN112883496A (zh) * 2021-03-18 2021-06-01 中国人民解放军国防科技大学 基于禁忌搜索的舰队系统可靠性动态优化方法
CN115086565A (zh) * 2022-08-19 2022-09-20 北京电科智芯科技有限公司 实验室设备影像数据的巡采方法、存储介质和巡采装置
CN117707745A (zh) * 2024-02-05 2024-03-15 国网湖北省电力有限公司信息通信公司 一种基于自适应禁忌搜索算法的计量任务同步调度方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976221A (zh) * 2010-10-14 2011-02-16 北京航空航天大学 一种基于粒子群禁忌组合的并行测试任务调度方法及平台
CN101984412A (zh) * 2010-10-13 2011-03-09 北京航空航天大学 一种基于分组和禁忌搜索的并行测试任务调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984412A (zh) * 2010-10-13 2011-03-09 北京航空航天大学 一种基于分组和禁忌搜索的并行测试任务调度方法
CN101976221A (zh) * 2010-10-14 2011-02-16 北京航空航天大学 一种基于粒子群禁忌组合的并行测试任务调度方法及平台

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
何正文,贾涛,徐渝: "求解资源约束项目调度问题的启发式算法综述", 《运筹与管理》 *
李霄峰,史金飞,阎威武: "混合流水车间调度的变邻域禁忌搜索算法", 《计算机工程》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103235743A (zh) * 2013-04-07 2013-08-07 北京航空航天大学 一种基于分解和最优解跟随策略的多目标测试任务调度方法
CN103235743B (zh) * 2013-04-07 2016-03-02 北京航空航天大学 一种基于分解和最优解跟随策略的多目标测试任务调度方法
CN103226611A (zh) * 2013-05-07 2013-07-31 南京理工大学 一种基于禁忌搜索的组合主体服务选择方法
CN103226611B (zh) * 2013-05-07 2016-01-20 南京理工大学 一种基于禁忌搜索的组合主体服务选择方法
CN103617472B (zh) * 2013-07-09 2016-10-26 成都希盟泰克科技发展有限公司 多项目多任务管理中的资源平衡自适应调度方法
CN105468692A (zh) * 2015-11-17 2016-04-06 盛趣信息技术(上海)有限公司 文件系统结构及其打包方法和读取方法
CN106611377A (zh) * 2015-11-27 2017-05-03 四川用联信息技术有限公司 针对作业车间调度的结合关键路径的混合邻域搜索算法
CN106022463B (zh) * 2016-05-13 2018-11-13 安徽教育网络出版有限公司 基于改进粒子群算法的个性化学习路径优化方法
CN111652412A (zh) * 2020-05-20 2020-09-11 华中科技大学 一种应用于置换流水车间的邻域搜索调度方法及装置
CN111652412B (zh) * 2020-05-20 2022-07-05 华中科技大学 一种应用于置换流水车间的邻域搜索调度方法及装置
CN112883496A (zh) * 2021-03-18 2021-06-01 中国人民解放军国防科技大学 基于禁忌搜索的舰队系统可靠性动态优化方法
CN112883496B (zh) * 2021-03-18 2022-05-24 中国人民解放军国防科技大学 基于禁忌搜索的舰队系统可靠性动态优化方法
CN115086565A (zh) * 2022-08-19 2022-09-20 北京电科智芯科技有限公司 实验室设备影像数据的巡采方法、存储介质和巡采装置
CN117707745A (zh) * 2024-02-05 2024-03-15 国网湖北省电力有限公司信息通信公司 一种基于自适应禁忌搜索算法的计量任务同步调度方法
CN117707745B (zh) * 2024-02-05 2024-04-30 国网湖北省电力有限公司信息通信公司 一种基于自适应禁忌搜索算法的计量任务同步调度方法

Also Published As

Publication number Publication date
CN102880667B (zh) 2015-05-13

Similar Documents

Publication Publication Date Title
CN102880667A (zh) 一种基于关键路径和禁忌搜索的测试任务调度方法
Laborie et al. Self-adapting large neighborhood search: Application to single-mode scheduling problems
CN104636204B (zh) 一种任务调度方法与装置
CN102855153B (zh) 面向片式多核处理器的流编译优化方法
CN106200575A (zh) 一种基于Petri网的自动制造系统的稳健性控制方法
CN103116493B (zh) 一种应用于粗粒度可重构阵列的自动映射方法
CN103107941A (zh) 光缆资源自动调度装置及方法
Yin et al. DFGNet: Mapping dataflow graph onto CGRA by a deep learning approach
CN105530707A (zh) 一种异构融合场景中基于混合优化的资源分配方法
CN111275186A (zh) 一种基于分组分层机制的可微结构搜索方法
CN101650805B (zh) 用于路径规划的搜索方法
CN111026534B (zh) 云计算环境下基于多种群遗传算法的工作流执行优化方法
CN102917440B (zh) 基于并行免疫遗传算法的多模终端选择目标网络的方法
CN117636004A (zh) 基于通信需求和网络资源匹配的分布式训练任务分配方法
Larbi et al. Modeling the scheduling problem of identical parallel machines with load balancing by time petri nets
Deniziak et al. Hardware/software co-synthesis of distributed embedded systems using genetic programming
Yusof et al. Constraint-chromosome genetic algorithm for flexible manufacturing system machine-loading problem
WO2017213537A1 (en) Parallel optimization of homogeneous systems
Fan et al. A survey on task scheduling method in heterogeneous computing system
CN110968428B (zh) 云工作流虚拟机配置和任务调度协同优化方法
CN115208954A (zh) 用于分布式数据处理的并行策略预置系统及其方法
CN114980216A (zh) 基于移动边缘计算的依赖型任务卸载系统及方法
JPWO2013058396A1 (ja) タスク配置装置及びタスク配置方法
Yuan et al. A memetic algorithm for the multi-objective flexible job shop scheduling problem
Liu et al. An effective task offloading method for separable complex mobile terminal tasks

Legal Events

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

Granted publication date: 20150513

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