CN109409763B - 基于贪婪式分组策略的动态测试任务调度方法及调度平台 - Google Patents
基于贪婪式分组策略的动态测试任务调度方法及调度平台 Download PDFInfo
- Publication number
- CN109409763B CN109409763B CN201811325860.7A CN201811325860A CN109409763B CN 109409763 B CN109409763 B CN 109409763B CN 201811325860 A CN201811325860 A CN 201811325860A CN 109409763 B CN109409763 B CN 109409763B
- Authority
- CN
- China
- Prior art keywords
- task
- test
- scheduling
- group
- tasks
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- 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)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Educational Administration (AREA)
- Life Sciences & Earth Sciences (AREA)
- Game Theory and Decision Science (AREA)
- Health & Medical Sciences (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于贪婪式分组策略的动态测试任务调度方法及调度平台,属于自动测试系统动态任务调度领域。调度平台包括用户登录模块、实例添加及维护模块、数据库模块、测试实例导入模块、调度算法模块以及调度结果显示输出模块。获取测试任务集的信息,选用实数编码方式随机选择N个测试任务等分成Gn组,进行内层优化,得到各小组的最优解。将各小组的最优解进行解码,得到最优调度方案,将所有的最优调度方案首尾相连,得到适应度值fn。重复上述方法直至外层达到设定的初始种群个数,迭代优化得到最小的fn对应的最优解并解码,得到静态调度方案,对动态事件进行响应,输出动态调度结果及调度甘特图。本发明提升了解的质量,便于系统的维护与升级。
Description
技术领域
本发明属于自动测试系统动态任务调度领域,具体涉及一种基于贪婪式分组策略的动态测试任务调度方法及调度平台。
背景技术
传统的自动测试系统研究集中在静态调度领域,解决若干项测试任务在若干台仪器(资源)上的排序和分配问题。其中,一个任务可能有多种可选方案来完成测试,每个可选方案由一个或多个仪器组成,任务之间存在一定的时序约束关系。调度目标是将各项测试任务安排给相应的测试仪器,并高效地安排任务测试过程的先后次序和开始测试的时间。
在自动测试系统的实际工作过程中,各种意料之外的突发事件是不可避免的,如仪器故障、新任务到达等,这些实时事件可能会导致之前的调度方案不再适用,即理想化的静态调度已经不能满足实际需求。因此,调度过程往往是不间断的反应过程,需要根据实际情况进行调整或重新调度,从而实现对动态事件的响应。
从动态调度技术来看,最常用的技术为启发式方法和元启发式方法。启发式方法不保证能找到最优的调度方案,但能在短时间内找到合理的解。最常用的启发式方法有:右移调度修复、匹配调度修复和分配规则调度。元启发式算法则包括粒子群算法、模拟退火法以及基因算法等,近年来广泛应用于动态调度问题的求解。元启发式算法在很大程度上可以提升解的质量,但往往需要较长的求解时间,尤其是对于大规模调度问题而言很难在短时间内发现最优或近优解。
面对当前军事、民用发展对自动测试系统性能越来越高的要求,单一的启发式或元启发式算法在大规模、高动态环境下越来越不适用。另外,目前国内外对于动态测试任务调度研究缺少一个完整的设计与原型化仿真验证平台。因此,研究高效的动态测试任务调度方法,搭建一个完整的具有可扩展性的动态测试任务调度平台,对于提高测试效率、加快动态任务调度研究具有重要作用。
发明内容
为了解决现有调度方法在大规模实例和动态环境中性能较差的不足,本发明提出了一种基于贪婪式分组策略的动态测试任务调度方法。此外,针对现有研究缺少完整的设计与仿真平台解决动态测试任务调度问题,本发明提出一个统一的动态测试任务调度平台。
所述的基于贪婪式分组策略的动态测试任务调度方法,具体步骤如下:
步骤一、针对自动测试任务调度场景,从测试实例中获取测试任务集的信息;
信息包括:测试任务表T={t1,t2,…,tj,...,tN},tj为第j个测试任务,N为测试任务总数;
仪器资源表R={r1,r2,…,ri,...,rM},ri为第i个仪器资源,M为仪器资源总数;
动态任务表D={d1,d2,...,dQ},Q为新任务的总个数;
故障仪器表B={b1,...,bS},S为故障仪器的总个数。
步骤二:根据实际需要选择目标函数并初始化,选择粒子群算法为搜索算法进行参数设置;同时选用实数编码方式;
目标函数为最大完工时间:
选择粒子群算法为外层优化和内层优化的搜索算法,并进行调度方法的参数设置。
外层优化确定当前所有测试任务的分组方式,内层优化是指确定分组后,每组内的测试任务选择各自方案的调度顺序;
组内优化目标改进为:
其中,makespan表示组内所有任务的最大完工时间。idlem表示仪器资源m上的总空闲时间;finm表示所有任务在仪器资源m上的完工时间。
采用适合于搜索算法与问题描述的实数编码方式,由每一位的数值大小决定分组方式及任务排序;通过选用N个0-1之间的实数作为N个测试任务,实数的大小决定了测试任务的排列顺序,选择所有测试任务等间隔分组的方式,则每个测试任务对应的实数的第一位小数决定了该测试任务选择的方案。
步骤三、采用实数编码方式随机选择N个测试任务,并等分成Gn组依次编号;
Gn组编号为gn={1,2,3,....n};
步骤四、按顺序依次选择等分组编号,并基于搜索算法进行当前组的内层优化,得到当前组内的最优解;
初始小组编号gn为1,所有资源的开始可用时间均置为0。
具体步骤为:
步骤401、针对按分组编号选取的当前组,该组中有tn个任务,采用PBSCR分配规则为每个任务分配资源;
当前组的初始值为编号1的等分组。tn个任务编号为:{t1,t2,t3,....,ti,....tn};第ti个任务有mi种资源分配方式。
步骤402、按任务编号依次选取当前任务,并遍历当前任务的所有可选方案,计算每种方案的完成时间并记录;
当前任务初始值为t1。第ti个任务的所有可选方案的完成时间为t1,t2,...,tmi;
步骤403、利用每种方案的完成时间,计算各方案的被选择概率;
针对第ti个任务的第j'种方案,被选择概率为:
被选择概率的值越大,该方案被当前任务选择的可能性越大;
步骤404、根据概率的大小,采用轮盘赌方法为第ti个任务确定所选方案。
步骤405、为当前组中tn个任务确定各自的方案后,经过排序得到当前组的若干解,每个解分别对应一个适应度值。
每个解解码后,对应当前组内所有测试任务的任务排序和方案选择;
步骤406、对当前任务的所有的适应度值,采用粒子群算法依次进行迭代优化,直至达到预定的最大迭代次数,得到当前组的一个最优适应度值fgn,该值对应当前组的最优解。
最优适应度值fgn是当前组中的所有测试任务,按照最优排序和最优方案选择调度后的完成时间。
步骤五、更新资源的当前状态,作为下一小组的初始条件,小组编号gn自增1,返回步骤四,直至gn=n,得到各小组内的最优适应度值fgn,进而得到各小组的最优解。
步骤六、将各小组的最优解进行解码,得到各组对应的最优调度方案,将所有的最优调度方案首尾相连,得到当前分组方式下的适应度值fn。
适应度值fn即当前分组方式中的最后一组完成的时间,也就是当前分组方式下所有组内的测试任务都完成的时间。
步骤七、采用实数编码方式再次随机选择N个测试任务,并等分组依次编号,返回步骤四;得到再次分组方式下的适应度值,直至达到设定的初始种群个数为止;
步骤八、将所有的分组方式下得到的适应度值,采用粒子群算法进行迭代优化,直到达到预定的最大迭代次数,得到最小的fn对应的最优解。
步骤九、根据实数编码方式对最小的fn对应的最优解进行解码,得到静态调度方案。
步骤十、利用静态调度方案对动态事件进行响应;
采用滚动窗口再调度技术,处理新任务到达和仪器故障等突发事件。
在动态事件发生时,将已完成的任务从任务窗口中移出;对于新任务到达事件,保持正在执行的任务的调度方案不变,将新任务和未执行的任务加入任务窗口,更新起始条件,重新对窗口中的任务进行再调度。
对于仪器故障事件,如果正在执行的任务所占用资源突然故障,则正在执行的任务、未执行的任务一起加入任务窗口,并去除它们包含故障资源的处理方案,更新起始条件和可用资源后重新对窗口中的任务进行再调度;如果正在执行的任务所占用资源没有故障,则保持其调度方案不变,仅去除未执行任务中包含故障资源的处理方案,更新起始条件和可用资源后进行再调度。
步骤十一、输出动态调度结果以及相应的调度甘特图。
动态调度结果是动态事件发生后新的调度策略,即新的任务执行顺序和资源分配方式。
所述的基于贪婪式分组策略的动态测试任务调度平台,包括如下模块:用户登录模块、实例添加及维护模块、数据库模块、测试实例导入模块、调度算法模块以及调度结果显示输出模块。
用户登录模块是整个平台的初始界面,用户由此输入用户名和密码,自动建立与数据库模块的连接,数据库模块将MySQL数据库与用户操作界面相连,主要用于存储用户输入的各种测试信息,并在用户维护后进行更新。
实例添加及维护模块用于对测试实例中提取的六种信息表进行维护,通过添加、删除或者修改等操作将数据存储在数据库模块中;
所述的六种信息表为:初始测试任务集表、测试任务表、仪器资源表、测试方案集表、动态任务表以及故障仪器表。
测试实例导入模块为用户提供数据库中维护的可选实例,并在用户选择测试实例后,将相应实例的测试信息导入到调度算法模块,实现高效稳定的信息共享。
调度算法模块集成了用户可选的调度算法,在算法选择后显示相应的算法流程图,用户自行进行算法的参数设置。调度算法根据动态事件的类型,对动态事件进行响应,同时对解空间进行搜索,通过随机迭代对找到的最优解进行不断优化,直到满足设置的终止条件。
调度结果显示输出模块同时负责调度结果的输出与显示,将调度算法搜索到的最优解进行解码后,还原为相应的任务排序和资源分配方案,将最终结果以调度甘特图的形式呈现给用户,完成调度目标。
本发明的主要优点在于:
(1)一种基于贪婪式分组策略的动态测试任务调度平台,将实例添加及维护模块、测试实例导入模块、调度算法模块等进行集成,将资源信息进行了高度整合,便于系统的维护与升级。
(2)一种基于贪婪式分组策略的动态测试任务调度平台,具有良好的可扩展性和一般性,可以根据需要选择和添加调度算法,便于平台整体性能的提升。
(3)一种基于贪婪式分组策略的动态测试任务调度方法,可以适应大规模问题和动态环境的需要,有效地提升了解的质量。
附图说明
图1是本发明一种基于贪婪式分组策略的动态测试任务调度平台的结构示意图;
图2是本发明一种基于贪婪式分组策略的动态测试任务调度方法的原理图;
图3是本发明一种基于贪婪式分组策略的动态测试任务调度方法的流程图;
图4是本发明一种基于贪婪式分组策略的动态测试任务调度方法的静态调度方案和动态调度方案的甘特图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明提出了一种基于贪婪式分组策略的动态测试任务调度平台,结构如图1所示,包括如下模块:用户登录模块、实例添加及维护模块、数据库模块、测试实例导入模块、调度算法模块以及调度结果显示输出模块。
用户登录模块是整个动态测试任务调度平台的入口,用户由此输入用户名和密码,登录后即可自动建立与数据库模块的连接,方便后续的数据维护与测试实例导入。
数据库模块将MySQL数据库与VS环境下的用户操作界面相连,从实例添加及维护模块中得到数据信息,如任务个数、测试方案、资源信息等,并存入到数据库中,并在用户维护后进行更新。
实例添加及维护模块与数据库模块相连,可以输入六种信息,且每种信息都可以根据调度要求进行相应的添加、删除、修改操作,输入的数据保存至数据库模块中,保证对测试任务调度实例的灵活管理。
所述的六种信息表为:初始测试任务集表、测试任务表、仪器资源表、测试方案集表、动态任务表以及故障仪器表。
在初始测试任务集表中可以对测试任务集进行添加,并进行描述,方便用户使用。如表 1所示:
表1
名称 | 数据类型 | 描述 |
TaskSetName | VARchar | 初始测试任务集的名称 |
各初始测试任务集中的具体测试任务信息由测试任务表列出,如表2所示:
表2
测试任务表中包括初始测试任务集名、任务ID以及测试任务描述。各测试任务集可用的仪器资源由仪器资源表记录,如表3所示。
表3
名称 | 数据类型 | 描述 |
TaskSetName | VARchar | 该仪器可测任务集名称 |
InstrID | INT | 仪器资源编号 |
Details | VARchar | 对仪器名称或属性的描述 |
仪器资源表中包括测试任务集名称、测试资源ID和仪器资源描述。各任务集中的每个测试任务的可选测试方案由测试方案集表记录,如表4所示。
表4
名称 | 数据类型 | 描述 |
TaskSetName | VARchar | 初始测试任务集名称 |
TaskID | INT | 任务编号,与任务名称一一对应 |
SchemeID | INT | 该任务可用的测试方案编号 |
InstrNum | INT | 该任务测试过程中所用仪器的数目 |
InstrID_1 | INT | 第1个仪器的编号,不用时为0 |
InstrID_2 | INT | 第2个仪器的编号,不用时为0 |
TestTime | INT | 该任务的测试时间 |
测试方案集表中包含测试任务集、任务ID、方案ID、所用仪器数、各仪器编号与测试时间。
动态事件包括新任务到达或仪器故障,其具体信息分别存储在动态任务表表5和故障仪器表表6中。
表5
动态任务表中包含新任务ID、到达时间、方案ID、所用仪器数、所用仪器ID及测试时间。
表6
名称 | 数据类型 | 描述 |
BreakInstrID | INT | 故障仪器编号 |
BreakTime | INT | 仪器故障时间 |
故障仪器表包含故障仪器ID和故障时间。
测试实例导入模块连接数据模块及调度方法模块,根据用户选定的测试实例及动态事件类型从数据库中获得相应表格信息,并将其导入到调度算法模块,实现高效稳定的信息共享。
调度算法模块集成了用户可选的一种以上的调度算法,在算法选择后显示相应的算法流程图,用户可以根据实际需要选择合适的调度方法,自行进行算法的参数设置;包括集成了本发明提出的一种基于贪婪式分组策略的动态测试任务调度方法。调度算法可以根据动态事件的类型,运行选定的调度方法对调度实例进行调度,对动态事件进行响应,同时对解空间进行搜索,通过随机迭代对找到的最优解进行不断优化,直到满足设置的终止条件,最终将得到的静态调度甘特图及动态调度甘特图输出到调度结果显示模块。
调度结果显示输出模块同时负责调度结果的输出与显示。它将调度算法搜索到的最优解进行解码后,还原为相应的任务排序和资源分配方案,并将最终结果以调度甘特图的形式呈现给用户,完成调度目标。
各模块之间协同配合,共同完成测试任务系统的动态调度。
本发明一种基于贪婪式分组策略的动态测试任务调度方法,采用分组优化进行分组调度策略的思想,如图2所示,主要包括分组策略和基于概率的贪婪式资源分配规则(PBSCR),将整个解空间分成若干组相对独立的进行优化,得到组内最优解后将每个组的优化结果首尾相连,得到该分组方式下的最优解。然后,重复此过程进行分组方式的优化,实现对实例的调度及对新任务到达动态事件的响应。
如图3所示,具体步骤如下:
步骤一、针对自动测试任务调度场景,从测试实例中获取测试任务集的信息;
本实施例选择20任务8仪器;在测试实例导入模块选择“20任务8仪器实例”,并选择动态事件为新任务到达,则从数据库中得到相关数据的信息表,包括该实例对应的测试任务表测试任务表T={t1,t2,…,tj,...,tN},tj为第j个测试任务,N为测试任务总数;
仪器资源表R={r1,r2,…,ri,...,rM},ri为第i个仪器资源,M为仪器资源总数;
动态任务表D={d1,d2,...,dQ},Q为新任务的总个数;
故障仪器表B={b1,...,bS},S为故障仪器的总个数。
以及动态任务表rn={tn1,tn2,...,tnQ}。
步骤二:根据实际需要选择目标函数并初始化,选择粒子群算法为搜索算法进行参数设置;同时选用实数编码方式;
整个调度问题的目标函数为最大完工时间:
选择合适的搜索算法,如粒子群算法、遗传算法等,用于确定分组方式的外层优化和确定组内调度顺序的内层优化,为算法的相关参数进行配置。
本实施例选择粒子群算法作为内外成优化的搜索算法,调度方法的参数设置如表7所示。
表7
外层优化确定当前所有测试任务的分组方式,内层优化是指确定分组后,每组内的测试任务选择各自方案的调度顺序;
组内优化目标改进为:
其中,makespan表示组内所有任务的最大完工时间。idlem表示仪器资源m上的总空闲时间;finm表示所有任务在仪器资源m上的完工时间。
采用适合于搜索算法与问题描述的实数编码方式,由每一位的数值大小决定分组方式及任务排序;
步骤三、采用实数编码方式随机选择N个测试任务,并等分成Gn组依次编号;
Gn组编号为gn={1,2,3,....n};
初始种群采用粒子群算法体现在外层优化的初始种群N1是个体的总数,每个个体代表一种分组方式;根据P1中每个个体决定的分组方式,将每种分组方式下所有的N个测试任务等分成n组。N个测试任务选用N个0-1之间的实数,实数的大小决定了测试任务的排列顺序,选择所有测试任务等间隔分组的方式,则每个测试任务对应的实数的第一位小数决定了该测试任务选择的方案。
本实施例中产生外层优化的初始种群P1(0)=I1,I2,...,I20。当前外层优化的迭代次数 iter1=1;根据P1中的每个解对任务进行排序并确定分组方式,前10个任务为第1组表示为G1,后10个任务为第2组表示为G2。当前小组编号gn=1,所有仪器资源的开始可用时间均置为 0。
步骤四、按顺序依次选择等分组编号,并基于搜索算法进行当前组的内层优化,得到当前组内资源分配的最优解;
将当前小组编号gn=1内的所有测试任务调度看作是独立的小规模调度问题,产生初始种群,采用PBSCR分配规则为任务序列中的每个测试任务选择合适的资源分配方式,并计算适应度值。
适应度值在组内每次迭代中都需要计算,它反应了解的好坏,决定了种群进化的方向。
具体步骤为:
步骤401、针对按分组编号选取的当前组,该组中有tn个任务,采用PBSCR分配规则为每个任务分配资源;
当前组的初始值为编号1的等分组。tn个任务编号为:{t1,t2,t3,....,ti,....tn};第ti个任务有mi种资源分配方式。在第1组内进行组内调度优化;产生内层优化的初始种群 P2(0)=I1,I2,...,I20,iter2=1。
步骤402、按任务编号依次选取当前任务,并遍历当前任务的所有可选方案,计算每种方案的完成时间并记录;
当前任务初始值为t1。第ti个任务的所有可选方案的完成时间为t1,t2,...,tmi;
步骤403、利用每种方案的完成时间,计算各方案的被选择概率;
针对第ti个任务的第j'种方案,被选择概率为:
累计概率为:
被选择概率p(j')的值越大,该方案被当前任务选择的可能性越大;
步骤404、根据概率的大小,采用轮盘赌方法为第ti个任务确定被选概率大的方案,产生一个[0,1]之间的服从均匀分布的随机数r,如果r<cp(1),则第一个方案被选中,否则选择满足cp(k-1)<r≤cp(k)的方案k。更新被方案k占用的仪器的可用时间,重复以上过程为剩余的任务选择资源分配方式。
步骤405、为当前组中tn个任务确定各自的方案后,经过排序得到当前组的若干解,每个解分别对应一个适应度值。
每个解对应一个组内任务排序,解码后采用PBSCR策略为每个任务排序确定资源分配方式;
步骤406、对当前任务的所有的适应度值,采用粒子群算法依次进行迭代优化,直至达到组内预定的最大迭代次数,得到当前组的一个最优适应度值fgn,该值对应当前组的最优解。
最优适应度值fgn是当前组中的所有测试任务,按照最优排序和最优方案选择调度后的完成时间。根据组内目标函数计算适应度值,此时得到的组内最优适应度值记为f1(iter1)。
步骤五、更新资源的当前状态,作为下一小组的初始条件,小组编号gn自增1,返回步骤四,直至gn=n,得到各小组内的最优适应度值fgn,进而得到各小组的最优解。
更新仪器状态,把第1组各仪器上的完成时间作为第2组内仪器的可用开始时间。iter1=iter1+1,在第2组内重复组内优化过程,得到第二组的最优适应度值f2(iter1);
迭代粒子群算法直至iter2=10,将最优分组方式下,每个组内的最优解首尾相连即得到整个调度问题的最优调度方案。
步骤六、将各小组的最优解进行解码,得到各组对应的最优调度方案,将所有的最优调度方案首尾相连,得到大规模问题在当前分组方式下的适应度值fn。
适应度值fn即当前分组方式中的最后一组完成的时间,也就是当前分组方式下所有组内的测试任务都完成的时间。
当前分组方式为随机等分方式,任何两个任务都应有机会分到一组,应再通过外层优化,确定哪些任务分为一组更为合适;
步骤七、采用实数编码方式再次随机选择N个测试任务,并等分组依次编号,返回步骤四;得到再次分组方式下的适应度值,直至达到设定的初始种群个数为止;
步骤八、将所有的分组方式下得到的适应度值,采用粒子群算法进行迭代优化,直到达到外层优化预定的最大迭代次数,得到最小的fn对应的最优解。
外层优化中每种分组方式对应一个解,不同的分组方式下,分到各个组的任务不同。每次重新分组后,重复步骤四至六,得到每个解的适应度值fn。
步骤九、根据实数编码方式对最小的fn对应的最优解进行解码,得到静态调度方案。
步骤十、利用静态调度方案对动态事件进行响应;
采用滚动窗口再调度技术,处理新任务到达和仪器故障等突发事件。
在动态事件发生时,将已完成的任务从任务窗口中移出;对于新任务到达事件,保持正在执行的任务的调度方案不变,将新任务和未执行的任务加入任务窗口,更新起始条件,重新对窗口中的任务进行再调度。
对于仪器故障事件,如果正在执行的任务所占用资源突然故障,则正在执行的任务、未执行的任务一起加入任务窗口,并去除它们包含故障资源的处理方案,更新起始条件和可用资源后重新对窗口中的任务进行再调度;如果正在执行的任务所占用资源没有故障,则保持其调度方案不变,仅去除未执行任务中包含故障资源的处理方案,更新起始条件和可用资源后进行再调度。
动态任务表中的数据表明,在第10秒时到达了两个新任务。因此在任务窗口中移出在 10秒前已完成的任务,在第10秒时正在执行的任务保持调度方案不变。更新仪器初始条件,将当前时刻的仪器空闲时间作为开始可用时间,按照上述步骤,对新到达任务和未执行的任务进行重新调度。
步骤十一、输出动态调度结果以及相应的调度甘特图。
静态调度方案和动态调度方案的甘特图如图4所示,动态调度结果是动态事件发生后新的调度策略,即新的任务执行顺序和资源分配方式。
Claims (2)
1.一种基于贪婪式分组策略的动态测试任务调度方法,其特征在于,具体步骤如下:
步骤一、针对自动测试任务调度场景,从测试实例中获取测试任务集的信息;
信息包括:测试任务表T={t1,t2,…,tj,...,tN},tj为第j个测试任务,N为测试任务总数;
仪器资源表R={r1,r2,…,ri,...,rM},ri为第i个仪器资源,M为仪器资源总数;
动态任务表D={d1,d2,...,dQ},Q为新任务的总个数;
故障仪器表B={b1,...,bS},S为故障仪器的总个数;
步骤二:根据实际需要选择目标函数并初始化,选择粒子群算法为搜索算法进行参数设置;同时选用实数编码方式;
目标函数为最大完工时间:
选择粒子群算法为外层优化和内层优化的搜索算法,并进行调度方法的参数设置;
外层优化确定当前所有测试任务的分组方式,内层优化是指确定分组后,每组内的测试任务选择各自方案的调度顺序;
组内优化目标改进为:
其中,makespan表示组内所有任务的最大完工时间;idlem表示仪器资源m上的总空闲时间;finm表示所有任务在仪器资源m上的完工时间;
采用适合于搜索算法与问题描述的实数编码方式,由每一位的数值大小决定分组方式及任务排序;通过选用N个0-1之间的实数作为N个测试任务,实数的大小决定了测试任务的排列顺序,选择所有测试任务等间隔分组的方式,则每个测试任务对应的实数的第一位小数决定了该测试任务选择的方案;
步骤三、采用实数编码方式随机选择N个测试任务,并等分成Gn组依次编号;
Gn组编号为gn={1,2,3,....n};
步骤四、按顺序依次选择等分组编号,并基于搜索算法进行当前组的内层优化,得到当前组内的最优解;
初始小组编号gn为1,所有资源的开始可用时间均置为0;
具体步骤为:
步骤401、针对按分组编号选取的当前组,该组中有tn个任务,采用基于概率的贪婪式资源分配规则PBSCR分配规则为每个任务分配资源;
当前组的初始值为编号1的等分组;tn个任务编号为:{t1,t2,t3,....,ti,....tn};第ti个任务有mi种资源分配方式;
步骤402、按任务编号依次选取当前任务,并遍历当前任务的所有可选方案,计算每种方案的完成时间并记录;
步骤403、利用每种方案的完成时间,计算各方案的被选择概率;
针对第ti个任务的第j'种方案,被选择概率为:
被选择概率的值越大,该方案被当前任务选择的可能性越大;
步骤404、根据概率的大小,采用轮盘赌方法为第ti个任务确定所选方案;
步骤405、为当前组中tn个任务确定各自的方案后,经过排序得到当前组的若干解,每个解分别对应一个适应度值;
每个解解码后,对应当前组内所有测试任务的任务排序和方案选择;
步骤406、对当前任务的所有的适应度值,采用粒子群算法依次进行迭代优化,直至达到预定的最大迭代次数,得到当前组的一个最优适应度值fgn,该值对应当前组的最优解;
最优适应度值fgn是当前组中的所有测试任务,按照最优排序和最优方案选择调度后的完成时间;
步骤五、更新资源的当前状态,作为下一小组的初始条件,小组编号gn自增1,返回步骤四,直至gn=n,得到各小组内的最优适应度值fgn,进而得到各小组的最优解;
步骤六、将各小组的最优解进行解码,得到各组对应的最优调度方案,将所有的最优调度方案首尾相连,得到当前分组方式下的适应度方案,通过适应度方案得到适应度值fn;
适应度值fn即当前分组方式中的最后一组完成的时间,也就是当前分组方式下所有组内的测试任务都完成的时间;
步骤七、采用实数编码方式再次随机选择N个测试任务,并等分组依次编号,返回步骤四;得到再次分组方式下的适应度值,直至达到设定的初始种群个数为止;
步骤八、将所有的分组方式下得到的适应度值,采用粒子群算法进行迭代优化,直到达到预定的最大迭代次数,得到最小的fn对应的最优解;
步骤九、根据实数编码方式对最小的fn对应的最优解进行解码,得到静态调度方案;
步骤十、利用静态调度方案对动态事件进行响应;
具体为:采用滚动窗口再调度技术,处理突发事件;
在动态事件发生时,将已完成的任务从任务窗口中移出;对于新任务到达事件,保持正在执行的任务的调度方案不变,将新任务和未执行的任务加入任务窗口,更新起始条件,重新对窗口中的任务进行再调度;
对于仪器故障事件,如果正在执行的任务所占用资源突然故障,则正在执行的任务、未执行的任务一起加入任务窗口,并去除它们包含故障资源的处理方案,更新起始条件和可用资源后重新对窗口中的任务进行再调度;如果正在执行的任务所占用资源没有故障,则保持其调度方案不变,仅去除未执行任务中包含故障资源的处理方案,更新起始条件和可用资源后进行再调度;
步骤十一、输出动态调度结果以及相应的调度甘特图;
动态调度结果是动态事件发生后新的调度策略,即新的任务执行顺序和资源分配方式。
2.如权利要求1所述的一种基于贪婪式分组策略的动态测试任务调度方法,其特征在于,其所适用的调度平台,包括如下模块:用户登录模块、实例添加及维护模块、数据库模块、测试实例导入模块、调度算法模块以及调度结果显示输出模块;
用户登录模块是整个平台的初始界面,用户由此输入用户名和密码,自动建立与数据库模块的连接,数据库模块将MySQL数据库与用户操作界面相连,用于存储用户输入的各种测试信息,并在用户维护后进行更新;
实例添加及维护模块用于对测试实例中提取的六种信息表进行维护,通过添加、删除或者修改将数据存储在数据库模块中;
所述的六种信息表为:初始测试任务集表、测试任务表、仪器资源表、测试方案集表、动态任务表以及故障仪器表;
测试实例导入模块为用户提供数据库中维护的可选实例,并在用户选择测试实例后,将相应实例的测试信息导入到调度算法模块,实现高效稳定的信息共享;
调度算法模块集成了所述的基于贪婪式分组策略的动态测试任务调度方法,在算法选择后显示相应的算法流程图,用户自行进行算法的参数设置;调度算法根据动态事件的类型,对动态事件进行响应,同时对解空间进行搜索,通过随机迭代对找到的最优解进行不断优化,直到满足设置的终止条件;
调度结果显示输出模块同时负责调度结果的输出与显示,将调度算法搜索到的最优解进行解码后,还原为相应的任务排序和资源分配方案,将最终结果以调度甘特图的形式呈现给用户,完成调度目标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811325860.7A CN109409763B (zh) | 2018-11-08 | 2018-11-08 | 基于贪婪式分组策略的动态测试任务调度方法及调度平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811325860.7A CN109409763B (zh) | 2018-11-08 | 2018-11-08 | 基于贪婪式分组策略的动态测试任务调度方法及调度平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109409763A CN109409763A (zh) | 2019-03-01 |
CN109409763B true CN109409763B (zh) | 2021-03-12 |
Family
ID=65472344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811325860.7A Active CN109409763B (zh) | 2018-11-08 | 2018-11-08 | 基于贪婪式分组策略的动态测试任务调度方法及调度平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109409763B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382941B (zh) * | 2020-03-09 | 2022-08-02 | 河海大学常州校区 | 一种多约束条件的并行任务调度方法 |
CN111724256A (zh) * | 2020-05-28 | 2020-09-29 | 天津大学 | 一种基于多核架构的智能合约执行优化方法 |
CN111800310B (zh) * | 2020-06-17 | 2021-11-26 | 北京智网信测科技有限公司 | 物联网测试云平台任务管理模块排期方法 |
CN111767991B (zh) * | 2020-06-29 | 2023-08-15 | 重庆大学 | 一种基于深度q学习的测控资源调度方法 |
CN111967642A (zh) * | 2020-07-10 | 2020-11-20 | 北京航空航天大学 | 一种基于时间窗策略的资源约束型动态船舶调度方法及调度平台 |
CN112800415B (zh) * | 2021-04-13 | 2021-09-07 | 深圳市云盾科技有限公司 | 一种基于贪婪算法模型的弱口令检测方法和系统 |
CN117391259B (zh) * | 2023-12-11 | 2024-03-26 | 山东建筑大学 | 一种混凝土预制构件分组生产调度方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069099A1 (en) * | 2000-12-05 | 2002-06-06 | Knox Theresa M. | Test plan review process |
CN101984412A (zh) * | 2010-10-13 | 2011-03-09 | 北京航空航天大学 | 一种基于分组和禁忌搜索的并行测试任务调度方法 |
CN102938102A (zh) * | 2012-10-19 | 2013-02-20 | 北京理工大学 | 一种带有批处理机的跨作业单元调度方法 |
CN103391206A (zh) * | 2012-05-07 | 2013-11-13 | 中国移动通信集团公司 | 一种任务调度方法及其装置 |
CN104504540A (zh) * | 2015-01-13 | 2015-04-08 | 郑州航空工业管理学院 | 基于多阶段智能优化算法的动态柔性作业车间调度控制方法 |
CN104901736A (zh) * | 2015-05-19 | 2015-09-09 | 华中科技大学 | 一种大规模天线场景下基于统计信道信息的下行传输方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101276594B1 (ko) * | 2011-02-17 | 2013-06-19 | 경희대학교 산학협력단 | Lng 플랜트 업무 프로세스 표준화 방법 및 시스템 |
-
2018
- 2018-11-08 CN CN201811325860.7A patent/CN109409763B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069099A1 (en) * | 2000-12-05 | 2002-06-06 | Knox Theresa M. | Test plan review process |
CN101984412A (zh) * | 2010-10-13 | 2011-03-09 | 北京航空航天大学 | 一种基于分组和禁忌搜索的并行测试任务调度方法 |
CN103391206A (zh) * | 2012-05-07 | 2013-11-13 | 中国移动通信集团公司 | 一种任务调度方法及其装置 |
CN102938102A (zh) * | 2012-10-19 | 2013-02-20 | 北京理工大学 | 一种带有批处理机的跨作业单元调度方法 |
CN104504540A (zh) * | 2015-01-13 | 2015-04-08 | 郑州航空工业管理学院 | 基于多阶段智能优化算法的动态柔性作业车间调度控制方法 |
CN104901736A (zh) * | 2015-05-19 | 2015-09-09 | 华中科技大学 | 一种大规模天线场景下基于统计信道信息的下行传输方法 |
Non-Patent Citations (4)
Title |
---|
Implementation of Genetic Algorithm to academic scheduling system;Hanny Prastya Hariyadi etal.;《2016 IEEE Region 10 Conference (TENCON)》;20161225;第2013-2016页 * |
一种基于动态分簇的无线传感器网络跟踪算法研究;边玮;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130815;第13-34页 * |
一种快速的网格任务调度算法的设计;许兰 等;《计算机应用与软件》;20080531;第25卷(第5期);第97-99页 * |
基于图染色理论和遗传蜂群算法的并行测试任务调度;吴勇 等;《计算机应用》;20150510;第35卷(第5期);第1280-1283页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109409763A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109409763B (zh) | 基于贪婪式分组策略的动态测试任务调度方法及调度平台 | |
Shen et al. | Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems | |
CN103235743A (zh) | 一种基于分解和最优解跟随策略的多目标测试任务调度方法 | |
CN111967642A (zh) | 一种基于时间窗策略的资源约束型动态船舶调度方法及调度平台 | |
CN113987936A (zh) | 一种基于混沌遗传算法的装备试验资源统筹调配方法 | |
CN115689246A (zh) | 用于确定排产计划的方法、装置、存储介质及处理器 | |
CN115169794A (zh) | 一种车间调度任务智能规划方法及系统 | |
CN110807618A (zh) | 一种动态排班方法、装置和设备 | |
Li et al. | Order assignment and scheduling under processing and distribution time uncertainty | |
Entezari-Maleki et al. | A genetic algorithm to increase the throughput of the computational grids | |
CN111553610B (zh) | 一种基于学习-遗忘效应的调度方法及系统 | |
Qi et al. | Solving resource availability cost problem in project scheduling by pseudo particle swarm optimization | |
CN112101791B (zh) | 呼叫中心多目标排班方法、系统、设备和介质 | |
CN106292617A (zh) | 一种用于提供及控制生产过程信息的方法与设备 | |
CN114819273A (zh) | 基于多Agent全局与局部优化结合的车间调度方法 | |
CN115204619A (zh) | 基于改进遗传算法解码的柔性车间调度方法、设备及系统 | |
CN111311406B (zh) | 基于电力市场并发交易的发电商交易能力管控系统及方法 | |
CN106970840A (zh) | 一种结合任务调度的软硬件划分方法 | |
CN115829214A (zh) | 一种排班方法及排班系统 | |
CN112668864A (zh) | 一种基于狮群算法的车间生产排产方法及系统 | |
CN115409426A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN117910718A (zh) | 一种基于随机数算法及其布谷鸟算法的智能排班系统 | |
Alsalman | Using Artificial Bat Swarm Algorithm In Scheduling Problem | |
CN111552561B (zh) | 一种任务处理方法及装置 | |
CN117035703A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |