CN115617690A - 基于改进自适应遗传算法的并行测试任务调度方法 - Google Patents
基于改进自适应遗传算法的并行测试任务调度方法 Download PDFInfo
- Publication number
- CN115617690A CN115617690A CN202211360824.0A CN202211360824A CN115617690A CN 115617690 A CN115617690 A CN 115617690A CN 202211360824 A CN202211360824 A CN 202211360824A CN 115617690 A CN115617690 A CN 115617690A
- Authority
- CN
- China
- Prior art keywords
- test
- task
- population
- test task
- individual
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Factory Administration (AREA)
Abstract
本发明公开了一种基于改进自适应遗传算法的并行测试任务调度方法,获取电子系统待测任务的相关数据,采用实数编码的方式对测试任务进行编码,编码时受任务约束限制,将测试任务的编码序列作为遗传算法的个体执行遗传算法,在遗传算法迭代过程中,基于种群相异度的变化计算个体的交叉概率与变异概率,迭代完成后选取最优个体得到最终的并行测试任务调度方案。本发明通过种群相异度对遗传算法的交叉与变异概率进行自适应取值,解决了遗传算法容易陷入局部最优的问题,提高遗传算法收敛速度以及搜索最优解的成功率,使其在解决并行测试任务调度问题时可以快速、准确地求出最优并行测试任务调度方案。
Description
技术领域
本发明属于电子系统测试技术领域,更为具体地讲,涉及一种基于改进自适应遗传算法的并行测试任务调度方法。
背景技术
随着工业设备、航天设备等高精尖设备的复杂度不断提高,对于复杂系统的自动测试性能提出了新的挑战。特别是在航空航天领域当中,需要测试的参数庞杂且对准确性与实时行有较高要求。并行测试通过调用相应资源同时对多个任务进行测试改善自动测试系统测试效率低、资源利用率低等问题。并行测试需要考虑资源竞争、系统死锁与饿死等问题,其任务调度方案的确定是一个复杂的、优化难度大的非确定性多项式(non-deterministic polynomial,NP)完全问题。
并行测试任务调度问题研究的目标是确定最优调度方案,如测试时间最短,执行价值最大、负载均衡等。目前,主要有两种研究方向:一是只使用智能算法,通过智能算法良好的全局优化性能求解调度方案,比如粒子群算法、遗传算法、蚁群算法、人工蜂群算法、模拟退火算法等;二是使用Petri网与智能算法相结合,首先利用Petri网模型强大的建模能力对调度过程进行建模,然后使用智能算法求解调度方案。
遗传算法具有优秀的全局搜索能力,强鲁棒性,设计简单等特点,其还具有并行性,天然适用于解决并行测试任务调度这类具有并行性的最优化问题。但是,传统遗传算法采用固定的交叉与变异概率,当交叉与变异概率较小时会导致种群的进化速度较低,增加迭代次数,降低算法的收敛速度,影响任务调度的实时性;当交叉与变异概率较大时会导致种群的进化速度过快,一些优势个体的基因会在种群中迅速扩散,种群多样性丧失,容易出现陷入局部最优解的情况,导致得到的调度方案不是最优调度方案,达不到优化的目的。
针对遗传算法的改进,Srinivas等首次提出了自适应遗传算法(adaptivegenetic algorithm,AGA),该算法根据个体适应度值调节交叉与变异概率,在一定程度上解决了遗传算法陷入局部最优解的问题,但是该算法会使适应度值较大的优势个体的交叉与变异概率接近或者等于零,导致优势个体的特性不被遗传,陷入局部最优解。任子武等提出了一种改进的自适应遗传算法(improved adaptive genetic algorithm,IAGA),保证所有个体都有一个最低的交叉与变异概率,但是在算法迭代后期个体的适应度值与平均适应度值相近且这些个体数量较大时,会导致大部分个体的交叉与变异概率较低,降低了种群的进化速度。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于改进自适应遗传算法的并行测试任务调度方法,通过种群相异度对遗传算法的交叉与变异概率进行自适应取值,解决了遗传算法容易陷入局部最优的问题,提高遗传算法收敛速度以及搜索最优解的成功率,使其在解决并行测试任务调度问题时可以快速、准确地求出最优并行测试任务调度方案。
为了实现上述发明目的,本发明基于改进自适应遗传算法的并行测试任务调度方法包括以下步骤:
S1:对于待进行并行测试的电子系统,根据实际情况针对其包含的子系统设计测试任务,获取其并行测试相关数据,包括:
测试任务集T={t1,t2,···,tM},其中tm表示第m个测试任务,m=1,2,…,M,M表示测试任务数量;
测试时间集τ={τ1,τ2,···,τM},其中τm表示完成第m个测试任务所需时间;
测试资源集R={r1,r2,···,rN},其中rn表示对测试任务集T进行测试所需要的第n种资源,n=1,2,…,N,N表示测试所需资源种类数量;
任务资源矩阵TR,大小为M×N,用于表示资源被占用的情况,若TR(m,n)=1则测试任务tm在测试时需要占用资源rn,若TR(m,n)=0则测试任务tm在测试时不占用资源rn;
任务约束矩阵TS,大小为M×M,用于表示测试任务执行的先后顺序,若TS(m,m′)=1则测试任务tm需要在测试任务tm′之前执行,若TS(m,m′)=0则测试任务tm和测试任务tm′的先后没有限制,m′=1,2,…,M&m′≠m;
S2:采用实数编码的方式对测试任务进行编码,在编码过程中如果任务约束矩阵TS(m,m′)=1时,表示测试任务tm和测试任务tm′的执行有先后顺序,此时测试任务tm和测试任务tm′的编码相同,否则测试任务tm和测试任务tm′的编码不同;
S3:将测试任务的编码序列作为遗传算法的个体,对测试任务的编码进行K次随机排序生成K个编码序列,构成遗传算法的初始种群Q,记第i个个体为Xi={xi,1,xi,2,···,xi,M},xi,m表示个体Xi中第m个进行的测试任务编码,i=1,2,…,K;
S4:计算初始种群的相异度D0,种群相异度计算的具体方法如下:
对于当前种群,首先计算任意两个个体之间的相异程度di,j:
其中,i=1,2,…,K,j=1,2,…,K,且i≠j,xi,m、xj,m分别为当前种群中个体Xi、Xj中第m个进行的测试任务编码;
然后采用如下公式计算当前种群整体的相异度D:
S5:计算当前种群Q中各个个体的适应度,具体方法为:
根据个体中测试任务编码的顺序、测试时间集τ、任务资源矩阵TR和任务约束矩阵TS生成并行测试任务调度方案,获取该调度方案完成测试所需时间TIME,然后采用如下公式计算个体的适应度f:
适应度越大,个体越优;
S6:判断是否满足终止条件,如果是,则进入步骤S11,否则进入步骤S7;
S7:从当前种群Q中选择优势个体构成新种群Q1;
S8:对新种群Q1中的个体采用交叉操作得到子代种群Q2,其中各个个体的交叉概率采用如下方法计算:
采用步骤S4中的方法计算新种群Q1的相异度D1,采用步骤S5中的方法计算新种群Q1中各个个体的适应度,然后采用如下公式计算个体的交叉概率:
其中,pc表示交叉概率,pcmax为预设的最大交叉概率,pcmin为预设的最小交叉概率,f′为执行交叉操作的两个父代个体的适应度中的较大值,fmax为新种群Q1的最大适应度值,favg为新种群Q1的平均适应度值,γ为预设的极小值;
S9:对子代种群Q2中的个体采用变异操作得到子代种群Q3,其中各个个体的变异概率采用如下方法计算:
采用步骤S4中的方法计算子代种群Q2的相异度D2,采用步骤S5中的方法计算子代种群Q2中各个个体的适应度,然后采用如下公式计算子代种群Q2中各个个体的变异概率:
其中,pm为变异概率,pmmax为预设的最大变异概率,pmmin为预设的最小变异概率,f为变异个体的适应度值,fm′ax为子代种群Q2的最大适应度值,fa′vg为子代种群Q2的平均适应度值;
S10:令子代种群Q3为种群Q,返回步骤S5;
S11:选择当前种群中适应度最大的个体,根据该个体中测试任务编码的顺序、测试时间集τ、任务资源矩阵TR和任务约束矩阵TS生成并行测试任务调度方案。
本发明基于改进自适应遗传算法的并行测试任务调度方法,获取电子系统待测任务的相关数据,采用实数编码的方式对测试任务进行编码,编码时受任务约束限制,将测试任务的编码序列作为遗传算法的个体执行遗传算法,在遗传算法迭代过程中,基于种群相异度的变化计算个体的交叉概率与变异概率,迭代完成后选取最优个体得到最终的并行测试任务调度方案。
本发明将遗传算法的交叉与变异概率与种群的多样性关联,当种群的多样性较大时,此时降低交叉与变异概率,减小种群进化速度,提高搜索精度;当种群的多样性较小时,此时增大交叉与变异概率,提高种群进化速度,避免陷入局部最优。上述改进使得在整个迭代过程中,交叉与变异概率都有合适的取值,保证种群的多样性,减小陷入局部最优解的可能性,从而更加快速准确地得到并行测试任务调度方案,提高测试效率。
附图说明
图1是本发明基于改进自适应遗传算法的并行测试任务调度方法的具体实施方式流程图;
图2是本实施例个体对应并行测试任务调度方案的甘特图;
图3是本实施例中个体交叉的示例图;
图4是本实施例中个体变异的示例图;
图5是本实施例中测试任务序列得到的并行测试甘特图;
图6是本发明和2种对比方法的种群相异度随迭代次数变化的对比图;
图7是本发明和2种对比方法的最大适应度值随迭代次数变化的对比图;
图8是本发明和2种对比方法得到最优解的概率随迭代次数变化的对比图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是本发明基于改进自适应遗传算法的并行测试任务调度方法的具体实施方式流程图。如图1所示,本发明基于改进自适应遗传算法的并行测试任务调度方法的具体步骤包括:
S101:获取并行测试相关数据:
对于待进行并行测试的电子系统,根据实际情况针对其包含的子系统设计测试任务,获取其待测任务的相关数据,包括:
测试任务集T={t1,t2,···,tM},其中tm表示第m个测试任务,m=1,2,…,M,M表示测试任务数量;
测试时间集τ={τ1,τ2,···,τM},其中τm表示完成第m个测试任务所需时间;
测试资源集R={r1,r2,···,rN},其中rn表示对测试任务集T进行测试所需要的第n种资源,n=1,2,…,N,N表示测试所需资源种类数量,测试资源一般包括仪器、通道等;
任务资源矩阵TR,大小为M×N,用于表示资源被占用的情况,若TR(m,n)=1则测试任务tm在测试时需要占用资源rn,若TR(m,n)=0则测试任务tm在测试时不占用资源rn;
任务约束矩阵TS,大小为M×M,用于表示测试任务执行的先后顺序,若TS(m,m′)=1则测试任务tm需要在测试任务tm′之前执行,若TS(m,m′)=0则测试任务tm和测试任务tm′的先后没有限制,m′=1,2,…,M&m′≠m。
S102:测试任务编码:
编码方式决定了个体上基因的表现形式以及选择、交叉、变异的执行,常见的对基因进行编码方式有二进制编码、格雷码编码、实数编码等。本发明所需解决的是任务调度问题,采用实数编码的方式更加适用于实际情况。但是由于本发明中存在任务约束,因此在编码时还需要考虑任务约束的限制。因此,本发明中测试任务编码的具体方法为:
采用实数编码的方式对测试任务进行编码,在编码过程中如果任务约束矩阵中TS(m,m′)=1时,表示测试任务tm和测试任务tm′的执行有先后顺序,此时测试任务tm和测试任务tm′的编码相同,否则测试任务tm和测试任务tm′的编码不同。
假设测试任务集中包含10个测试任务,即T={t1,t2,···,t10},而测试任务t3需要在测试任务t5之前执行,可以将测试任务集编码为{1,2,3,4,3,6,7,8,9,10},将测试任务t3与t5都编码为“3”,第一个“3”代表t3,第一个“3”代表t5,保证t3在t5之前执行。
S103:初始化种群:
将测试任务的编码序列作为遗传算法的个体,对测试任务的编码进行K次随机排序生成K个编码序列,构成遗传算法的初始种群Q,K的值根据实际需要设置,记第i个个体为Xi={xi,1,xi,2,···,xi,M},xi,m表示个体Xi中第m个进行的测试任务编码,i=1,2,…,K。
S104:计算初始种群相异度:
种群的多样性由种群的相异度进行表述的,在迭代的过程中,初始种群在整个解空间均匀分布,此时种群的多样性最丰富,相异度最大。随着迭代次数的增加,种群会向最优解方向进化,越来越多的个体会进化出最优解的特征,种群的多样性降低,相异度减小。本发明中,为了保证迭代过程中种群的多样性,需要根据相异度的变化来确定个体的交叉概率和变异概率,因此需要先计算初始种群的相异度D0,种群相异度计算的具体方法如下:
对于当前种群,首先计算任意两个个体之间的相异程度di,j:
其中,i=1,2,…,K,j=1,2,…,K,且i≠j,xi,m、xj,m分别为当前种群中个体Xi、Xj中第m个进行的测试任务编码。
然后采用如下公式计算当前种群整体的相异度D:
S105:计算个体适应度:
在遗传算法中依靠个体的适应度值来评价个体的优劣,决定种群的进化方向。适应度函数根据具体问题的优化方向不同存在差异,本发明并行测试任务调度研究的目标是确定总测试时间达到最短的调度方案,因此使用总测试时间作为评价个体优劣的标准。本发明中计算当前种群Q中各个个体适应度的具体方法为:
根据个体中测试任务编码的顺序、测试时间集τ、任务资源矩阵TR和任务约束矩阵TS生成并行测试任务调度方案,获取该调度方案完成测试所需时间TIME,然后采用如下公式计算个体的适应度f:
f实际上是加速度比,即采用了并行测试后对于测试完成时间的加速程度,是评价并行测试完成测试所需时间长短的函数。那么显然在本发明中,适应度越大,个体越优。
对于并行测试任务调度方案的生成,本实施例采用如下方法生成:
根据个体中测试任务编码的顺序生成测试任务序列,当存在相同的测试任务编码时,根据任务约束矩阵TS确定相同测试任务编码对应的测试任务的顺序。设置一个甘特图,将测试资源集R={r1,r2,···,rN}中的N个测试资源作为甘特图的项目,然后根据测试时间集τ中各个测试任务所需时间和任务资源矩阵TR中各个测试任务所需要的资源,按照测试任务序列在甘特图中依次绘制各个测试任务在所需资源上的工作进程,得到串行测试甘特图。然后在串行测试甘特图中,按照测试任务执行的先后顺序,在不占用前面测试任务的资源的前提下,将测试任务移动至可移动的最前位置,得到并行测试甘特图。根据并行测试甘特图得到并行测试任务调度方案和该调度方案完成测试所需时间TIME。
以10个测试任务、5种测试资源为例,任务资源矩阵TR如下:
测试时间集τ={1,1,1,2,1,1,1,1,1,1},测试时间单位为秒,假设测试任务t3需要在测试任务t5之前执行,将测试任务集编码为{1,2,3,4,3,6,7,8,9,10}。假设当前个体为{9,2,3,7,10,8,3,6,4,1},则可得到测试任务序列为{9,2,3,7,10,8,5,6,4,1}。图2是本实施例个体对应并行测试任务调度方案的甘特图。如图2所示,本实施例中个体对应的并行测试任务调度方案中共需执行7步,第1步执行任务7和任务9,第2步执行任务2,第3步执行任务3,第4步执行任务8和任务10,第5步执行任务5和任务1,第6步执行任务6,第7步执行任务4,该并行测试任务调度方案完成测试所需时间TIME为8秒。
S106:判断是否满足终止条件,如果是,则进入步骤S111,否则进入步骤S107。
终止条件可以根据实际需要进行设置,一般有两种,一种是迭代次数达到最大迭代次数,另一种是最优个体适应度收敛。
S107:个体选择:
从当前种群Q中选择优势个体构成新种群Q1。
选择操作的目的是为了从种群中选择个体进行交叉与变异操作,本实施例中采用轮盘赌算法与精英保留策略进行选择,确保优势基因能够尽可能遗传给子代,产生更优秀子代的可能性也就更大,具体方法为:
设置参数A、B,令A+B=K,采用轮盘赌算法从当前种群中选择A个个体加入新种群,然后将剩余个体按照适应度从大到小进行排序,选择前B个个体加入新种群。
轮盘赌算法是依据个体的适应度值进行选择,当个体的适应度值越大时,其被选择的概率就越大,使得优秀个体的基因遗传给子代的可能性更大。精英保留策略将一部分优秀个体直接选中,解决使用轮盘赌算法时优秀个体可能没有被选择的问题,使得新种群更加合理。
S108:个体交叉:
对新种群Q1中的个体采用交叉操作得到子代种群Q2,其中各个个体的交叉概率采用如下方法计算:
采用步骤S104中的方法计算新种群Q1的相异度D1,采用步骤S105中的方法计算新种群Q1中各个个体的适应度,然后采用如下公式计算个体的交叉概率:
其中,pc表示交叉概率,pcmax为预设的最大交叉概率,pcmin为预设的最小交叉概率,f′为执行交叉操作的两个父代个体的适应度中的较大值,fmax为新种群Q1的最大适应度值,favg为新种群Q1的平均适应度值,γ为预设的极小值,等价无穷小,防止分母为0。
交叉通过交叉两个父代部分基因片段得到子代,将自身的部分特征遗传给子代,以便增加种群多样性,提高全局搜索能力。本实施例中采用两点交叉方式,具体方法为:
3)为了防止编码冲突,对于剩余基因片段采用如下方法处理:从父代个体p1中将交叉基因片段包含的测试任务编码删除,将剩余测试任务编码按照顺序填充至子代个体c1的位置[1:m1-1]和[m2+1:M];同样地,从父代个体p2中将交叉基因片段包含的测试任务编码删除,将剩余测试任务编码按照顺序填充至子代个体c2的位置[1:m1-1]和[m2+1:M]。
图3是本实施例中个体交叉的示例图。如图3所示,选择位置[4:7]的基因片段作为交叉基因片段,然后交换交叉基因片段,个体中空白基因处采用“X”进行占位,然后将父代个体p1中交叉基因片段[6,9,2,3]中测试任务编码删除,得到剩余测试任务编码[3,7,10,8,4,1],再按顺序填充至剩余位置,另一个个体操作相似。
S109:个体变异:
对子代种群Q2中的个体采用变异操作得到子代种群Q3,其中各个个体的变异概率采用如下方法计算:
采用步骤S104中的方法计算子代种群Q2的相异度D2,采用步骤S105中的方法计算子代种群Q2中各个个体的适应度,然后采用如下公式计算子代种群Q2中各个个体的变异概率:
其中,pm为变异概率,pmmax为预设的最大变异概率,pmmin为预设的最小变异概率,f为变异个体的适应度值,fm′ax为子代种群Q2的最大适应度值,fa′vg为子代种群Q2的平均适应度值。
变异操作通过父代个体改变自身的某些基因来产生子代个体,以增加种群的多样性,可以在一定程度上避免局部最优的情况。本实施例中采用倒序变异方式,具体方法为:
在父代个体中随机选择变异基因片段,将该变异基因片段中测试任务编码进行倒序,生成新基因片段,从而得到子代个体。
图4是本实施例中个体变异的示例图。如图4所示,在该父代个体中选择变异基因片段[7,10,8,3],然后倒序得到基因片段[3,8,10,7]。
根据本发明中交叉概率和变异概率的计算公式可知,在迭代前期,当前种群的相异度D与初始种群的相异度D0相近,交叉概率pc与变异概率pm与现有的IAGA算法中的交叉与变异概率相近。但是在算法后期,种群通过不断向最优解方向进化,当前种群的相异度D降低,交叉概率pc与变异概率pm增加,可以有效解决IAGA算法迭代后期大部分个体交叉与变异概率较低的问题。总体来看,本发明中交叉概率和变异概率的计算方法,可以使得在整个迭代过程的交叉与变异概率都有合适的取值,保证种群的多样性,可以解决遗传算法容易陷入局部最优的问题。
S110:令子代种群Q3为种群Q,返回步骤S105。
S111:确定并行测试任务调度方案:
选择当前种群中适应度最大的个体,根据该个体中测试任务编码的顺序、测试时间集τ、任务资源矩阵TR和任务约束矩阵TS生成并行测试任务调度方案。
为了更好地说明本发明的技术效果,采用具体实例对本发明进行实验验证。
本实施例中以无人机的测试为例,无人机的并行测试由无人机平台管理系统地面测试设备中的自动测试系统完成,该无人机平台包含刹车子系统、动力子系统、温控子系统、配电子系统、电气子系统等,本实施例中针对以上5个子系统共计设置了15项测试任务,测试所涉及的资源共计7种,分别为模拟量输入板卡,模拟量输出板卡,离散量输入板卡,离散量输出板卡,电阻板卡,同步RS422板卡,异步RS422板卡,为了便于描述,用r1,r2,r3,···,r7表示以上资源。表1是本实施例中的测试任务信息表。表1中测试任务所使用的测试用例并非对应系统中所有的测试用例,而是在自动测试时根据需求设计的自动测试用例。
测试任务 | 测试对象 | 占用资源 | 测试时间/s | 时序关系 |
t<sub>1</sub> | 刹车子系统 | r<sub>2</sub> | 2 | t<sub>9</sub>之后 |
t<sub>2</sub> | 动力子系统 | r<sub>2</sub>,r<sub>3</sub> | 9 | 无 |
t<sub>3</sub> | 温控子系统 | r<sub>5</sub>,r<sub>7</sub> | 4 | 无 |
t<sub>4</sub> | 动力子系统 | r<sub>5</sub>,r<sub>6</sub> | 11 | 无 |
t<sub>5</sub> | 配电子系统 | r<sub>2</sub> | 2 | 无 |
t<sub>6</sub> | 温控子系统 | r<sub>2</sub>,r<sub>5</sub> | 16 | t<sub>11</sub>之前 |
t<sub>7</sub> | 配电子系统 | r<sub>1</sub>,r<sub>2</sub> | 19 | t<sub>10</sub>之后 |
t<sub>8</sub> | 电气子系统 | r<sub>1</sub> | 20 | 无 |
t<sub>9</sub> | 刹车子系统 | r<sub>3</sub>,r<sub>7</sub> | 12 | t<sub>1</sub>之前 |
t<sub>10</sub> | 电气子系统 | r<sub>1</sub>,r<sub>6</sub> | 17 | t<sub>7</sub>之前 |
t<sub>11</sub> | 温控子系统 | r<sub>2</sub>,r<sub>5</sub> | 12 | t<sub>6</sub>之后 |
t<sub>12</sub> | 配电子系统 | r<sub>2</sub>,r<sub>7</sub> | 12 | 无 |
t<sub>13</sub> | 电气子系统 | r<sub>4</sub>,r<sub>6</sub> | 18 | 无 |
t<sub>14</sub> | 温控子系统 | r<sub>5</sub> | 13 | 无 |
t<sub>15</sub> | 动力子系统 | r<sub>3</sub> | 13 | 无 |
表1
根据表1得到测试任务集T={t1,t2,t3,···,t15},测试资源集R={r1,r2,r3,···,r7},测试时间集τ={2,9,4,11,2,16,19,20,12,17,12,12,18,13,13};任务约束矩阵TS大小为15×15,其中TS(9,1)=1,TS(6,11)=1,TS(10,7)=1,其余均为0;任务资源矩阵TR大小为15×7,表达式如下:
表2是本实施例中遗传算法的参数设置表。
参数 | 值 |
种群大小 | 20 |
最大迭代次数 | 100 |
最大交叉概率p<sub>cmax</sub> | 0.9 |
最小交叉概率p<sub>cmin</sub> | 0.3 |
最大变异概率p<sub>mmax</sub> | 0.1 |
最小变异概率p<sub>mmin</sub> | 0.01 |
表2
采用本发明得到的适应度最大的个体对应的测试任务序列为{8,2,14,9,6,3,1,10,12,13,5,11,15,7,4}。图5是本实施例中测试任务序列得到的并行测试甘特图。如图5所示,本实施例中并行测试的最大执行步数为10。根据并行测试甘特图可以得到本实施例的任务调度矩阵TP,其大小为7×10,其中每个元素表示对应执行步骤中占用对应资源的测试任务。任务调度矩阵TP为:
该并行测试任务调度方案完成测试所需时间TIME为72秒,与最优调度方案用时相同,说明本发明可以有效解决并行测试任务调度问题。
在参数设置相同的情况下,将本发明和现有的AGA算法、IAGA算法、进行对比实验。图6是本发明和2种对比方法的种群相异度随迭代次数变化的对比图。从图6可以看出,种群相异度在初始时达到了最大。在迭代后期,AGA算法与IAGA算法的种群相异度在较小范围波动,种群多样性较小;而本发明种群相异度在较大范围波动,种群多样性较大。可见本发明在迭代的过程中维持了种群的多样性,说明了本发明设计的合理性。
图7是本发明和2种对比方法的最大适应度值随迭代次数变化的对比图。从图7可以看出,AGA算法与IAGA算法都出现了陷入局部最优解的情况,需要多次迭代才能跳出局部最优解,而本发明具有更好的跳出局部最优解的能力。
图8是本发明和2种对比方法得到最优解的概率随迭代次数变化的对比图。从图8可以看出,三种方法在迭代40次后找到最优解的概率趋于稳定,AGA算法稳定在约75%,IAGA算法稳定在约95%,本发明稳定在约99%,IAGA算法与本发明相比较于AGA算法有大幅度提升,本发明相比较于IAGA算法提升约4%。在迭代10次以前,本发明找到最优解的概率与IAGA算法相近;而在迭代10次以后,本发明找到最优解的概率优于IAGA算法,符合设计预期。
在最大迭代次数为50次时,将三种方法分别运行1000次,对结果进行统计。表2是本实施例中本发明和2种对方法的仿真结果对比表。
表2
如表2所示,本发明相比较于IAGA算法,在平均搜索时长不变的情况下,找到最优解的概率提高了约5.5%。
综上所述,本发明引入种群相异度自适应调节交叉与变异概率,改善了传统IAGA算法后期容易陷入局部最优的问题,提升了方法的收敛速度,有着更好的搜索性能,能够快速准确地获取并行测试任务调度方案。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (5)
1.一种基于改进自适应遗传算法的并行测试任务调度方法,其特征在于,包括以下步骤:
S1:对于待进行并行测试的电子系统,根据实际情况针对其包含的子系统设计测试任务,获取其并行测试相关数据,包括:
测试任务集T={t1,t2,···,tM},其中tm表示第m个测试任务,m=1,2,…,M,M表示测试任务数量;
测试时间集τ={τ1,τ2,···,τM},其中τm表示完成第m个测试任务所需时间;
测试资源集R={r1,r2,···,rN},其中rn表示对测试任务集T进行测试所需要的第n种资源,n=1,2,…,N,N表示测试所需资源种类数量;
任务资源矩阵TR,大小为M×N,用于表示资源被占用的情况,若TR(m,n)=1则测试任务tm在测试时需要占用资源rn,若TR(m,n)=0则测试任务tm在测试时不占用资源rn;
任务约束矩阵TS,大小为M×M,用于表示测试任务执行的先后顺序,若TS(m,m′)=1则测试任务tm需要在测试任务tm′之前执行,若TS(m,m′)=0则测试任务tm和测试任务tm′的先后没有限制,m′=1,2,…,M&m′≠m;
S2:采用实数编码的方式对测试任务进行编码,在编码过程中如果任务约束矩阵TS(m,m′)=1时,表示测试任务tm和测试任务tm′的执行有先后顺序,此时测试任务tm和测试任务tm′的编码相同,否则测试任务tm和测试任务tm′的编码不同;
S3:将测试任务的编码序列作为遗传算法的个体,对测试任务的编码进行K次随机排序生成K个编码序列,构成遗传算法的初始种群Q,记第i个个体为Xi={xi,1,xi,2,···,xi,M},xi,m表示个体Xi中第m个进行的测试任务编码,i=1,2,…,K;
S4:计算初始种群的相异度D0,种群相异度计算的具体方法如下:
对于当前种群,首先计算任意两个个体之间的相异程度di,j:
其中,i=1,2,…,K,j=1,2,…,K,且i≠j,xi,m、xj,m分别为当前种群中个体Xi、Xj中第m个进行的测试任务编码;
然后采用如下公式计算当前种群整体的相异度D:
S5:计算当前种群Q中各个个体的适应度,具体方法为:
根据个体中测试任务编码的顺序、测试时间集τ、任务资源矩阵TR和任务约束矩阵TS生成并行测试任务调度方案,获取该调度方案完成测试所需时间TIME,然后采用如下公式计算个体的适应度f:
适应度越大,个体越优;
S6:判断是否满足终止条件,如果是,则进入步骤S11,否则进入步骤S7;
S7:从当前种群Q中选择优势个体构成新种群Q1;
S8:对新种群Q1中的个体采用交叉操作得到子代种群Q2,其中各个个体的交叉概率采用如下方法计算:
采用步骤S4中的方法计算新种群Q1的相异度D1,采用步骤S5中的方法计算新种群Q1中各个个体的适应度,然后采用如下公式计算个体的交叉概率:
其中,pc表示交叉概率,pcmax为预设的最大交叉概率,pcmin为预设的最小交叉概率,f′为执行交叉操作的两个父代个体的适应度中的较大值,fmax为新种群Q1的最大适应度值,favg为新种群Q1的平均适应度值,γ为预设的极小值;
S9:对子代种群Q2中的个体采用变异操作得到子代种群Q3,其中各个个体的变异概率采用如下方法计算:
采用步骤S4中的方法计算子代种群Q2的相异度D2,采用步骤S5中的方法计算子代种群Q2中各个个体的适应度,然后采用如下公式计算子代种群Q2中各个个体的变异概率:
其中,pm为变异概率,pmmax为预设的最大变异概率,pmmin为预设的最小变异概率,f为变异个体的适应度值,fm′ax为子代种群Q2的最大适应度值,fa′vg为子代种群Q2的平均适应度值;
S10:令子代种群Q3为种群Q,返回步骤S5;
S11:选择当前种群中适应度最大的个体,根据该个体中测试任务编码的顺序、测试时间集τ、任务资源矩阵TR和任务约束矩阵TS生成并行测试任务调度方案。
2.根据权利要求1所述的并行测试任务调度方法,其特征在于,所述步骤S5中并行测试任务调度方案的生成方法为:
根据个体中测试任务编码的顺序生成测试任务序列,当存在相同的测试任务编码时,根据任务约束矩阵TS确定相同测试任务编码对应的测试任务的顺序;设置一个甘特图,将测试资源集R={r1,r2,···,rN}中的N个测试资源作为甘特图的项目,然后根据测试时间集τ中各个测试任务所需时间和任务资源矩阵TR中各个测试任务所需要的资源,按照测试任务序列在甘特图中依次绘制各个测试任务在所需资源上的工作进程,得到串行测试甘特图;然后在串行测试甘特图中,按照测试任务执行的先后顺序,在不占用前面测试任务的资源的前提下,将测试任务移动至可移动的最前位置,得到并行测试甘特图;根据并行测试甘特图得到并行测试任务调度方案和该调度方案完成测试所需时间TIME。
3.根据权利要求1所述的并行测试任务调度方法,其特征在于,所述步骤S7中个体选择的具体方法为:
设置参数A、B,令A+B=K,采用轮盘赌算法从当前种群中选择A个个体加入新种群,然后将剩余个体按照适应度从大到小进行排序,选择前B个个体加入新种群。
4.根据权利要求1所述的并行测试任务调度方法,其特征在于,所述步骤S8中个体交叉采用两点交叉,具体方法为:
5.根据权利要求1所述的并行测试任务调度方法,其特征在于,所述步骤S8中个体变异采用倒序变异,具体方法为:
在父代个体中随机选择变异基因片段,将该变异基因片段中测试任务编码进行倒序,生成新基因片段,从而得到子代个体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211360824.0A CN115617690A (zh) | 2022-11-02 | 2022-11-02 | 基于改进自适应遗传算法的并行测试任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211360824.0A CN115617690A (zh) | 2022-11-02 | 2022-11-02 | 基于改进自适应遗传算法的并行测试任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617690A true CN115617690A (zh) | 2023-01-17 |
Family
ID=84876670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211360824.0A Pending CN115617690A (zh) | 2022-11-02 | 2022-11-02 | 基于改进自适应遗传算法的并行测试任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617690A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116679758A (zh) * | 2023-08-04 | 2023-09-01 | 江西现代职业技术学院 | 一种无人机调度方法、系统、计算机及可读存储介质 |
CN117093364A (zh) * | 2023-08-08 | 2023-11-21 | 国网湖南省电力有限公司 | 实时量测数据的并行处理方法及系统、电子设备、介质 |
-
2022
- 2022-11-02 CN CN202211360824.0A patent/CN115617690A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116679758A (zh) * | 2023-08-04 | 2023-09-01 | 江西现代职业技术学院 | 一种无人机调度方法、系统、计算机及可读存储介质 |
CN116679758B (zh) * | 2023-08-04 | 2023-10-17 | 江西现代职业技术学院 | 一种无人机调度方法、系统、计算机及可读存储介质 |
CN117093364A (zh) * | 2023-08-08 | 2023-11-21 | 国网湖南省电力有限公司 | 实时量测数据的并行处理方法及系统、电子设备、介质 |
CN117093364B (zh) * | 2023-08-08 | 2024-04-02 | 国网湖南省电力有限公司 | 实时量测数据的并行处理方法及系统、电子设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115617690A (zh) | 基于改进自适应遗传算法的并行测试任务调度方法 | |
CN109271320B (zh) | 一种上位多目标测试用例优先级排序方法 | |
CN106610867B (zh) | 一种片上网络任务调度方法及装置 | |
CN111861013B (zh) | 一种电力负荷预测方法及装置 | |
WO2019154215A1 (zh) | 机器人运行路径生成方法、计算设备及存储介质 | |
CN115965169A (zh) | 路径规划方法、智能设备及计算机可读存储介质 | |
CN112528591A (zh) | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 | |
CN111007813A (zh) | 一种基于多种群混合智能算法的agv避障调度方法 | |
CN111832725A (zh) | 一种基于改进遗传算法的多机器人多任务分配方法及装置 | |
CN113128432A (zh) | 一种基于演化计算的多任务神经网络架构搜索方法 | |
CN112949211A (zh) | 发动机模型的优化方法、装置、计算机设备及存储介质 | |
JP7137074B2 (ja) | 最適化計算方法、最適化計算装置及び最適化計算プログラム | |
CN115481727A (zh) | 一种基于进化计算的意图识别神经网络生成与优化方法 | |
CN112987665B (zh) | 一种基于强化学习的流水车间调度方法 | |
CN111831421B (zh) | 任务分配方法及终端设备 | |
CN115494840B (zh) | 一种基于蒙特卡洛因子的mc-iaco的焊接机器人路径规划方法 | |
CN111412795A (zh) | 测试点设置方案生成方法及装置 | |
CN115729829A (zh) | 一种基于改进遗传算法的自动驾驶加速测试方法 | |
Polani et al. | Eugenic neuro-evolution for reinforcement learning | |
CN115392616A (zh) | 一种知识挖掘结合遗传算法的多目标离散车间调度方法 | |
CN114330940B (zh) | 用于pcb电镀任务排序问题的多目标混合蜘蛛猴优化方法 | |
CN113487031A (zh) | 一种基于改进模拟退火融合遗传算法的多无人机任务分配方法 | |
CN113554144A (zh) | 用于多目标进化特征选择算法的自适应种群初始化方法和存储设备 | |
CN114415615A (zh) | 不确定需求下混流装配线平衡分配方法及装置 | |
CN113792494A (zh) | 基于迁徙鸟群算法和交叉融合的多目标柔性作业车间调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |