主权项 |
一种基于进化多目标优化的主动‑反应式动态项目调度方法,包括如下步骤:(1)初始化:读取项目初始时的输入信息,包括每个任务的工作量、技能要求、任务优先级图,每位软件工程师所掌握的技能、可在本项目中投入的最大工作量、正常月薪、加班月薪;给出优化目标的定义;将项目初始时刻视为初始调度点t<sub>0</sub>,将紧急动态事件的发生时刻视为重调度点t<sub>l</sub>(l=1,2,…);在t<sub>l</sub>(l=0,1,2,…)时刻所处的项目开发环境下,项目工期和成本分别定义为完成当前所有任务剩余的工作量所花费的时间开销和财力;本发明通过对不确定因素进行多次仿真,以比较项目成本或工期的实际值与预估值之间的差值,并将此定义为抗风险能力;稳定性仅在t<sub>l</sub>(l=1,2,…)有定义,本发明将其定义为软件工程师在新旧方案各个任务中投入的工作量的差别;所设定的约束条件包括任务技能约束,以及软件工程师不能超负荷工作的约束;(2)在项目初始时刻t<sub>0</sub>,采用主动调度方式生成一个预测方案;根据项目初始时刻任务和软件工程师的属性,基于静态多目标进化算法,同时优化项目的以下目标:项目成本、工期以及抗风险能力,预先产生一组在多个目标间进行折中的调度方案,供项目管理者进行参考,并从中挑选出一个满意解;(3)在项目开发过程的每个重调度点t<sub>l</sub>(l=1,2,…)时刻,采用由紧急事件驱动的基于动态多目标进化算法的反应式重调度方式;依据任务和软件工程师的当前属性,通过捕捉项目中不同类型紧急动态事件(软件工程师请假离开、软件工程师回归、新的紧急任务下达)的特征,并充分利用已有的历史调度方案信息,在多目标进化算法的群体初始化中引入与问题知识相关的启发式动态优化策略,使得算法快速地适应动态变化的环境,在较短的时间内产生一组在项目的成本、工期、抗风险能力及稳定性之间折中的新的调度方案,并由项目管理者从中挑选出一个满意解;该方案在项目中一直执行,直到下一个紧急事件发生,重新启动动态多目标进化算法进行调度。 |