利索能及
我要发布
收藏
专利号: 2021114492961
申请人: 南京信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-10-10
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,包括以下步骤:S1:读取问题信息:

所述问题的输入信息包括开发者的已有技能、已有技能熟练度、可投入的最大工作量,每项任务的工作量、技能需求、任务优先级和最大人头数限制;

S2:定义优化目标:

优化目标为最佳开发者‑任务分配方案中,项目工期最短和项目质量最大化;

S3:设定约束条件:

约束条件包括任务技能约束、任务最大人头数约束和开发者不能超负荷工作;

S4:初始化改进粒子群算法的参数:设置改进粒子群算法的进化种群规模为N,最大迭代次数G,局部搜索次数K,全局极值刷新间隙λ、子组1初始种群数量在全部种群数量的占比、迭代计数器t=0,设项目中候选开发者人数为m,任务数为n,项目所需技能数为S;

S5:生成初始候选种群,评价个体适应度,产生个体极值和全局极值:采用整数编码和实数编码相结合的混合编码方式,随机生成N个个体,每个个体表示开发者选择方案和任务的分配方案:

X=(xij)m×n,i=1,2,...,m,j=1,2,...,n其中,xij∈[0,1]表示开发者ei对任务Tj的投入度,若X的第i行为非零向量,则表示开发者ei被选中参与该项目;若xij>0,则表示开发者ei非分配到项目的开发中,且其对任务的投入度为xij;计算每个个体的目标函数值:F=ωt×dur+ωQ×Q

其中,dur为项目工期,Q为项目质量;利用权重系数ωt和ωQ将项目工期dur和项目完成质量Q加权求和;本模型令ωt=1,ωQ=‑100,旨在将两个目标统一为最小化目标且数量级统一;最小化问题,目标函数值越小,适应度越好;

S6:采用分组学习策略根据个体适应度进行排序和分组:初始化以及每一次进化迭代结束之后,评价粒子的适应度,根据适应度对种群排序分组;子组1中的个体需同时向个体极值pbi和全局极值gb学习,并充分利用它们的有效信息进行更新;子组2中的个体具有更大的进化空间,需进一步向全局极值学习并快速收敛,为了防止种群快速同化,选择一个新的对象xli来引导粒子学习,xli为适应度排序在粒子i之前的个体,其选取不受分组限制;子组3中的个体在全局最优解gb附近,在其周围做局邻域搜索,其学习对象为个体极值pbi和任意一个适应度排序在粒子i之前的个体xli;

S7:子组中粒子数量的自适应变化:在迭代的前期,令三个子组中个体数量相同,以加强对种群中其它个体有效信息的利用,实现对决策空间的大范围和多元化的搜索;随着迭代的深入,子组1的个体数量逐渐变多,子组2和子组3的个体逐渐减少,即向个体xli学习的粒子逐渐减少,而向全局最优gb学习的个体逐渐增多,逐步加强全局最优解gb对粒子的引导,使种群最终全局收敛;

S8:更新个体价值:

根据分组学习策略后,粒子更新为新的个体,根据优胜劣汰的规则在每次迭代中更新个体极值和全局极值;

S9:考虑任务人数上限的启发信息对全局极值进行局部搜索:在算法的每一代进化判断全局极值gb是否发生变化,若连续λ代没有更新则认为算法陷入局部最优,启动对gb的局部搜索;随机选取一项任务,若其已到达任务最大人头数上限,则对其进行位替换变异,用一名现有开发者组合外的一名匹配度更高的开发者替换当前开发组合中的一名随机开发者,新开发者的投入随机产生;若选取的任务参与人数未达到其最大人头数限制,则增加一名现有开发者组合外的开发者参与到任务中,其投入度随机产生;经过K次局部搜索后,更新全局极值;

S10:终止准则判断:

若t>G,则终止迭代,输出适应度的最优个体,即为项目中所选开发者在每项任务中投入的工作量分配结果,否则,转入S4。

2.根据权利要求1所述的基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,所述步骤S1中,所述的技能熟练度,定义为:开发者ei的技能熟练度集合, 其中表示ei对第k项技能的熟练度, 表示ei不具备第k项技能, 表示ei完全掌握第k项技能。

