CN110689320A - 一种基于协同进化算法的大规模多目标项目调度方法 - Google Patents
一种基于协同进化算法的大规模多目标项目调度方法 Download PDFInfo
- Publication number
- CN110689320A CN110689320A CN201910904407.XA CN201910904407A CN110689320A CN 110689320 A CN110689320 A CN 110689320A CN 201910904407 A CN201910904407 A CN 201910904407A CN 110689320 A CN110689320 A CN 110689320A
- Authority
- CN
- China
- Prior art keywords
- group
- individuals
- project
- individual
- groups
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000002068 genetic effect Effects 0.000 claims abstract description 20
- 238000011156 evaluation Methods 0.000 claims description 15
- 230000013011 mating Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 12
- 230000035772 mutation Effects 0.000 claims description 11
- 238000005457 optimization Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 10
- 230000009191 jumping Effects 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 8
- 238000010219 correlation analysis Methods 0.000 claims description 7
- 239000013598 vector Substances 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000010187 selection method Methods 0.000 claims description 3
- 230000010429 evolutionary process Effects 0.000 claims 1
- 238000011161 development Methods 0.000 description 10
- 239000000126 substance Substances 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- FGXWKSZFVQUSTL-UHFFFAOYSA-N domperidone Chemical compound C12=CC=CC=C2NC(=O)N1CCCN(CC1)CCC1N1C2=CC=C(Cl)C=C2NC1=O FGXWKSZFVQUSTL-UHFFFAOYSA-N 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Economics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Biology (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Physiology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Genetics & Genomics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于协同进化算法的大规模多目标项目调度方法,包括(1)构建基于协同进化算法的大规模多目标项目调度模型;(2)初始化算法参数;(3)产生初始父代群体;(4)对决策变量进行分组;(5)若迭代代数是分组个数的整数倍,则基于遗传算法依次进化每一个分组;否则,基于分组的贡献度选择一个分组进行遗传进化;(6)利用进化后得到的群体更新外部存储器,并更新分组的贡献度;(7)判断迭代代数是否达到最大值,若达到,则终止迭代,把当前外部存储器作为Pareto非支配解集输出。本发明能够解决大规模软件项目中的调度问题,并预测了项目中存在的不确定性,能够自适应地动态分配计算资源,生成的调度方案具有效率高、抗风险能力强的特点。
Description
技术领域
本发明涉及软件项目调度技术领域,特别是一种基于协同进化算法的大规模多目标项目调度方法。
背景技术
软件项目调度是指项目管理者根据预估的任务工作量,确定任务依次开发的顺序,并进行人力资源的分配,以在满足任务技能、软件工程师不能超负荷工作等约束条件以及任务优先级的前提下,优化软件项目的性能指标。软件项目调度是一个多目标优化的问题,因为项目中存在着工期、成本、鲁棒性、软件工程师满意度等多个需要同时考虑的优化目标。
在一些新兴的软件开发领域,如大型购物平台、云计算、移动通讯等,项目的规模往往很大,往往需要上百名软件开发人员协作完成大量的任务。随着任务数和开发人员数的增加,决策变量的个数增大,搜索空间的规模也将呈指数增长,从而使得软件项目调度问题变得非常复杂和难以求解。现有基于搜索的软件项目调度方法均将问题所有的决策变量视为一个整体进行优化。然而,当它们面临大规模软件项目调度问题时,搜索性能将大幅度下降。此外,实际项目的开发环境是不确定的,在项目的生命周期中,存在着需求变更、任务工作量调整等多种不确定因素。当面临这些扰动时,根据初始数据产生的最优调度方案的性能可能降低。因此亟需研究一种能够高效探索大规模搜索空间和处理不确定因素的新型项目调度方法。
借鉴自然界中不同生物群体之间相互作用、相互适应、协同进化的过程,协同进化算法把一个复杂的问题分解为若干个相对简单的子问题,分配给多个子群体分别进行进化操作,子群体之间定期进行信息的交互,通过合作的关系,共同完成对优化问题的求解。在这种框架下,搜索空间的规模降低,进化搜索集中在了相应于每个子问题的区域内,提高了求解大规模复杂软件项目调度问题的求解效率。协同进化算法的设计主要包括四个组成部分:问题分解、子问题间的合作方式、计算资源在子问题间的分配以及子问题的优化器。问题分解对协同进化算法的性能有重要的影响。有效的分解能够最大化同一分组中决策变量的相关性,并最小化不同分组之间的相关性。它能够通过合并每个子问题的解,产生原问题的整体最优解。然而,由于事先无法获取变量之间的关系以及大规模搜索空间的结构,难以确定出一个理想的问题分解方法。子问题间的合作方式研究的是信息间的交换方式。计算资源在子问题间的分配研究如何通过对计算资源进行有效利用,使得更多的搜索操作集中在有潜力找到最优解的区域内。如果能够采用一种有效的子问题优化器,那么子问题对应的区域便能够被彻底地搜索,同时能够更好地利用精英个体的优良性能。
目前已有的项目调度方法存在以下不足:
1)大多方法假设项目中的所有信息都是预先可知且确定不变的,显然,当实际项目的开发环境存在不确定因素时,依据确定信息方法产生的调度方案存在抗干扰能力弱,鲁棒性差的问题。
2)求解大规模软件项目调度问题的性能低下。当面临任务繁多、开发人员数量大的大规模软件项目调度问题时,由于搜索空间巨大,现有调度方法存在着收敛速度慢、早熟、局部搜索能力弱、调度效率低下等问题,难以有效地获取最佳调度解。
发明内容
发明目的:本发明的目的在于提供一种基于协同进化算法的大规模多目标项目调度方法,通过对复杂决策空间的分解,采用分工合作的方式,实现对大规模空间的有效搜索,避免陷入局部最优,同时考虑不确定属性,实现软件工程师在各项任务中的有效分配。
技术方案:本发明所述的一种基于协同进化算法的大规模多目标项目调度方法,包括以下步骤:
(1)构建基于协同进化算法的大规模多目标项目调度模型,读取项目的输入信息,定义优化目标,设定约束条件;
(2)初始化协同进化算法的参数;
(3)产生初始父代群体,针对不确定属性,随机采样一组值δq,q=1,2,…,N,N为采样点的个数;计算初始父代群体中每个个体的多目标值,并进行约束处理;
(4)对初始父代群体进行Pareto非支配排序,求得每个个体所在的非支配层;
(5)对决策变量进行相关性分析,把部分决策变量分解成E1个分组,将分组结果记录在分组集合Subgroups中,剩余未分组的变量记录在未分组变量集合V2中;
(6)针对不确定属性,随机采样一组值φq,q=1,2,…,N;如果迭代次数计数器ite是分组数E1的整数倍,则执行以下步骤(a)-(b),否则跳转至步骤(7);
(a)将集合V2中的每个变量随机分配到已有的E1个分组中的任一个;令分组计数器k=1;
(b)将第k个分组的贡献度Fk设为0;
(c)采用基于遗传算法的子问题优化器优化第k个分组,并判断该分组是否发生停滞;
(d)利用第k个分组进化后得到的群体基于Pareto支配更新外部存储器;若外部存储器的规模超过了设定的最大规模nArchive,则移除与最近邻个体的范数距离最小的个体以裁剪外部存储器;
(e)如果第k个分组未发生停滞,则更新该分组的贡献度Fk;
(f)k=k+1;若k≤E1,则跳转至步骤(b),否则,跳转至步骤(8);
(7)采用轮盘赌选择法并基于各分组的贡献度选择一个分组,对其使用基于遗传算法的子问题优化器进行进化,并判断该分组是否发生停滞;利用该分组进化后得到的群体基于Pareto支配更新外部存储器;如果外部存储器的规模超过了设定的最大规模nArchive,则移除与最近邻个体的范数距离最小的个体以裁剪外部存储器;如果该分组未发生停滞,则更新该分组的贡献度,否则,置该分组的贡献度为0;
(8)迭代次数计数器ite=ite+1;
(9)终止准则判断:如果ct<最大目标评价次数NmbEvl,则转至步骤(6);否则,算法终止,把外部存储器群体archive作为Pareto非支配调度方案解集输出。
进一步地,步骤(1)所述项目的输入信息包括每个任务的工作量、技能要求和任务优先级图,每位软件工程师所掌握的技能、对从事各项技能的期望程度、可在本项目中投入的最大工作量、正常月薪和加班月薪;所述优化目标包括项目工期、项目成本、调度方案的鲁棒性和软件工程师的满意度;所述约束条件包括任务技能约束和软件工程师不能超负荷工作的约束。
进一步地,步骤(2)所述初始化协同进化算法的参数如下:设置协同进化算法的最大目标评价次数NmbEvl、群体规模nPop、外部存储器的最大规模nArchive,基于遗传算法的子问题优化器的最大进化代数G,交叉概率Pc,变异概率Pm,决策变量相关性分析中个体选择的数目为nInta,设迭代次数计数器ite=0。
进一步地,所述步骤(3)的实现过程如下:
设置外部存储器archive为空集,目标评价次数计数器ct=nPop;
随机生成nPop个个体构成初始父代群体P,每个个体表示一个工作量分配矩阵:
X=(xij)nEmployee×nTask,
其中,nEmployee为项目中软件工程师的个数,nTask为项目中的任务数量;xij为第i个工程师ei在第j项任务Tj中投入的工作量占全日制工作量的百分比,i=1,2,…,nEmployee,j=1,2,...,nTask;为第i个工程师ei能够对本项目投入的最大工作量占全日制工作量的百分比;每个个体X中含有nEmployee×nTask个决策变量xij;计算初始群体中每个个体的多目标值durationI,costI,robustness,satisfaction,其中durationI,costI,robustness,satisfaction分别表示项目工期、项目成本、调度方案的鲁棒性和软件工程师的满意度,并进行约束处理。
进一步地,所述步骤(5)包括以下步骤:
(51)将决策变量分为两个集合V1和V2:找出在群体P的所有个体中,变量值等于0的所有变量,并将这些变量的集合设为V2;剩余的变量集合设为V1;
(52)设置分组集合Sub_groups为空集;
(53)对集合V1中的每个变量xk,设置临时记录集合selSet为空集,依次判断xk与Sub_groups中已有的每一个分组group的关系,即对group中的任一个变量xl,从群体P中随机选取nInta个个体,分别判断xk和xl在这nInta个个体中的相关性,只要xk和xl在其中的一个个体中相关,则认为xk和xl相关,xk和group也相关,将group加入selSet中;如果xk与group中的所有变量都不相关,则认为xk和group不相关;当判断完变量xk与Sub_groups中所有分组的相关性之后,如果此时selSet是空集,将集合{xk}加入到集合Sub_groups中,否则,将selSet从Sub_groups中移除,将sgroup设置为xk和selSet中的所有变量的集合,将sgroup加入到Sub_groups中;上述过程重复执行,直到对V1中的所有变量都完成判断;
(54)设置E1为Sub_groups中分组的个数;如果E1>min{nEmployee,nTask},min{nEmployee,nTask}表示nEmployee和nTask中的最小值,则实施步骤(55),否则跳转至步骤(56);
(55)设置record1为包含多于1个变量的分组集合,ns1为这些分组的个数;设置record2为包含1个变量的分组集合,ns2为这些分组的个数;如果ns1>min{nEmployee,nTask},则从record1中随机选择[ns1-min{nEmployee,nTask}]个分组并将它们从集合record1中移除;对选取出的每一个分组,将它与从record1剩余分组中随机选择的一组进行合并;否则如果ns1<min{nEmployee,nTask},则从集合record2中随机选择[min{nEmployee,nTask}-ns1]个分组,将它们加入集合record1中,并将它们从集合record2中移除;设置Subgroups等于集合record1;设置E1为Sub_groups中分组的个数;将集合record2所有分组中的变量加入集合V2;
(56)输出分组结果Subgroups,分组个数E1,以及剩余未分组的变量集合V2。
进一步地,所述步骤(c)包括以下步骤:
(c1)输入当前待进化的分组Group,令进化代数t=1;
(c2)令Par_P=P,即将当前父代群体P记录在原有父代群体Par_P中;归一化父代群体P中每一个个体的目标向量,计算在归一化后的目标空间中,P中每一个个体到原点的L1范数距离;
(c3)对父代群体P执行选择、交叉和变异操作,产生新的个体构成临时群体new_P;
所述选择操作是二进制联赛选择,从P中随机选取2个不同的个体,从中挑选较优的一个个体加入交配池,此过程循环nPop遍,nPop为群体规模,将交配池中的nPop个个体随机配对为nPop/2对;在比较两个个体时,将个体所在的非支配层作为第一个比较准则,当两个个体的非支配层相同时,它们与原点的L1范数距离作为第二个比较准则;所述交叉操作是依据交叉概率Pc,确定交配池中的每对个体是否需要进行交叉操作;如果某对个体需要进行交叉操作,则对这两个交配个体工作量分配矩阵中的每一行或列,以0.5的概率进行交换;所述变异操作是对于交叉操作后产生的新个体,依据变异概率Pm,确定该个体工作量分配矩阵中的每个元素是否需要进行变异操作;如果需要,则将该元素替换为从区间中随机产生的另一个值;
(c4)令Offspring=P,即将当前父代群体P记录在子代群体Offspring中;将临时群体new_P中每个个体在分组Group的变量上的值,赋给Offspring中每个相应个体的对应变量;计算子代群体Offspring中每个个体的多目标值,并进行约束处理;令目标评价次数计数器ct=ct+nPop;
(c5)对父代群体P和子代群体Offspring的并集P∪Offspring进行Pareto非支配排序,求得每个个体所在的非支配层;从并集P∪Offspring中选择最好的一半个体作为新的父代群体P,将个体的非支配层作为选择的第一依据,当个体的非支配层相同时,将个体到原点的L1范数距离作为选择的第二依据;
(c6)判断分组是否发生停滞;采用集合覆盖测度C比较新一代的父代群体P和原有的父代群体Par_P;计算[c_P_Par]=C(P,Par_P);[c_Par_P]=C(Par_P,P);设Group包含的变量个数为nGroup,如果连续nGroup个进化代都有c_P_Par<c_Par_P,则认为该分组发生了停滞,终止基于遗传算法的子问题优化器的进化过程,跳转至步骤(c7),否则,令进化代数t=t+1,如果t≤G,G为基于遗传算法的子问题优化器的最大进化代数,则跳转至步骤(c2),如果t>G,则跳转至步骤(c7);
(c7)输出当前父代群体P,分组的停滞状态,目标评价次数计数器ct。
有益效果:与现有技术相比,本发明的有益效果:1、本发明针对大规模软件项目调度问题搜索空间庞大的特点,采用协同进化算法,将搜索空间分解为若干个分组,对这些分组分别基于引入问题特征的遗传算法进行进化寻优,并根据分组对解集收敛性的贡献程度分配计算资源,使得更多的搜索操作集中在更有潜力找到最优解的区域内;通过分组间的分工合作,高效地搜索到一个可行的Pareto非支配解集,这个解集具有较好的收敛性能及分布多样性,对实际大规模软件项目的成功实施具有重要意义;2、本发明能够处理实际项目开发环境中存在的不确定性属性,使得产生的调度方案具有较强的鲁棒性,即抗风险能力,更适合处理现实世界中具有不确定性的大规模软件项目调度问题;3、本发明同时优化了项目的工期、成本、鲁棒性以及开发人员的满意度,并采用协同进化算法对多个目标并行处理,从而能够为项目管理者提供一组反映目标间不同折中程度的调度方案,为其做出最终的决策提供有力的参考。
附图说明
图1为本发明的流程图;
图2为本实施例中的任务优先级图;
图3为本发明中个体的表示方法和其对应的分配矩阵示例图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
一个实际项目中,有64个软件工程师和32项任务(即nEmployee=64,nTask=32),共有10个技能要求(设为1、2、3、4、5、6、7、8、9、10)。任务优先级图如图2所示。每项任务Tj要求的工作量具有不确定性,其初始估计工作量及技能要求集合reqj如表1所示。每个软件工程师ei对整个项目投入的最大允许工作量正常月薪加班月薪所掌握的技能集合skilli、以及对从事各项技能的期望程度如表2所示。
表1
表2
使用本发明提出的基于协同进化算法的大规模多目标项目调度方法求解该项目实施例的调度方案,如图2所示,具体步骤如下:
1、读取项目的输入信息,包括任务属性(见表1)和软件工程师的属性(见表2);给出优化目标的定义,并设定约束条件:
目标“项目工期”表示完成当前所有任务的工作量所花费的时间开销,它定义为:
目标“项目成本”表示完成项目所有任务所花费的财力,它定义为:
其中,t'表示项目处于开发阶段的某一个月;表示在t'期间付给软件工程师ei的薪酬;T_active_set(t')表示在t'期间正在进行开发的任务集合;xij表示ei在任务Tj中投入的工作量占全日制工作量的百分比;表示ei能够对整个项目投入的最大工作量占全日制工作量的百分比,当时,表示ei能够加班工作;和分别表示ei的正常月薪和加班月薪。
目标“调度方案的鲁棒性”定义为:
调度方案的鲁棒性采用基于景象的方法定义,将一个调度方案在不确定属性的多种采样值{θq|q=1,2,…,N}或{φq|q=1,2,…,N}下进行仿真,以比较项目成本或工期的实际值与预估值之间的差值;其中,θq或φq是不确定属性的第q个采样值,N是样本个数;durationq和costq分别是采样值θq或φq下相应的项目工期和成本目标值;λ为权系数。
目标“软件工程师的满意度”评价每个软件工程师对所分配任务和工作量的平均不期望程度,定义为:
f4的值越小,员工对所生成的调度方案的满意度越高;其中,衡量软件工程师ei对第k个技能的期望程度,reqj是任务Tj要求的技能集合,skilli是ei掌握的技能集合,|reqj∩skilli|是集合reqj∩skilli中元素的个数。
“项目工期”、“项目成本”、“调度方案的鲁棒性”和“软件工程师的满意度”的目标值均越小越好。
本发明设定的约束条件包括任务技能约束,以及软件工程师不能超负荷工作的约束。
任务技能约束指参与某项任务的所有软件工程师必须具备该任务要求的所有技能,即
其中,reqj表示任务Tj所需求的技能的集合;skilli表示软件工程师ei所掌握的所有技能的集合。
软件工程师不能超负荷工作的约束指在任一时期t'≥0,一个软件工程师为正在进行开发的任务同时投入的工作量之和不超过他对整个项目投入的最大允许工作量,即
2、初始化协同进化算法的参数:
设置协同进化算法的最大目标评价次数NmbEvl=100000、群体规模nPop=50、外部存储器的最大规模nArchive=100,基于遗传算法的子问题优化器的最大进化代数G=25,交叉概率Pc=0.9,变异概率Pm=1/(nEmployee×nTask),决策变量相关性分析中个体选择的数目为nInta=6,设迭代次数计数器ite=0。
3、产生初始父代群体,针对不确定属性,随机采样一组值δq,q=1,2,…,N,N为采样点的个数,设置N=30;计算初始父代群体中每个个体的多目标值,并进行约束处理;设置外部存储器archive为空集,目标评价次数计数器ct=nPop。
随机生成nPop个个体构成初始父代群体P,每个个体表示一个工作量分配矩阵:
X=(xij)nEmployee×nTask
其中,nEmployee为项目中软件工程师的个数,nTask为项目中的任务数量;xij为第i个工程师ei在第j项任务Tj中投入的工作量占全日制工作量的百分比,i=1,2,…,nEmployee,j=1,2,...,nTask;为第i个工程师ei能够对本项目投入的最大工作量占全日制工作量的百分比;本发明个体使用实数编码,每个个体X中含有nEmployee×nTask个决策变量xij,xij的取值范围是在计算每个个体的目标值时,需将个体解码为工作量分配矩阵;例如,假设项目中有三个软件工程师,三项任务,即nEmployee=3,nTask=3,则个体的表示方法和其对应的工作量分配矩阵如图3所示。
计算初始群体中每个个体的多目标值durationI,costI,robustness,satisfaction,其中durationI,costI,robustness,satisfaction分别表示项目工期,项目成本,调度方案的鲁棒性和软件工程师的满意度,并进行约束处理。
约束处理的方法如下:
如果某个体违反了任务技能约束,则将它的各个目标值分别设置为一个很高的惩罚值。假设reqsk为该个体中未满足约束的技能总数,则每个目标按如下公式分别惩罚:
robustness=reqsk·2·Crob
satisfaction=reqsk·2·nTask
其中,k和Crob分别是一个常数,本发明设置k=7,Crob=100。
如果某个个体违反了软件工程师不能超负荷工作的约束,则采用将工作量归一化的方法;如果分配方案使软件工程师ei在t'时刻超负荷工作,即则将原先为他分配的在每个活动任务(即t'时刻正在开发的任务)中的工作量除以如果则不对工作量进行归一化处;本发明采用的归一化处理方法能够保证软件工程师不能超负荷工作的约束始终被满足。
4、对初始父代群体进行Pareto非支配排序,求得每个个体所在的非支配层。
5、对决策变量进行相关性分析,把部分决策变量分解成E1个分组,将分组结果记录在分组集合Subgroups中,剩余未分组的变量记录在未分组变量集合V2中。
对决策变量进行相关性分析的具体步骤如下:
(1)将决策变量分为两个集合V1和V2:找出在群体P的所有个体中,变量值等于0的所有变量,并将这些变量的集合设为V2;剩余的变量集合设为V1;
(2)设置分组集合Sub_groups为空集;
(3)对集合V1中的每个变量xk,设置临时记录集合selSet为空集,依次判断xk与Sub_groups中已有的每一个分组group的关系,即对group中的任一个变量xl,从群体P中随机选取nInta个个体,分别判断xk和xl在这nInta个个体中的相关性,只要xk和xl在其中的一个个体中相关,则认为xk和xl相关,xk和group也相关,将group加入selSet中;如果xk与group中的所有变量都不相关,则认为xk和group不相关;当判断完变量xk与Sub_groups中所有分组的相关性之后,如果此时selSet是空集,将集合{xk}加入到集合Sub_groups中,否则,将selSet从Sub_groups中移除,将sgroup设置为xk和selSet中的所有变量的集合,将sgroup加入到Sub_groups中;上述过程重复执行,直到对V1中的所有变量都完成判断;
所述两个变量xk和xl之间的相关性定义如下:
不失一般性,假设优化一个多目标最小化问题:
min F=[f1,f2,…,fm]
其中,F是目标向量,m是目标个数;如果存在一个决策向量x=[x1,x2,…,xn]∈Rn,Rn是n维实数空间,c1,c2,d1,d2∈R,且j∈{1,2,…,m},满足
(4)设置E1为Sub_groups中分组的个数;如果E1>min{nEmployee,nTask},min{nEmployee,nTask}表示nEmployee和nTask中的最小值,则实施以下步骤,否则跳转至步骤(5);
(4.1)设置record1为包含多于1个变量的分组集合,ns1为这些分组的个数;设置record2为包含1个变量的分组集合,ns2为这些分组的个数;
(4.2)如果ns1>min{nEmployee,nTask},则从record1中随机选择[ns1-min{nEmployee,nTask}]个分组并将它们从集合record1中移除;对选取出的每一个分组,将它与从record1剩余分组中随机选择的一组进行合并;否则如果ns1<min{nEmployee,nTask},则从集合record2中随机选择[min{nEmployee,nTask}-ns1]个分组,将它们加入集合record1中,并将它们从集合record2中移除;
(4.3)设置Subgroups等于集合record1;设置E1为Sub_groups中分组的个数;
(4.4)将集合record2所有分组中的变量加入集合V2;
(5)输出分组结果Subgroups,分组个数E1,以及剩余未分组的变量集合V2。
6、针对不确定属性,随机采样一组值φq,q=1,2,…,N,设置N=30;如果迭代次数计数器ite是分组数E1的整数倍,则执行以下步骤(6.1)-(6.6),否则跳转至步骤7。
(6.1)将集合V2中的每个变量随机分配到已有的E1个分组中的任一个;令分组计数器k=1。
(6.2)将第k个分组的贡献度Fk设为0。
(6.3)采用基于遗传算法的子问题优化器优化第k个分组,并判断该分组是否发生停滞。
基于遗传算法的子问题优化器的具体步骤如下:
i)输入当前待进化的分组Group,令进化代数t=1;
ii)令Par_P=P,即将当前父代群体P记录在原有父代群体Par_P中;归一化父代群体P中每一个个体的目标向量,计算在归一化后的目标空间中,P中每一个个体到原点的L1范数距离;
给定两个向量a=[a1,a2,…,an]和b=[b1,b2,…,bn],所述L1范数距离定义如下:
iii)对父代群体P执行选择、交叉和变异操作,产生新的个体构成临时群体new_P;
所述选择操作是二进制联赛选择,从P中随机选取2个不同的个体,从中挑选较优的一个个体加入交配池,此过程循环nPop遍,nPop为群体规模,将交配池中的nPop个个体随机配对为nPop/2对;在比较两个个体时,将个体所在的非支配层作为第一个比较准则,当两个个体的非支配层相同时,它们与原点的L1范数距离作为第二个比较准则;所述交叉操作是依据交叉概率Pc,确定交配池中的每对个体是否需要进行交叉操作;如果某对个体需要进行交叉操作,则对这两个交配个体工作量分配矩阵中的每一行(或列),以0.5的概率进行交换;所述变异操作是对于交叉操作后产生的新个体,依据变异概率Pm,确定该个体工作量分配矩阵中的每个元素是否需要进行变异操作;如果需要,则将该元素替换为从区间中随机产生的另一个值;
iv)令Offspring=P,即将当前父代群体P记录在子代群体Offspring中;将临时群体new_P中每个个体在分组Group的变量上的值,赋给Offspring中每个相应个体的对应变量;计算子代群体Offspring中每个个体的多目标值,并进行约束处理;令目标评价次数计数器ct=ct+nPop;
v)对父代群体P和子代群体Offspring的并集P∪Offspring进行Pareto非支配排序,求得每个个体所在的非支配层;从并集P∪Offspring中选择最好的一半个体作为新的父代群体P,将个体的非支配层作为选择的第一依据,当个体的非支配层相同时,将个体到原点的L1范数距离作为选择的第二依据;
vi)判断分组是否发生停滞;采用集合覆盖测度C比较新一代的父代群体P和原有的父代群体Par_P;计算[c_P_Par]=C(P,Par_P);[c_Par_P]=C(Par_P,P);设Group包含的变量个数为nGroup,如果连续nGroup个进化代都有c_P_Par<c_Par_P,则认为该分组发生了停滞,终止基于遗传算法的子问题优化器的进化过程,跳转至步骤vii),否则,令进化代数t=t+1,如果t≤G,G为基于遗传算法的子问题优化器的最大进化代数,则跳转至步骤ii),如果t>G,则跳转至步骤vii);
集合覆盖测度C的定义如下:
给定两个解集X1和X2,集合覆盖测度C将有序对(X1,X2)映射到区间[0,1]中的一个值:
其中x1<x2表示解x1Pareto支配x2;C(X1,X2)>C(X2,X1)表示集合X1在集合覆盖测度C上优于集合X2;
vii)输出当前父代群体P,分组的停滞状态,目标评价次数计数器ct。
(6.5)如果第k个分组未发生停滞,则更新该分组的贡献度Fk。
假设oldPk和Pk分别是第k个分组在基于遗传算法的子问题优化器实施进化前后的群体,基于集合覆盖测度C更新第k个分组的贡献度Fk:
其中,Fk′是第k个分组在本次更新之前的贡献度,nPop是群体规模。
(6.6)k=k+1;如果k≤E1,则跳转至步骤(6.2),否则,跳转至步骤8。
7、采用轮盘赌选择法并基于各分组的贡献度选择一个分组,对其使用基于遗传算法的子问题优化器进行进化,并判断该分组是否发生停滞;利用该分组进化后得到的群体基于Pareto支配更新外部存储器;如果外部存储器的规模超过了设定的最大规模nArchive,则移除与最近邻个体的范数距离最小的个体以裁剪外部存储器;如果该分组未发生停滞,则更新该分组的贡献度,否则,置该分组的贡献度为0。
(8)迭代次数计数器ite=ite+1。
(9)终止准则判断:如果ct<最大目标评价次数NmbEvl,则转至步骤6;否则,算法终止,把外部存储器群体archive作为Pareto非支配调度方案解集输出。
本发明的效果可以通过以下仿真实验进一步说明:
1.实验条件:
在CPU为Intel core i5-5200U 2.2GHz、内存4GB、WINDOWS 7系统上使用Matlab2010进行仿真。
2.实验内容:
本发明针对上述具有64个软件工程师、32个任务、10个技能要求的项目实施例求解项目调度方案。本实施例中,每项任务Tj要求的工作量具有不确定性。该项目的任务优先级图如图2所示,图2中1到32分别表示任务的编号,有向连线表示任务开发需满足的先后次序,其中,任务T13、T18、T21、T23、T24、T27没有有向连线相连,表示在它们开始之前,不需要先完成其它的任务,同时,它们的优先级也不比其它任何任务高。
3.实验结果:
采用本发明与现有的多目标进化算法PAES(Pareto Archived EvolutionStrategy,Pareto解存档的进化策略)分别对大规模多目标项目调度问题进行求解。图1为实施例的任务优先级图。将两种方法在实施例中分别独立地运行20次。采用集合覆盖测度C分别对两种方法在每次运行后得到的Pareto非支配解集进行比较,表3列出了两种方法在20次运行中求得的集合覆盖测度C的平均值,表4分别列出了两种方法在20次运行中的最佳及平均项目工期,以及最佳及平均项目成本。
表3
C(本发明,PAES) | 0.8091 |
C(PAES,本发明) | 0 |
表4
由表3可见,本发明在集合覆盖测度C上的性能远远优于现有的多目标进化算法PAES,说明本发明能够搜索到一组收敛性更优的Pareto非支配个体。由表4可见,与现有的多目标进化算法PAES相比,本发明大幅度降低了项目的工期和成本,显著增强了项目开发的效率。
综上,本发明提出的基于协同进化算法的大规模多目标项目调度方法考虑了问题搜索空间庞大的特点,能够处理实际项目开发环境中存在的不确定性属性。它同时优化了项目的工期、成本、调度方案的鲁棒性以及开发人员的满意度,使得生成的调度方案在保持较低项目成本和较短工期的同时,具备了更强的抗风险能力,并且兼顾了开发人员的满意度。与现有的基于多目标进化算法PAES的调度技术相比,本发明能够显著降低项目的开发工期和成本,因此,本发明非常适合处理现实世界中的大规模项目调度问题。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (6)
1.一种基于协同进化算法的大规模多目标项目调度方法,其特征在于,包括以下步骤:
(1)构建基于协同进化算法的大规模多目标项目调度模型,读取项目的输入信息,定义优化目标,设定约束条件;
(2)初始化协同进化算法的参数;
(3)产生初始父代群体,针对不确定属性,随机采样一组值δq,q=1,2,…,N,N为采样点的个数;计算初始父代群体中每个个体的多目标值,并进行约束处理;
(4)对初始父代群体进行Pareto非支配排序,求得每个个体所在的非支配层;
(5)对决策变量进行相关性分析,把部分决策变量分解成E1个分组,将分组结果记录在分组集合Subgroups中,剩余未分组的变量记录在未分组变量集合V2中;
(6)针对不确定属性,随机采样一组值φq,q=1,2,…,N;如果迭代次数计数器ite是分组数E1的整数倍,则执行以下步骤(a)-(b),否则跳转至步骤(7);
(a)将集合V2中的每个变量随机分配到已有的E1个分组中的任一个;令分组计数器k=1;
(b)将第k个分组的贡献度Fk设为0;
(c)采用基于遗传算法的子问题优化器优化第k个分组,并判断该分组是否发生停滞;
(e)如果第k个分组未发生停滞,则更新该分组的贡献度Fk;
(f)k=k+1;若k≤E1,则跳转至步骤(b),否则,跳转至步骤(8);
(7)采用轮盘赌选择法并基于各分组的贡献度选择一个分组,对其使用基于遗传算法的子问题优化器进行进化,并判断该分组是否发生停滞;利用该分组进化后得到的群体基于Pareto支配更新外部存储器;如果外部存储器的规模超过了设定的最大规模nArchive,则移除与最近邻个体的范数距离最小的个体以裁剪外部存储器;如果该分组未发生停滞,则更新该分组的贡献度,否则,置该分组的贡献度为0;
(8)迭代次数计数器ite=ite+1;
(9)终止准则判断:如果ct<最大目标评价次数NmbEvl,则转至步骤(6);否则,算法终止,把外部存储器群体archive作为Pareto非支配调度方案解集输出。
2.根据权利要求1所述的一种基于协同进化算法的大规模多目标项目调度方法,其特征在于,步骤(1)所述项目的输入信息包括每个任务的工作量、技能要求和任务优先级图,每位软件工程师所掌握的技能、对从事各项技能的期望程度、可在本项目中投入的最大工作量、正常月薪和加班月薪;所述优化目标包括项目工期、项目成本、调度方案的鲁棒性和软件工程师的满意度;所述约束条件包括任务技能约束和软件工程师不能超负荷工作的约束。
3.根据权利要求1所述的一种基于协同进化算法的大规模多目标项目调度方法,其特征在于,步骤(2)所述初始化协同进化算法的参数如下:设置协同进化算法的最大目标评价次数NmbEvl、群体规模nPop、外部存储器的最大规模nArchive,基于遗传算法的子问题优化器的最大进化代数G,交叉概率Pc,变异概率Pm,决策变量相关性分析中个体选择的数目为nInta,设迭代次数计数器ite=0。
4.根据权利要求1所述的一种基于协同进化算法的大规模多目标项目调度方法,其特征在于,所述步骤(3)的实现过程如下:
设置外部存储器archive为空集,目标评价次数计数器ct=nPop;
随机生成nPop个个体构成初始父代群体P,每个个体表示一个工作量分配矩阵:
X=(xij)nEmployee×nTask,
其中,nEmployee为项目中软件工程师的个数,nTask为项目中的任务数量;xij为第i个工程师ei在第j项任务Tj中投入的工作量占全日制工作量的百分比,i=1,2,…,nEmployee,j=1,2,...,nTask;为第i个工程师ei能够对本项目投入的最大工作量占全日制工作量的百分比;每个个体X中含有nEmployee×nTask个决策变量xij;计算初始群体中每个个体的多目标值durationI,costI,robustness,satisfaction,其中durationI,costI,robustness,satisfaction分别表示项目工期、项目成本、调度方案的鲁棒性和软件工程师的满意度,并进行约束处理。
5.根据权利要求1所述的一种基于协同进化算法的大规模多目标项目调度方法,其特征在于,所述步骤(5)包括以下步骤:
(51)将决策变量分为两个集合V1和V2:找出在群体P的所有个体中,变量值等于0的所有变量,并将这些变量的集合设为V2;剩余的变量集合设为V1;
(52)设置分组集合Sub_groups为空集;
(53)对集合V1中的每个变量xk,设置临时记录集合selSet为空集,依次判断xk与Sub_groups中已有的每一个分组group的关系,即对group中的任一个变量xl,从群体P中随机选取nInta个个体,分别判断xk和xl在这nInta个个体中的相关性,只要xk和xl在其中的一个个体中相关,则认为xk和xl相关,xk和group也相关,将group加入selSet中;如果xk与group中的所有变量都不相关,则认为xk和group不相关;当判断完变量xk与Sub_groups中所有分组的相关性之后,如果此时selSet是空集,将集合{xk}加入到集合Sub_groups中,否则,将selSet从Sub_groups中移除,将sgroup设置为xk和selSet中的所有变量的集合,将sgroup加入到Sub_groups中;上述过程重复执行,直到对V1中的所有变量都完成判断;
(54)设置E1为Sub_groups中分组的个数;如果E1>min{nEmployee,nTask},min{nEmployee,nTask}表示nEmployee和nTask中的最小值,则实施步骤(55),否则跳转至步骤(56);
(55)设置record1为包含多于1个变量的分组集合,ns1为这些分组的个数;设置record2为包含1个变量的分组集合,ns2为这些分组的个数;如果ns1>min{nEmployee,nTask},则从record1中随机选择[ns1-min{nEmployee,nTask}]个分组并将它们从集合record1中移除;对选取出的每一个分组,将它与从record1剩余分组中随机选择的一组进行合并;否则如果ns1<min{nEmployee,nTask},则从集合record2中随机选择[min{nEmployee,nTask}-ns1]个分组,将它们加入集合record1中,并将它们从集合record2中移除;设置Subgroups等于集合record1;设置E1为Sub_groups中分组的个数;将集合record2所有分组中的变量加入集合V2;
(56)输出分组结果Subgroups,分组个数E1,以及剩余未分组的变量集合V2。
6.根据权利要求1所述的一种基于协同进化算法的大规模多目标项目调度方法,其特征在于,所述步骤(c)包括以下步骤:
(c1)输入当前待进化的分组Group,令进化代数t=1;
(c2)令Par_P=P,即将当前父代群体P记录在原有父代群体Par_P中;归一化父代群体P中每一个个体的目标向量,计算在归一化后的目标空间中,P中每一个个体到原点的L1范数距离;
(c3)对父代群体P执行选择、交叉和变异操作,产生新的个体构成临时群体new_P;
所述选择操作是二进制联赛选择,从P中随机选取2个不同的个体,从中挑选较优的一个个体加入交配池,此过程循环nPop遍,nPop为群体规模,将交配池中的nPop个个体随机配对为nPop/2对;在比较两个个体时,将个体所在的非支配层作为第一个比较准则,当两个个体的非支配层相同时,它们与原点的L1范数距离作为第二个比较准则;所述交叉操作是依据交叉概率Pc,确定交配池中的每对个体是否需要进行交叉操作;如果某对个体需要进行交叉操作,则对这两个交配个体工作量分配矩阵中的每一行或列,以0.5的概率进行交换;所述变异操作是对于交叉操作后产生的新个体,依据变异概率Pm,确定该个体工作量分配矩阵中的每个元素是否需要进行变异操作;如果需要,则将该元素替换为从区间中随机产生的另一个值;
(c4)令Offspring=P,即将当前父代群体P记录在子代群体Offspring中;将临时群体new_P中每个个体在分组Group的变量上的值,赋给Offspring中每个相应个体的对应变量;计算子代群体Offspring中每个个体的多目标值,并进行约束处理;令目标评价次数计数器ct=ct+nPop;
(c5)对父代群体P和子代群体Offspring的并集P∪Offspring进行Pareto非支配排序,求得每个个体所在的非支配层;从并集P∪Offspring中选择最好的一半个体作为新的父代群体P,将个体的非支配层作为选择的第一依据,当个体的非支配层相同时,将个体到原点的L1范数距离作为选择的第二依据;
(c6)判断分组是否发生停滞;采用集合覆盖测度C比较新一代的父代群体P和原有的父代群体Par_P;计算[c_P_Par]=C(P,Par_P);[c_Par_P]=C(Par_P,P);设Group包含的变量个数为nGroup,如果连续nGroup个进化代都有c_P_Par<c_Par_P,则认为该分组发生了停滞,终止基于遗传算法的子问题优化器的进化过程,跳转至步骤(c7),否则,令进化代数t=t+1,如果t≤G,G为基于遗传算法的子问题优化器的最大进化代数,则跳转至步骤(c2),如果t>G,则跳转至步骤(c7);
(c7)输出当前父代群体P,分组的停滞状态,目标评价次数计数器ct。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910904407.XA CN110689320A (zh) | 2019-09-24 | 2019-09-24 | 一种基于协同进化算法的大规模多目标项目调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910904407.XA CN110689320A (zh) | 2019-09-24 | 2019-09-24 | 一种基于协同进化算法的大规模多目标项目调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110689320A true CN110689320A (zh) | 2020-01-14 |
Family
ID=69110258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910904407.XA Pending CN110689320A (zh) | 2019-09-24 | 2019-09-24 | 一种基于协同进化算法的大规模多目标项目调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110689320A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167595A (zh) * | 2023-04-25 | 2023-05-26 | 天信达信息技术有限公司 | 一种人员组决策变量的确定方法、电子设备及存储介质 |
-
2019
- 2019-09-24 CN CN201910904407.XA patent/CN110689320A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167595A (zh) * | 2023-04-25 | 2023-05-26 | 天信达信息技术有限公司 | 一种人员组决策变量的确定方法、电子设备及存储介质 |
CN116167595B (zh) * | 2023-04-25 | 2023-08-11 | 天信达信息技术有限公司 | 一种人员组决策变量的确定方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | A Pareto improved artificial fish swarm algorithm for solving a multi-objective fuzzy disassembly line balancing problem | |
Wang | Multi-objective optimization based on decomposition for flexible job shop scheduling under time-of-use electricity prices | |
Chaudhry et al. | A research survey: review of flexible job shop scheduling techniques | |
Shahvari et al. | Hybrid flow shop batching and scheduling with a bi-criteria objective | |
Shen et al. | Robustness measures and robust scheduling for multi-objective stochastic flexible job shop scheduling problems | |
Zhou et al. | Multiobjective evolutionary algorithms: A survey of the state of the art | |
US8250007B2 (en) | Method of generating precedence-preserving crossover and mutation operations in genetic algorithms | |
De Toro et al. | PSFGA: a parallel genetic algorithm for multiobjective optimization | |
CN109165808B (zh) | 一种电力通信网现场运维工单派发方法 | |
CN105929690B (zh) | 一种基于分解多目标进化算法的柔性车间鲁棒调度方法 | |
Gong et al. | A non-dominated ensemble fitness ranking algorithm for multi-objective flexible job-shop scheduling problem considering worker flexibility and green factors | |
Prakash et al. | Modified immune algorithm for job selection and operation allocation problem in flexible manufacturing systems | |
Zhang et al. | A modified multi-objective genetic algorithm for two-sided assembly line re-balancing problem of a shovel loader | |
Guo et al. | A hybrid intelligent model for order allocation planning in make-to-order manufacturing | |
Qian et al. | A multi-objective evolutionary algorithm based on adaptive clustering for energy-aware batch scheduling problem | |
CN112685138B (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
Fakhrzad et al. | A new multi-objective job shop scheduling with setup times using a hybrid genetic algorithm | |
Zhang et al. | Individualized requirement-driven multi-task scheduling in cloud manufacturing using an extended multifactorial evolutionary algorithm | |
Cai et al. | Multitasking bi-level evolutionary algorithm for data-intensive scientific workflows on clouds | |
Park et al. | Practical Human Resource Allocation in Software Projects Using Genetic Algorithm. | |
Liu et al. | A prediction based iterative decomposition algorithm for scheduling large-scale job shops | |
CN110689320A (zh) | 一种基于协同进化算法的大规模多目标项目调度方法 | |
Napalkova et al. | Multi-objective stochastic simulation-based optimisation applied to supply chain planning | |
Li et al. | An improved whale optimisation algorithm for distributed assembly flow shop with crane transportation | |
Hu et al. | A two-stage multi-objective task scheduling framework based on invasive tumor growth optimization algorithm for cloud computing |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200114 |
|
RJ01 | Rejection of invention patent application after publication |