CN117455139A - 一种基于多种群协同人工蜂群算法的最佳员工任务分配方法 - Google Patents
一种基于多种群协同人工蜂群算法的最佳员工任务分配方法 Download PDFInfo
- Publication number
- CN117455139A CN117455139A CN202311215931.9A CN202311215931A CN117455139A CN 117455139 A CN117455139 A CN 117455139A CN 202311215931 A CN202311215931 A CN 202311215931A CN 117455139 A CN117455139 A CN 117455139A
- Authority
- CN
- China
- Prior art keywords
- new
- skill
- employee
- task
- staff
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000006870 function Effects 0.000 claims abstract description 27
- 230000007246 mechanism Effects 0.000 claims abstract description 22
- 238000005457 optimization Methods 0.000 claims abstract description 7
- 235000012907 honey Nutrition 0.000 claims description 43
- 241000257303 Hymenoptera Species 0.000 claims description 20
- 230000006872 improvement Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 230000003044 adaptive effect Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 6
- 238000011161 development Methods 0.000 claims description 6
- 238000011156 evaluation Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000008439 repair process Effects 0.000 claims description 6
- 238000011835 investigation Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 230000003416 augmentation Effects 0.000 claims description 2
- 238000005065 mining Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
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/06311—Scheduling, planning or task assignment for a person or group
-
- 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]
-
- 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/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Educational Administration (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于多种群协同人工蜂群算法的最佳员工任务分配方法,包括如下步骤:读取项目的输入信息,定义优化目标,设定约束条件;针对项目新技能需求,设计新技能学习机制,并调用所发明的多种群协同人工蜂群算法MCABC求解调度方案;判断是否发生动态事件,若发生;则通过MCABC算法重新确定当前重调度时刻的最优调度方案并执行;判断项目任务是否完成,若未完成则重复判断是否发生动态事件直至项目任务全部完成,调度结束。本发明设计了一种新技能学习机制,将目标值和相似度双指标均较好的个体划分为潜力子种群,将仅在单一指标上较好或在双指标上均差的个体划分为多元子种群,两类子种群分别完成不同的搜索职能。
Description
技术领域
本发明涉及项目管理领域,尤其涉及一种应用动态软件项目调度的基于多种群协同人工蜂群算法的最佳员工任务分配方法。
背景技术
软件项目调度(SPSP)是软件开发的重要环节,直接影响软件企业的经济效益和市场竞争力。SPSP是指在给定的项目约束条件下,寻找一种合理的人力资源和任务的分配方式,以最小化项目开发成本和工期。由于软件项目一般具有周期长、复杂度高、专业性强且人力资源灵活多变的特点,如果单纯依靠软件项目管理者手动调度,不仅耗时长,给管理者带来很大的精神压力,而且易造成软件项目完成质量差,成功率低等问题。据StandishGroup的一项报告显示,2015年全球50000项软件项目中仅有29%的成功率,而大型软件项目的成功率仅2%,其中一个重要的失败原因是对任务和开发者资源调度的不合理。近年来,基于搜索的软件工程迅速发展,越来越多的国内外学者开始研究将软件项目调度问题建模为基于搜索的优化问题,采用元启发式算法搜索最优分配方案,进而辅助项目管理者做出最终的决策。
人工蜂群算法(artificial bee colony,ABC)是由土耳其学者Karaboga于2005年提出的一种模拟蜜蜂采蜜行为的元启发式算法,该算法具有引领蜂、跟随蜂和侦查蜂三个阶段,它通过引领蜂、跟随蜂和侦查蜂之间的信息交互,实现对蜜源的开采,进而寻找具有最多花蜜的蜜源,与其它群智能算法相比,ABC算法控制参数少,对于不同阶段可采用不同的策略,结构灵活,易于改进。然而,ABC仍具有以下不足:1)本质上是一种应用于静态问题的优化算法,并不能有效地求解动态问题;2)种群中的蜜源个体分工不明确,搜索缺乏导向性;3)对种群中不同阶段的所有蜜源,均采用同种开采方式,搜索多样性不足,算法易于陷入局部最优,提出一种收敛效率更高且具有较强跳出局部最优能力的动态软件项目调度方法极为必要。
发明内容
发明目的:本发明的目的是提供一种应用动态软件项目调度的基于多种群协同人工蜂群算法的最佳员工任务分配方法。
技术方案:本发明包括如下步骤:
(1)读取项目的输入信息,定义优化目标函数,设定约束条件;
(2)针对项目新技能需求,设计新技能学习机制,并调用所发明的多种群协同人工蜂群算法MCABC求解调度方案;
(3)判断是否发生动态事件,若发生,则通过MCABC算法重新确定当前重调度时刻的最优调度方案并执行;
(4)判断项目任务是否完成,若未完成则重复步骤(3),直至项目任务全部完成,调度结束。
进一步地,所述步骤(1)中输入信息包括项目的状态信息和员工的状态信息,项目的状态信息包括每个任务的工作量、技能要求、技能难度和任务优先级图;员工的状态信息包括员工的已有技能、已有技能熟练度、学习能力、可投入的最大工作量、正常月薪和加班月薪。
进一步地,所述步骤(1)中目标函数包括最小化调度点的项目工期、项目成本和项目稳定性:
minf(tl)=ωt·duration(tl)+ωc·cost(tl)+ωs·stability(tl)
其中,f(tl)为目标函数,duration(tl)表示项目工期,cost(tl)表示项目成本,stability(tl)表示项目稳定性,ωt,ωc和ωs是权重参数,本文取ωt=0.1,ωc=10-5,ωs=0.1,使duration,cost和stability处于同一数量级。
进一步地,所述项目工期表示表示为:
其中,和/>分别表示任务Tj在调度点tl的开始时间和完成时间,且T_rest(tl)表示在tl可调度的任务集合;
所述项目成本表示为:
其中,t′表示项目处于开发阶段的某一个月;表示在t′期间付给员工Ei的薪酬;T_active_set(t′)表示在t′期间正在进行开发的任务集合;xij(tl)表示Ei在tl对任务Tj投入的工作量占全日制工作量的百分比;/>表示Ei能够对整个项目投入的最大工作量占全日制工作量的百分比,当/>时,表示能够加班;/>和/>分别表示Ei的正常月薪和加班月薪;
所述项目稳定性表示为:
其中,权重E_in(tl)表示在tl的在职员工集合。
进一步地,所述步骤(1)中的约束条件包括:
条件1.参与某项任务的所有员工的技能总集合必须满足该任务的所有技能需求,表示为:
条件2.每个员工对当前可执行任务集合的总投入度不得超过该员工的最大投入度,表示为:
条件3.参与某个任务的员工数不得超过其允许参与的最大人数,表示为:
其中,表示在tl参与任务Tj的员工数,/>和/>分别表示该任务可参与人数的上限值和为了满足该任务技能约束所需的最少在职员工数;
条件4.每个新技能需一位在职员工学习,表示为:
条件5.任一在职员工同时学习的新技能个数不超过其上限值,表示为:
其中,表示Ei在每个调度点可同时学习的新技能数量限制。
进一步地,所述步骤(2)包括如下步骤:
(21)在调度点tl(l=0,1,2,...),每个蜜源都以员工-任务分配矩阵的形式进行编码,其中,/>表示员工Ei在tl时刻对任务Tj的投入度,当tl=t0时,通过随机初始化构造P(tl);若tl>t0,则根据tl时的项目状态,利用所发明的动态响应机制构造初始蜜源种群P(tl);所述动态响应机制包括方案修补,历史最优信息的复用,随机初始化,对所有未完成任务的投入度在可行域内随机生成;
(22)基于个体目标值和相似度,采用网格法将个体目标值和相似度双指标均较好的个体划分至潜力子种群Pop1,将仅在单一指标上较好或在双指标上均差的个体划分至多元子种群Pop2;
(23)为每个蜜源个体生成控制参数MR,在两个子种群中,引领蜂和跟随蜂采用不同的搜索机制对所负责蜜源进行开采;
(24)基于贡献度的子种群规模预测策略对两个子种群规模进行更新,通过子种群中个体对目标值的平均改进量及其成功更新率定义子种群在每一进化代的贡献度
其中,在第g代,表示个体/>的目标值改进量,/>是第i个子种群在第g代的规模,/>表示子种群/>的平均目标值改进量;/>表示/>中个体的成功更新次数;/>表示/>消耗的目标评价次数;/>表示/>的成功更新率;/>
(25)进入侦查蜂阶段,判断是否存在未更新次数trial超过最大未更新次数limit的蜜源。如果存在多个,则选择未更新次数最大的蜜源,若仍有多个选择,则随机选择其中一个蜜源,对应的引领蜂转化为侦查蜂并随机生成新蜜源替代旧蜜源;
(26)终止准则判断,若t>G,G是所提算法MCABC的最大进化代数,则终止迭代,输出目标值最优的个体,该个体即为项目中每位员工在每项任务中投入的工作量分配结果,否则,转至步骤(22)。
进一步地,所述步骤(2)中新技能学习机制用于员工在已掌握技能无法满足项目需求时学习新技能提高自身熟练度和投入度,包括学习新技能员工的选择、员工新技能熟练度的增长、员工投入度的自适应变化。
进一步地,所述学习新技能员工的选择包括在tl时刻,对于新技能Zh(tl)∈z(tl),若则表示在职员工均未具备该新技能,选择合适度/>最大的在职员工Ei学习新技能Zh(tl),若/>则选择/>值排第二的员工学习,以此类推,直至选择到一位在职员工学习此新技能;若选择/>学习新技能zh(tl),则令其中,zh(tl)表示在tl时刻新引入的新技能,z(tl)表示在tl时刻需要员工学习的新技能集合,lea_nsi(tl)表示Ei在tl需学习的新技能集合,/>表示Ei在每个调度点可同时学习的新技能数量限制。
所述Ei在tl学习新技能zh(tl)的合适度表示为:
其中,表示员工Ei的学习能力,/>表示Ei的已有技能与新技能Zh(tl)相似熟练度的最大值;/>表示Ei在tl对项目剩余可调度任务的总熟练度,通过所有在职员工的熟练度最大值和最小值对/>进行归一化处理,E_tn(tl)表示在tl时刻的在职员工集合;所述在职员工Ei的已有技能k与新技能Zh(tl)之间的相似熟练度/>表示为:
其中,表示技能k与zh(tl)之间的关联程度;skilli(tl)表示Ei在tl时刻掌握的技能集合。
进一步地,所述新技能熟练度增长包括两种情形:
情形1.当t≥tl时,被选择学习新技能的员工对于其新技能的熟练度增长函数如下:
其中,tanh(·)是双曲正切函数,表示员工/>对新技能zh(tl)的熟练度增长率,SDk表示技能k的难度,SDk越大表明该技能的难度越大;/>的学习能力/>越大,技能难度/>越小,则增长率/>越大;当一个员工同时学习多个新技能时,/>所学新技能存在的关联性越大,则促进学习的作用越强,使得增长率/>增大,定义促进因子,/>其中,zw(tl)表示在tl时刻/>正在学习的除zh(tl)外的其它新技能,将新技能熟练度增长曲线在tl时刻的起点值定义为/>
情形2.新技能zh(tl)在tl时刻之前被引入且已安排给员工学习,在tl时刻,若表示/>对该新技能尚未学习到位,需要继续学习,当t≥tl时,其熟练度增长函数如下:
已有技能熟练度增长曲线函数如下:
其中,表示员工Ei对技能k的熟练度增长率,/>表示在tl时刻Ei对技能k的熟练度值,即其熟练度在t≥tl时增长的起点。
进一步地,所述员工投入度的自适应变化表示为:
其中,xij(tl)表示在tl调度点项目调度方案中分配的Ei对Tj的投入度,T_active_set(t)表示t时刻正在执行的任务集合,lea_nsi(t)表示Ei在t时刻正在学习的新技能集合。
有益效果:本发明与现有技术相比,具有如下显著优点:
(1)设计了一种新技能学习机制,以满足实际软件项目中可能存在的新技能需求;该机制包括如何选择学习新技能的员工、新技能熟练度的增长曲线及被选员工投入度的自适应变化;建立了考虑新技能学习机制的动态软件项目调度模型DSPSP-NSL,引入了新任务加入、新员工加入和员工离职3种动态事件。
(2)采用网格法将目标值和相似度双指标均较好的个体划分为潜力子种群,将仅在单一指标上较好或在双指标上均差的个体划分为多元子种群,两类子种群分别完成不同的搜索职能。
(3)根据子种群的不同职能设计了相应的搜索策略,其中潜力子种群通过预测子种群的进化方向引导群内个体的搜索。
(4)通过捕捉各子种群贡献度的变化趋势,动态地确定子种群规模。
附图说明
图1为本发明的流程图;
图2为初始调度-动态事件触发的重调度方式流程图;
图3为初始任务优先级图;
图4(a)为本发明与基本ABC在调度点t0时刻的收敛曲线对比图;
4(b)为本发明与基本ABC在调度点t1时刻的收敛曲线对比图;
4(c)为本发明与基本ABC在调度点t2时刻的收敛曲线对比图;
4(d)为本发明与基本ABC在调度点t3时刻的收敛曲线对比图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
实际项目中,初始时刻t0有10个员工和15项任务(即M=10,N=15),共有5个技能要求(设为1、2、3、4、5,其技能难度分别为0.5,0.6,0.4,0.8,0.5)。任务优先级图如图3所示。每项任务Tj要求的工作量技能要求集合reqj以及最大参与人数/>如表1所示。每个员工Ei对整个项目投入的最大允许工作量/>学习能力/>正常月薪/>加班月薪所掌握的技能集合skilli以及已有技能熟练度集合/>如表2所示。同时该项目在t1=7.2时刻加入两个新任务,分别是任务T16和T17,/>req16={2,3},/>req17={1,6},/>
表1
表2
使用本发明提出的基于多种群协同人工蜂群算法的动态软件项目调度方法求解该动态项目实施例的调度方案,主体流程图如图1所示,具体步骤如下:
(1)初始化。读取实例的输入信息,包括任务属性(见表1)和员工属性(见表2);给出优化目标的定义,并设定约束条件。
在调度点tl的“项目工期”表示完成当前项目剩余任务所花费的时间开销,它定义为:
其中,和/>分别表示任务Tj在调度点tl的开始时间和完成时间,且T_rest(tl)表示在tl可调度的任务集合。
在tl的“项目成本”表示完成当前项目剩余任务所花费的财力(即员工的工资),它定义为:
其中,t′表示项目处于开发阶段的某一个月;表示在t′期间付给员工Ei的薪酬;T_active_set(t′)表示在t′期间正在进行开发的任务集合;xij(tl)表示Ei在tl对任务Tj投入的工作量占全日制工作量的百分比;/>表示Ei能够对整个项目投入的最大工作量占全日制工作量的百分比,当/>时,表示能够加班;/>和/>分别表示Ei的正常月薪和加班月薪;
在tl的“稳定性”用于衡量相邻两个调度点tl和tl-1(l≥1)上调度方案之间的变化程度(在初始调度t0时刻,不考虑稳定性),它定义为:
其中,权重E_in(tl)表示在tl的在职员工集合。
“项目工期”、“项目成本”和“稳定性”的目标值均越小越好。
本发明设定的约束条件包括任务技能约束、员工不允许超负荷工作、任务最大参与人数约束和员工新技能学习约束。
任务技能约束指参与某项任务的所有员工的技能总集合必须满足该任务的所有技能需求,即
员工不能超负荷工作的约束指在任意t时刻,每个员工对当前可执行任务集合的总投入度不得超过该员工的最大投入度,即
其中,T_active_set(t)表示t时刻正在执行的任务集合。
任务最大人数约束指参与某个任务的员工数不得超过其允许参与的最大人数,即
其中,表示在tl参与任务Tj的员工数,/>和/>分别表示该任务可参与人数的上限值和为了满足该任务技能约束所需的最少在职员工数。
员工新技能学习约束指每个新技能只需一位在职员工学习即可和任一在职员工同时学习的新技能个数不超过其上限值,即
其中,z(tl)表示在tl时刻需要员工学习的新技能集合,lea_nsi(tl)表示Ei在tl需学习的新技能集合,表示Ei在每个调度点可同时学习的新技能数量限制。
(2)针对项目新技能需求,设计新技能学习机制,包括如何选择员工学习新技能、新技能熟练度的增长曲线函数及其投入度的自适应变化。
选择学习新技能的员工过程如下:
在tl时刻,对于新技能zh(tl)∈z(tl),若则表示在职员工均未具备该新技能,需要选择一名员工进行学习。定义在职员工Ei的已有技能k与新技能Zh(tl)之间的相似熟练度/>
其中,表示技能k与Zh(tl)之间的关联程度。
定义Ei在tl学习新技能Zh(tl)的合适度
其中,表示Ei的已有技能(包括正在学习的新技能)与新技能Zh(tl)相似熟练度的最大值。/>是Ei在tl对项目剩余可调度任务的总熟练度,通过所有在职员工的熟练度最大值/>和最小值对/>进行归一化处理。
选择合适度最大的在职员工Ei学习新技能zh(tl),若/>则选择/>值排第二的员工学习,以此类推,直至选择到一位在职员工学习此新技能。假设选择学习新技能zh(tl),令/>
新技能熟练度增长曲线函数依据员工对新技能Zh(tl)的学习状态分2种情况讨论。
a.zh(tl)是在tl时刻新引入的新技能,并选择员工学习,则当t≥tl时,该员工对于此新技能的熟练度增长函数如下。
其中,tanh(·)是双曲正切函数。表示员工/>对新技能zh(tl)的熟练度增长率。/>的学习能力/>越大,技能难度/>越小,则增长率/>越大。此外,本文还考虑到当一个员工同时学习多个新技能时/>所学新技能之间存在的关联性越大,则促进学习的作用越强,使得增长率/>进一步增大。因此,定义促进因子/>其中,zw(tl)表示在tl时刻/>正在学习的除Zh(tl)外的其它新技能。同时,本文考虑已有技能与新技能间的知识关联,将新技能熟练度增长曲线在tl时刻的起点值定义为/>即员工/>已有技能与新技能Zh(tl)的相似熟练度最大值。
b.新技能Zh(tl)在tl时刻之前被引入且已安排给员工学习,在tl时刻,若表示/>对该新技能尚未学习到位,需要继续学习。当t≥tl时,其熟练度增长函数如下。
已有技能熟练度增长曲线函数如下:
其中,表示员工Ei对技能k的熟练度增长率。/>表示在tl时刻Ei对技能k的熟练度值,即其熟练度在t≥tl时增长的起点。
被选员工投入度自适应变化函数如下:
其中,xij(tl)表示在tl调度点项目调度方案中分配的Ei对Tj的投入度,T_active_set(t)表示t时刻正在执行的任务集合,lea_nsi(t)表示Ei在t时刻正在学习的新技能集合。
(3)所发明多种群协同人工蜂群算法MCABC实现步骤如下:
(31)在调度点tl(l=0,1,2,...),每个蜜源都以员工-任务分配矩阵的形式进行编码,其中,/>表示员工Ei在tl时刻对任务Tj的投入度。当tl=t0时,通过随机初始化构造P(tl);若tl>t0,则根据tl时的项目状态,利用动态响应机制构造初始蜜源种群P(tl),如图2所示。
其中,动态响应机制如下:
当动态事件发生并触发所提算法MCABC进行重调度时,在初始种群生成中引入动态响应机制,包括利用动态事件启发信息对原有调度方案进行修补、历史最优信息复用以及随机初始化三种方式。
(31-1)方案修补
基于DSPSP-NSL三种动态事件的特征,设计了如下对原有调度方案进行修补的策略。
i)tl时刻新员工加入的修补策略,为了让新员工能够快速融入团队,缓解团队压力,尽可能地为其分配他所能胜任的任务。对于当前可调度的任务Tj∈T_rest(tl),当参与Tj的员工数小于Tj允许的最大人数时,若新员工具有Tj所需的一个或多个技能,则安排新员工参与Tj,其对Tj的投入度在可行域内随机生成;若不具备则不安排该新员工参与Tj。当参与Tj的员工数大于等于/>时,计算新员工对Tj的熟练程度,从Tj的现有参与者中选出对Tj熟练程度低于新员工的参与者,组成集合Aj。若Aj为空集,则不安排新员工参与Tj;否则,基于Aj中各员工对Tj熟练程度的倒数,采用轮盘赌选出其中一名(熟练程度越低,被选择的概率越高),判断用新员工替代所选员工后,是否会造成Tj技能需求得不到满足,若会,则将此被选员工从Aj中移除,重复上述选择步骤,直至从Aj中选出一人可被新员工替换或Aj为空集。若成功选出一人,则将其对Tj的投入度置0,并安排新员工代替其参与Tj,新员工对Tj的投入度在可行域内随机生成。
ii)tl时刻员工离职的修补策略。首先,对于项目未完成的任务,判断是否存在当前所有在职员工均无法满足的技能需求,若存在,则将它们视为新技能,分别选择一位在职员工学习,并令所选员工参与需要相应新技能的任务;否则,无需选择。其后,找出该离职员工原先参与且此时尚未完成的任务集合W,除W外其余任务的分配保持不变。将未参与Tj但至少具有Tj所需一个技能的在职员工组成集合Bj。分两种情况讨论:1)参与Tj的现有员工团队可满足Tj的技能需求。若Bj为空集,则保持Tj现有员工团队不变;否则,基于Bj中各员工对Tj的熟练程度采用轮盘赌选出一名员工加入Tj团队,填补员工离职造成的空缺。2)参与Tj的现有员工团队不能满足Tj的所有技能需求。确定完成Tj所缺失的技能(可能是多个),从Bj(由于已选择在职员工学习由员工离职引入的新技能并参与Tj,因而此情况下Bj不会为空集)中找出拥有所缺失技能个数最多的员工,若存在多个选择,则根据员工对Tj的熟练程度采用轮盘赌选择其中一位,将其加入Tj团队并从Bj中移除。然后更新Tj剩余的缺失技能,再通过上述方法从Bj中选择员工,以此类推,直至满足Tj技能需求为止。上述所选员工对Tj的投入度均在可行域内随机生成。
iii)tl时刻新任务加入的修补策略。首先,保留上一调度点员工对于原有任务的投入度。其次,判断新任务是否存在在职员工无法满足的技能需求,若存在,将它们视为新技能,选择一位在职员工学习,并令所选员工参与新任务;否则,无需选择。再次,若还未分配员工参与新任务或还有当前参与它的员工团队无法满足的技能需求,则将未参与新任务但至少拥有一个未满足技能的在职员工组成集合C。从C中选择拥有这些未满足技能数最多的员工,若存在多个选择,则根据其对新任务的熟练程度采用轮盘赌选择其中一位,将所选员工加入新任务团队并从C中移除。然后更新新任务的未满足技能,再通过上述方法从C中选择员工,以此类推,直到满足新任务的所有技能需求。此后,为了加速新任务的完成,若新任务参与者未达到其最大人数限制且C不为空集,则基于C中各员工对新任务的熟练程度,采用轮盘赌选择员工加入新任务团队并从C中移除,以此类推,直到达到新任务的最大人数限制或C为空集。上述所选员工对新任务的投入度均在可行域内随机生成。
(31-2)历史最优信息的复用
在每个调度点上,可将前一调度点上产生的最优调度方案视为历史信息进行复用,当前调度点上除新增员工以外的在职员工对原有任务的投入度可直接参照历史调度方案。
(31-3)随机初始化
为了增加多样性,在初始种群中引入部分随机个体。在这些个体中,每个在职员工对所有未完成任务的投入度在可行域内随机生成。
所提算法MCABC的初始种群中,修补解及其变异个体占30%,历史解及其变异个体占20%,随机个体占50%。采用高斯变异,变异概率
(32)基于个体(即员工-任务分配矩阵)目标值f和相似度Sy,采用网格法将种群中的个体划分到不同的网格,其次,根据给定的子种群规模,分别将不同网格内的个体添加到潜力子种群Pop1和多元子种群Pop2中。
(33)为每个蜜源个体生成控制参数MR,在两个子种群中,引领蜂和跟随蜂采用不同的搜索机制对所负责蜜源进行开采(即对不同的员工-任务分配方案进行搜索调整)。
对于潜力子种群,引领蜂和跟随蜂利用三次指数平滑预测模型预测潜力子种群中心位置,对该子种群中的个体进行搜索,并通过每一代个体的实际位置信息反馈,不断调整对子种群进化方向的预测。当代数g≥2时,三次指数平滑预测模型计算公式如下。
preg=ag-1+bg-1+cg-1
其中,preg是预测的第g(g≥2)代的潜力子种群中心位置;ag-1,bg-1,cg-1分别为潜力子种群第g-1代中心位置的水平值、线性增量和抛物线增量;分别为潜力子种群第g-1代中心位置的一次、二次、三次平滑指数值矩阵,初值/>α∈[0,1]为权重系数;/>为第g-1代潜力种群的实际中心位置,Ce0是将初始种群分组后得到的潜力子种群实际中心位置;g=1时的初值pre1=Ce0。
利用所预测到的第g代潜力子种群中心位置矩阵preg,对个体进行搜索,如下。
其中,i∈{i|Ei∈E_in(tl)},j∈{j|Tj∈T_rest(tl)},是[-1,1]内均匀分布的随机数,/>和/>分别是新个体/>和原个体/>中的元素,randij是[0,1]内均匀分布的随机数,参数/>用于控制个体/>的搜索维数,/>生成均值为/>方差为0.1的正态分布随机数。/>
将整个蜜源种群中个体的目标值从小到大进行排序,为每个个体记录排序序号将多元子种群/>中排序号属于[1,SN/2]的蜜源称为一类个体,属于[SN/2+1,SN]的蜜源为二类个体。对一类个体,本发明从潜力子种群/>中选择与它相似度最小(欧式距离最大)的个体作为学习对象,对一类个体/>的开采方式如下。
其中,是/>中与/>相似度最小的个体/>中的元素。
对二类个体的开采方式如下。
其中,是当前最优个体/>中的元素。rand(-η,η)表示[-η,η]之间均匀分布的随机数。令/> 表示个体/>在所有蜜源中的目标值排序升序序号,随着对其它蜜源的不断开采,/>的值也在实时更新;max_OEs和ct_OEs分别是算法事先设定的最大目标评价次数和当前目标评价次数。
(34)更新参数 权重c=0.1;/>储存第g-1代目标值升序排名处于前10%的高质量个体所对应的参数/>值,meanA(.)为平均值函数。
(35)基于贡献度的子种群规模预测策略对两个子种群规模进行更新。通过子种群中个体对目标值的平均改进量及其成功更新率定义子种群在每一进化代的贡献度
其中,在第g代,表示个体/>的目标值改进量(未改进则该值记为0),表示子种群/>的平均目标值改进量;/>表示/>中个体的成功更新次数(生成新个体的目标值比原个体有所改进即为成功更新);/>表示/>消耗的目标评价次数;/>表示/>的成功更新率;/>
本发明采用线性预测法,通过当前代g和上一代g-1中子种群贡献度的实际值,获取贡献度的短期变化趋势,并由此预测下一代潜力子种群的规模
/>
其中,round(.)表示四舍五入取整函数,rand是(0,1]内均匀分布的随机数,SN为蜜源种群规模,子种群规模具有上限值和下限值,令子种群最小规模为/>最大规模为/>
(36)进入侦查蜂阶段,判断是否存在未更新次数trial超过最大未更新次数limit的蜜源。如果存在多个,则选择未更新次数最大的蜜源,若仍有多个选择,则随机选择其中一个蜜源,对应的引领蜂转化为侦查蜂并随机生成新蜜源替代旧蜜源。
(37)终止准则判断。若t>G,则终止迭代,输出目标值最优的个体,该个体即为项目中每位员工在每项任务中投入的工作量分配结果,否则,转至步骤2。
(4)判断是否发生动态事件,若未发生,则继续按照当前方案执行,反之,触发重调度,更新当前动态事件发生时刻tl的项目任务和员工状态,并基于动态响应机制生成算法的初始种群,通过MCABC确定tl时刻的最优员工-任务调度方案,按照此方案继续执行;
(5)判断项目任务是否完成,重复(4),直至项目任务全部完成,调度结束。
本发明的效果可以通过以下仿真实验进一步说明:
1.实验条件:
采用Python软件进行仿真实验,计算机处理器参数Intel(R)Core(TM)i5-10300UCPU@2.50GHz,16G运行内存。
2.实验内容:
本发明针对上述动态软件项目实例求解项目调度方案。该项目的初始时刻任务优先级图如图3所示,图3中1到15分别表示任务的编号,有向连线表示任务开发需满足的先后次序。该项目初始任务和员工属性如表1和表2,具有3个动态时间点,共加入两个新任务,一位新员工和一位员工离职。
3.实验结果:
采用本发明多种群协同人工蜂群算法与基本人工蜂群算法分别对动态软件项目调度实例进行求解。如图3为实例的任务优先级图。将两种方法在实例中不同调度点分别独立地运行20次。表3分别列出了两种方法在不同调度点的20次运行中求得的调度方案最佳及平均目标值,以及最佳调度方案中的项目工期、成本和稳定性。由表3可见,与基本人工蜂群算法相比,本发明能够搜索到目标值更优的个体,取得的最佳目标值和平均最优值都远优于基本人工蜂群算法。在搜索到的最佳方案中的项目工期、项目成本和稳定性均优于基本人工蜂群算法,显著增强了项目开发的效率。
表3
如图4(a)、(b)、(c)、(d)所示,本发明基于多种群协同人工蜂群算法MCABC和基本ABC在实例不同调度点上运行所得最佳个体目标值随评价次数的收敛曲线图。由上述收敛图可见,本发明相较于基本ABC具有更好的收敛精度和收敛速度,并且在动态实际发生时(即在调度点t1,t2,t3上)能够更加快速地响应环境变化,提供算法一个良好的搜索起点。
综上,本发明提出的基于多种群协同人工蜂群算法的动态软件项目调度方法,在以最小化项目工期、成本和稳定性为优化目标的动态软件项目调度问题上,建立了考虑新技能学习机制的动态软件项目调度的数学模型。本文在基本ABC算法的基础上,依据动态事件特征,引入了动态响应机制,通过方案修补、历史最优信息复用和随机初始化三种方式构造新环境下的初始种群,为动态调度算法提供良好的搜索起点,从而提高算法的搜索效率。算法在每一代通过双指标种群分组方式将目标值和多样性均较好的个体划入潜力子种群,通过预测中心位置的移动方向引导个体沿着高质量区域进行搜索。多元子种群在目标值不同的个体附近采用适合其特征的挖掘方式,提升了算法的局部搜索能力。通过贡献度的变化趋势动态调整每一代的子种群规模,提高了计算资源的利用率。两个子种群相互配合,协同进化,使得算法能够在保持种群多样性的同时逐步提高收敛精度。
Claims (10)
1.一种基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,包括如下步骤:
(1)读取项目的输入信息,定义优化目标函数,设定约束条件;
(2)针对项目新技能需求,设计新技能学习机制,并调用所发明的多种群协同人工蜂群算法MCABC求解调度方案;
(3)判断是否发生动态事件,若发生,则通过MCABC算法重新确定当前重调度时刻的最优调度方案并执行;
(4)判断项目任务是否完成,若未完成则重复步骤(3),直至项目任务全部完成,调度结束。
2.根据权利要求1所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述步骤(1)中输入信息包括项目的状态信息和员工的状态信息,项目的状态信息包括每个任务的工作量、技能要求、技能难度和任务优先级图;员工的状态信息包括员工的已有技能、已有技能熟练度、学习能力、可投入的最大工作量、正常月薪和加班月薪。
3.根据权利要求1所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述步骤(1)中目标函数包括最小化调度点的项目工期、项目成本和项目稳定性:
min f(tl)=ωt·duration(tl)+ωc·cost(tl)+ωs·stability(tl)
其中,f(tl)为目标函数,duration(tl)表示项目工期,cost(tl)表示项目成本,stability(tl)表示项目稳定性,ωt,ωc和ωs是权重参数,本文取ωt=0.1,ωc=10-5,ωs=0.1,使duration,cost和stability处于同一数量级。
4.根据权利要求3所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述项目工期表示表示为:
其中,和/>分别表示任务Tj在调度点tl的开始时间和完成时间,且T_rest(tl)表示在tl可调度的任务集合;
所述项目成本表示为:
其中,t′表示项目处于开发阶段的某一个月;表示在t′期间付给员工Ei的薪酬;T_active_set(t′)表示在t′期间正在进行开发的任务集合;xij(tl)表示Ei在tl对任务Tj投入的工作量占全日制工作量的百分比;/>表示Ei能够对整个项目投入的最大工作量占全日制工作量的百分比,当/>时,表示能够加班;/>和/>分别表示Ei的正常月薪和加班月薪;
所述项目稳定性表示为:
其中,权重E_in(tl)表示在tl的在职员工集合。
5.根据权利要求1所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述步骤(1)中的约束条件包括:
条件1.参与某项任务的所有员工的技能总集合必须满足该任务的所有技能需求,表示为:
条件2.每个员工对当前可执行任务集合的总投入度不得超过该员工的最大投入度,表示为:
条件3.参与某个任务的员工数不得超过其允许参与的最大人数,表示为:
其中,表示在tl参与任务Tj的员工数,/>和/>分别表示该任务可参与人数的上限值和为了满足该任务技能约束所需的最少在职员工数;
条件4.每个新技能需一位在职员工学习,表示为:
条件5.任一在职员工同时学习的新技能个数不超过其上限值,表示为:
其中,表示Ei在每个调度点可同时学习的新技能数量限制。
6.根据权利要求1所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述步骤(2)包括如下步骤:
(21)在调度点tl(l=0,1,2,...),每个蜜源都以员工-任务分配矩阵的形式进行编码,其中,/>表示员工Ei在tl时刻对任务Tj的投入度,当tl=t0时,通过随机初始化构造P(tl);若tl>t0,则根据tl时的项目状态,利用所发明的动态响应机制构造初始蜜源种群P(tl);所述动态响应机制包括方案修补,历史最优信息的复用,随机初始化,对所有未完成任务的投入度在可行域内随机生成;
(22)基于个体目标值和相似度,采用网格法将个体目标值和相似度双指标均较好的个体划分至潜力子种群Pop1,将仅在单一指标上较好或在双指标上均差的个体划分至多元子种群Pop2;
(23)为每个蜜源个体生成控制参数MR,在两个子种群中,引领蜂和跟随蜂采用不同的搜索机制对所负责蜜源进行开采;
(24)基于贡献度的子种群规模预测策略对两个子种群规模进行更新,通过子种群中个体对目标值的平均改进量及其成功更新率定义子种群在每一进化代的贡献度
其中,在第g代,表示个体/>的目标值改进量,/>是第i个子种群在第g代的规模,/>表示子种群/>的平均目标值改进量;/>表示/>中个体的成功更新次数;/>表示/>消耗的目标评价次数;/>表示/>的成功更新率;/>
(25)进入侦查蜂阶段,判断是否存在未更新次数trial超过最大未更新次数limit的蜜源。如果存在多个,则选择未更新次数最大的蜜源,若仍有多个选择,则随机选择其中一个蜜源,对应的引领蜂转化为侦查蜂并随机生成新蜜源替代旧蜜源;
(26)终止准则判断,若t>G,G是所提算法MCABC的最大进化代数,则终止迭代,输出目标值最优的个体,该个体即为项目中每位员工在每项任务中投入的工作量分配结果,否则,转至步骤(22)。
7.根据权利要求1所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述步骤(2)中新技能学习机制用于员工在已掌握技能无法满足项目需求时学习新技能提高自身熟练度和投入度,包括学习新技能员工的选择、员工新技能熟练度的增长、员工投入度的自适应变化。
8.根据权利要求7所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述学习新技能员工的选择包括在tl时刻,对于新技能Zh(tl)∈z(tl),若则表示在职员工均未具备该新技能,选择合适度/>最大的在职员工Ei学习新技能Zh(tl),若/>则选择/>值排第二的员工学习,以此类推,直至选择到一位在职员工学习此新技能;若选择/>学习新技能Zh(tl),则令其中,zh(tl)表示在tl时刻新引入的新技能,z(tl)表示在tl时刻需要员工学习的新技能集合,lea_nsi(tl)表示Ei在tl需学习的新技能集合,/>表示Ei在每个调度点可同时学习的新技能数量限制。
所述Ei在tl学习新技能Zh(tl)的合适度表示为:
其中,表示员工Ei的学习能力,/>表示Ei的已有技能与新技能zh(tl)相似熟练度的最大值;/>表示Ei在tl对项目剩余可调度任务的总熟练度,通过所有在职员工的熟练度最大值和最小值对/>进行归一化处理,E_in(tl)表示在tl时刻的在职员工集合;所述在职员工Ei的已有技能k与新技能Zh(tl)之间的相似熟练度/>表示为:
其中,表示技能k与Zh(tl)之间的关联程度;skilli(tl)表示Ei在tl时刻掌握的技能集合。
9.根据权利要求7所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述新技能熟练度增长包括两种情形:
情形1.当t≥tl时,被选择学习新技能的员工对于其新技能的熟练度增长函数如下:
其中,tanh(·)是双曲正切函数,表示员工/>对新技能zh(tl)的熟练度增长率,SDk表示技能k的难度,SDk越大表明该技能的难度越大;/>的学习能力/>越大,技能难度/>越小,则增长率/>越大;当一个员工同时学习多个新技能时,所学新技能存在的关联性越大,则促进学习的作用越强,使得增长率/>增大,定义促进因子,/>其中,zw(tl)表示在tl时刻/>正在学习的除zh(tl)外的其它新技能,将新技能熟练度增长曲线在tl时刻的起点值定义为/>
情形2.新技能Zh(tl)在tl时刻之前被引入且已安排给员工学习,在tl时刻,若表示/>对该新技能尚未学习到位,需要继续学习,当t≥tl时,其熟练度增长函数如下:
已有技能熟练度增长曲线函数如下:
其中,表示员工Ei对技能k的熟练度增长率,/>表示在tl时刻Ei对技能k的熟练度值,即其熟练度在t≥tl时增长的起点。
10.根据权利要求7所述的基于多种群协同人工蜂群算法的最佳员工任务分配方法,其特征在于,所述员工投入度的自适应变化表示为:
其中,xij(tl)表示在tl调度点项目调度方案中分配的Ei对Tj的投入度,T_active_set(t)表示t时刻正在执行的任务集合,lea_nsi(t)表示Ei在t时刻正在学习的新技能集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311215931.9A CN117455139A (zh) | 2023-09-19 | 2023-09-19 | 一种基于多种群协同人工蜂群算法的最佳员工任务分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311215931.9A CN117455139A (zh) | 2023-09-19 | 2023-09-19 | 一种基于多种群协同人工蜂群算法的最佳员工任务分配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117455139A true CN117455139A (zh) | 2024-01-26 |
Family
ID=89588127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311215931.9A Pending CN117455139A (zh) | 2023-09-19 | 2023-09-19 | 一种基于多种群协同人工蜂群算法的最佳员工任务分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117455139A (zh) |
-
2023
- 2023-09-19 CN CN202311215931.9A patent/CN117455139A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844915B (zh) | 一种基于话务预测的呼叫中心的自动排班方法 | |
Shen et al. | Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems | |
Rahimian et al. | A hybrid integer programming and variable neighbourhood search algorithm to solve nurse rostering problems | |
US20220027817A1 (en) | Deep reinforcement learning for production scheduling | |
Yamin | Review on methods of generation scheduling in electric power systems | |
CN109165808B (zh) | 一种电力通信网现场运维工单派发方法 | |
CN104065745A (zh) | 云计算动态资源调度系统和方法 | |
WO2021088436A1 (zh) | 一种用于多语言协同开发的项目调度方法及装置 | |
Serengil et al. | Workforce optimization for bank operation centers: a machine learning approach | |
CN104077634B (zh) | 基于多目标优化的主动‑反应式动态项目调度方法 | |
CN110414826B (zh) | 一种云制造环境下柔性多任务前摄性调度优化方法 | |
CN109960578A (zh) | 一种基于深度强化学习的数据中心资源离线调度方法 | |
CN116070876B (zh) | 一种基于瓶颈设备能力的排产优化方法、设备及介质 | |
CN109522120B (zh) | 一种基于Hadoop的智能家居管理平台 | |
CN112700111A (zh) | 工作数据处理方法、装置、计算机设备及存储介质 | |
CN117455139A (zh) | 一种基于多种群协同人工蜂群算法的最佳员工任务分配方法 | |
Sharma et al. | Economic load dispatch problem using spider monkey optimisation algorithm | |
CN114298376A (zh) | 一种基于启发式离散人工蜂群算法的软件项目调度方法 | |
Xu et al. | A hybrid integer programming and artificial bee colony algorithm for staff scheduling in call centers | |
Haroune et al. | A hybrid heuristic for a two-agent multi-skill resource-constrained scheduling problem | |
Mutingi et al. | Task assignment in home health care: A fuzzy group genetic algorithm approach | |
Xiao et al. | Value-based multiple software projects scheduling with genetic algorithm | |
Shen et al. | Coevolutionary scheduling of dynamic software project considering the new skill learning | |
Milosevic et al. | Trends analysis in Gig economy | |
Wang et al. | Study on the workforce scheduling and routing strategies of heterogeneous agents in call centers |
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 |