3.根据权利要求1所述的基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,所述步骤S2中,所述的项目工期,定义为:其中, 和 分别表示任务Tj的开始时间和完成时间,且所述的项目完成质量的定义如下:

其中, 表示开发者ei对任务Tj的熟练程度, 表示开发者信誉度,xij表示开发者ei对任务Tj的投入度。

4.根据权利要求1所述的基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,所述步骤S3中,所述的约束条件包括以下三个:

1)任务技能约束指参与某项任务的所有开发者总的技能集合必须满足该任务的所有技能需求,即:

其中,reqj表示任务Tj所需技能集, 表示开发者ei已掌握的技能集合,xij表示开发者ei对任务Tj的投入度;

2)开发者不能超负荷工作约束指的是,在任意时刻t,每个开发者对可执行任务集的总投入度不得超过该开发者的最大投入,即:其中,T_ing(t)表示当前活动任务集, 表示开发者最大投入;

3)任务最大人头数约束指的是任务的实际参与人数不得超过其允许的最大人头数,即:

其中, 表示参与任务Tj的实际人数, 表示任务Tj的最大人头数。

5.根据权利要求1中所述的基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,所述步骤S6中,种群分组学习策略的具体实现步骤如下:S61:评价个体适应度,根据适应度对种群排序;

S62:迭代开始时,子组1的粒子数量为a·N,子组2个体数量为 子组3个体数量为

S63:子组1中个体i的学习对象为全局极值gb和个体极值pbi,子组2中个体i的学习对象为全局极值gb和任意一个适应度排序位于个体i之前的个体xli,子组3中个体i的学习对象为个体极值pbi和任意一个适应度排序位于个体i之前的个体xli;

S64:根据不同子组个体学习对象的不同,采取不同的更新方式,得到更新后的个体;

S65,对更新后的个体进行适应度评价,更新全局极值和个体极值。

6.根据权利要求1所述的基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,所述步骤S7中,不同分组中个体数量的自适应变化规律如下:Num3=NP‑Num1‑Num2其中,Num1,Num2和Num3分别表示三个子组中个体的数量,N为种群规模,G为最大迭代次数,t为当前迭代次数,α表示迭代开始时,子组1中的个体在整个种群中的占比,α∈[0,1];

在迭代的前期,3个子组个体数量相同,以加强对种群中其它个体的利用,实现对决策空间大范围且多元化的探索,有利于快速定位到全局最优解所在区域,减少陷入局部最优的可能;随着迭代的深入,子组1的个体逐渐增多,子组2和3的个体则不断减少,向更优个体xli学习的粒子变少,而全局极值gb和个体极值pbi对粒子的引导逐步加强,使种群最终全局收敛。

7.根据权利要求1所述的基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,所述步骤S9中,考虑任务人数上限的启发信息对全局极值进行局部搜索方式如下:S91:判断每一代进化的全局极值gb是否发生变化,若连续λ代没有发生变化,则开始进行局部搜索;

S92:首先从全局最优个体的n项任务中任意选取一项作为待搜索的任务To;

S93:判断To的性质,若To参与人数未达到最大人头数上限,则进行位添加变异,即增加一名除To现有开发者外的新的开发者eh参与任务To,新开发者对To的投入度xho随机产生,S94:若To参与人数已达到最大人头数上限,则进行位替换变异,从To现有开发者中选取一名匹配度最低的开发者esec,用To现有开发者组合外的一名与To匹配度最高的开发者ec替换esec,新开发者ec对To的投入度xco随机产生,new new new

S95:记经过局部搜索后的全局最优解为gb ,若gb 适应度优于gb,则用gb 更新gb,反之则保持不变;

S96,进入下一轮局部搜索,直到K次局部搜索结束,输出新的全局最优解gb。

8.根据权利要求1所述的基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,所述步骤S9中,开发者ei对任务Tj的匹配度定义如下:其中, 表示开发者ei的信誉度, 表示开发者ei对任务Tj的熟练度。

9.根据权利要求1所述的基于分组学习粒子群优化的众包软件项目调度方法,其特征在于,所述步骤S9中,对局部搜索次数K做出如下定义:将整个迭代过程平均分为5个阶段,每个阶段的局部搜索次数K分别取为最大进化代数的2%,4%,6%,8%,10%。

10.一种介质,其特征在于,所述介质包括权利要求1‑9任意一项所述的众包软件项目调度方法。