论文部分内容阅读
软件项目调度问题(Software Project Scheduling Problem,SPSP)是经典的调度子问题,其主要解决软件项目开发中的软件开发工程师和任务之间的调度分配管理问题,以保证在尽量小的开发时间和较少的成本花费下完成项目任务。目前随着软件产业的快速发展,SPSP问题变得日益重要,且越来越复杂,难以管理。由于现实生活中软件项目管理者往往需要同时关注软件项目的多个目标属性值,且这些目标属性值是相互制约,相互冲突的,因此属于NP-hard的多目标优化问题。 当前关于软件项目调度多目标优化问题的求解方案与实际应用需求还有很大差距,因此有待进一步研究。本文的主要工作内容如下: (1)对当今国内外关于软件项目调度问题和多目标进化算法的研究现状做了综述,并重点介绍了本文用到的多目标软件项目调度问题模型MOSPSP(Multi-objectives Software Project Scheduling Problem),简述了相关进化算法——NSGA-Ⅱ,蚁群算法以及基于分解的多目标进化算法。 (2)提出了一个基于分解的多目标蚁群优化算法求解MOSPSP问题的方案——MOEA/D-ACOMOSPSP。该方案将MOSPSP模型的多目标软件项目调度问题转化为蚂蚁觅食构造图,采用两种经典的多目标分解方法,并利用两种启发式信息策略来引导蚂蚁进行搜索,获取非占优解集。用36组公开的测试数据集来进行仿真实验,并将其结果与经典算法NSGA-Ⅱ的结果进行对比,从获得的Pareto非占优解集和算法运行时间耗费两方面来对算法进行检测。结果表明,现有参数情况下的MOEMD-ACO_MOSPSP算法在部分复杂的实例中不能获得比NSGA-Ⅱ更好的非占优解,但是MOEMD-ACO_MOSPSP算法在大部分实例中能获得比NSGA-Ⅱ好的解,往往能获得比NSGA-Ⅱ具有更小的开发周期目标值的解,且MOEA/D-ACO_MOSPSP算法在求解所有实例时耗费的时间都比NSGA-Ⅱ少很多。软件项目管理者可根据自身项目需求,选择合适的算法。 (3)对多目标软件项目调度问题的MOSPSP模型所得到的Pareto解进行鲁棒性分析研究。以模型中员工的最大投入度的不稳定性和不确定性为切入点,通过蒙特卡洛实验分析软件项目调度多目标优化问题的鲁棒性。选取代表性的数据集进行仿真实验,考察其对软件项目管理者的决策支持情况。通过这些鲁棒性分析原理和研究结果,可以看出对于软件项目调度问题进行鲁棒性分析有重要意义,这些鲁棒性评估结果能为软件项目管理者提供重要的决策支持信息。