1.基于深度强化学习的大规模敏捷软件项目调度方法,其特征在于,包括以下步骤:S1:初始化大规模敏捷软件项目调度环境中敏捷软件项目和人力资源的状态信息;
S2:建立基于深度强化学习的大规模敏捷软件项目调度决策模型,产生调度方案进行调度;
S3:采集调度过程中产生的轨迹信息,存放到经验回放池中并更新所有轨迹优先级;
S4:当经验回放池中的轨迹数量达到要求时,按优先级批量采样轨迹对调度决策模型参数进行训练;
S5:利用训练好的调度决策模型生成更优的调度方案进行调度。
S6:若所开发用户故事总价值还未稳定,则在更优调度方案的调度过程中继续采集优先级更高的轨迹替换原先经验池中优先级低的轨迹,增强调度决策模型的参数训练效果;
若所开发用户故事总价值稳定,则输出最优调度方案。
2.根据权利要求1所述的基于深度强化学习的大规模敏捷软件项目调度方法,其特征在于,所述大规模敏捷软件项目P要求在D个冲刺内完成(l=1,2,...,D),每个冲刺进行敏捷软件项目和人力资源的调度;
根据用户的需求,敏捷软件项目被描述为N个用户故事usi(i=1,2,...,N),构成待开发用户故事集合,且用户故事包括的属性值有故事点、价值点和工作量;
其中,所述用户故事usi的故事点spi是对用户故事大小和复杂度的无单位估算值,用户故事usi的价值点vpi是对用户故事市场收益的无单位估算值,用户故事usi的工作量effi表示完成用户故事需要花费的时长,单位是小时;
其中,一个所述故事点约等于8小时的工作量;
其中,用户故事usi能够分解成tni个具体的任务tij(j=1,2,...,tni),完成这些任务总共需要用到S项技能;
用户故事usi中任务tij包括的属性有完成任务所需技能tskij和所需时长thij;
敏捷开发公司共有R个团队Teamr(r=1,2,...,R),每个团队中有Mr名员工erk(k=1,
2,...,Mr),员工erk掌握的技能组成技能集合eskrk,由于每个冲刺动态事件引起员工工作时长变化,员工在每个冲刺的工作时长 也设置为变化值。
3.根据权利要求2所述的基于深度强化学习的大规模敏捷软件项目调度方法,其特征在于,所述大规模敏捷软件项目调度包括三个耦合的子问题:故事选择,从待开发故事列表中选择故事进入冲刺中;
故事分配,将进入冲刺的用户故事分配给各个团队;以及任务分配,将每个团队需要完成的故事分解成任务,并按照所需技能和时间分配给团队中的员工。
4.根据权利要求3所述的基于深度强化学习的大规模敏捷软件项目调度方法,其特征在于,所述子问题的调度由三个决策变量来表示:故事选择
故事分配
任务分配
5.根据权利要求2所述的基于深度强化学习的大规模敏捷软件项目调度方法,其特征在于,所述S2中生成的调度方案满足以下条件:l
第l个冲刺中选择用户故事usi的故事点数spi之和不超过冲刺速度SV;
其中
冲刺速度 即所有团队的团队速度 之和;
第l个冲刺的团队速度为各团队前两个冲刺完成故事点总数的平均值,表示为由于第一个冲刺未完成任何用户故事,所以将该团队所有员工工作时长之和,按1故事点≈8小时估算成初始团队速度,计算方式为第二个冲刺的冲刺速度为第一个冲刺完成的完整用户故事点数之和,计算方式为1
式中,OUT表示第一个冲刺完成的完整用户故事集合;
第l个冲刺中从已选择故事中分配给团队Teamr的故事点数之和不超过该团队的团队速度第l个冲刺完成用户故事usi中任务tij所需要的技能tskij必须包含在所分配团队员工erk掌握的技能集合eskrk之中;
第l个冲刺用户故事usi的任务tij只能由一名团队员工erk来完成;
第l个冲刺中分配给团队员工erk的故事任务时长thij之和不超过其工作时长
6.根据权利要求2所述的基于深度强化学习的大规模敏捷软件项目调度方法,其特征在于,所述基于深度强化学习的大规模敏捷软件项目调度决策模型的建立过程为:深度强化学习建模为一个由四元组表示的马尔可夫决策过程;
其中,
S表示有限的状态集合
式中,表示第l个冲刺结束后所分配完整用户故事的完成率, 表示第l个冲刺结束后所分配用户故事工作量的完成率,表示第l个冲刺结束后所有团队完整用户完成率的平均值,表示第l个冲刺结束后所有团队完整用户故事完成率的标准差,表示第l个冲刺结束后所有团队工作量完成率的平均值, 表示第l个冲刺结束后所有团队工作量完成率的标准差,表示第l个冲刺结束后所有团队时间利用率的平均值,表示第l个冲刺结束后所有团队时间利用率的标准差,表示第l个冲刺结束后所有团队员工时间利用率的平均值,表示第l个冲刺结束后所有团队员工时间利用率的标准差;
A表示有限的动作集合
式中,针对大规模敏捷软件项目调度的三个决策变量设计了7个通用的调度规则,对三个决策变量的7个通用调度规则进行组合,得到了12个复合调度规则构成动作集合。
R表示执行动作后的奖励函数 是智能体在当前冲刺状态下执行动作规则后的即时奖励,是智能体进行学习改善策略的重要指引信号,奖励函数表示为第l个冲刺结束后完成的完整用户故事总价值;
γ是衰减因子,取值在[0,1]之间,表示后续决策对当前状态执行动作的重要程度;
l l
智能体在第l个冲刺结束后的状态S下,选择动作A;
调度环境中的用户故事和任务被分配,员工的剩余工作时长减少,完成的完整用户故事增加;
l+1 l+1
第l+1个冲刺结束后,环境给予智能体奖励R ,环境状态会更新为S ,表示为
7.根据权利要求2所述的基于深度强化学习的大规模敏捷软件项目调度方法,其特征l l l l+1在于,所述S3中所述轨迹信息为一个五元组;其中,done为判断调度是否终止的标记,待开发用户故事集合为空时,调度结束,done=True;否则,done=False。
8.根据权利要求1或6所述的基于深度强化学习的大规模敏捷软件项目调度方法,其特征在于,所述S4中调度决策模型采用基于复合调度规则的优先经验回放双重深度Q网络算法进行训练,包括当前Q网络、目标Q网络和经验回放池。
9.根据权利要求8所述的基于深度强化学习的大规模敏捷软件项目调度方法,其特征在于,所述S4的具体步骤包括:S401、将步骤S3中收集到的轨迹信息放入经验回放池中,计算轨迹时序差分误差,并更新经验回放池中所有轨迹的优先级;
S402、当池中的轨迹数量达到限值时,按最小采样批次采样池中的轨迹供给目标Q网络进行Q值预测;
S403、目标Q网络会将预测的Q值传递给当前Q网络进行梯度下降训练,神经网络参数训练好的当前Q网络会定期将参数复制给目标Q网络,提升目标Q网络的预测能力;
S404、当前Q网络会根据每个冲刺中敏捷软件项目和人力资源的状态特征,选取Q值最大的动作规则执行。