在我们的日常生活中,调度问题无处不在,比如十字路口的车辆调度,工厂中的生产调度,操作系统中的线程调度等等。项目调度主要是从时间和资源上进行考虑进而合理地安排项目活动的执行。传统项目调度问题主要研究确定环境下的调度问题,而在实际的项目调度过程中往往存在各种各样的不确定性,例如由于环境的变化某种资源不能按时到达,导致某个活动的执行时间变长;或者由于某些突发事件,项目中某些活动的优先关系需要进行调整以及另外一些还没有显示出来的不确定性,所以研究不确定环境下的调度问题受到越来越多的关注。本文先对已有的项目调度问题进行了总结和归纳,接着在已有问题的层次和范围方面进行扩展。研究模型从单一目标变为多目标模型,研究环境从确定环境转变为不确定环境。接下来我们介绍本文研究的关于资源投资项目调度问题(resource investment project scheduling problems,RIPSP)的模型以及相应解决算法。首先,我们研究了静态环境下的资源投资项目调度问题,利用差分算法和局部搜索算子进行优化处理;接着研究了动态环境下的多目标资源投资项目调度优化问题,其中动态环境是基于情景模式采样产生的;最后,鉴于情景模式采样需要大量的时间和资源,我们采用鲁棒代理模型研究动态环境下的资源投资项目调度问题的解鲁棒性。本论文主要工作可总结如下:(1)将差分算法(differential evolution algorithm)和局部搜索算子(local search operator)相结合解决静态资源投资项目调度问题,我们称此算法为DELS-RIPSP,这里是一个基于延迟惩罚的最小化项目花费问题。差分算法和局部搜索算子相结合能够有效提升现有个体的性能从而提高整个种群的质量。在实验中,我们测试了450个基准问题,目的在于评估差分算法和局部搜索算子相结合能否有效地解决资源投资项目调度问题。最后,实验结果证明差分算法和局部搜索算子相结合能够快速地找到资源投资项目调度问题的最优解,并且在解决大型项目的资源投资项目调度问题方面比较有潜力。(2)研究基于工期不确定性多目标的动态资源投资项目调度问题(resource investment project scheduling problems with perturbation on activity durations,DP-RIPSPs),提出了一个更吻合现实调度过程的多目标研究模型,基于此多目标模型研究不确定环境下的资源投资项目调度方案鲁棒性的问题。其中,不确定性指项目执行过程中的活动工期是不确定的,并且不确定性是通过情景模式采样来模拟的。我们采用非支配排序遗传算法(NSGA-II)和改进的非支配排序遗传算法(NSGAM-II)分别解决基于不确定性的多目标资源投资项目调度优化问题。改进的非支配排序遗传算法受益于局部搜索算子能够快速找到最优解。我们对1152个基准问题分别进行了测试,结果表明NSGAM-II比NSGA-II能够更快速地找到方案鲁棒性解。(3)鉴于第二部分采用情景模式采样的方法产生不确定环境时需要耗费大量的内存和时间,我们采用基于鲁棒代理模型的方法间接地度量资源投资项目调度问题的方案鲁棒性。鲁棒代理模型能够简便快捷地计算出调度方案的鲁棒性。这里,我们提出了一种基于自由时差和资源冗余线性组合的鲁棒代理模型(a new surrogate model of robustness,SMnew)。在实验中,我们测试了288个基准问题,其中90%以上的测试结果证明了SMnew比已有的鲁棒代理模型具有更好的性能。
软件测试是保证软件质量的重要手段,而生成测试用例是成功进行软件测试的前提。测试数据生成问题本质上是一个优化问题,这使得已有的优化方法有可能用于测试数据的生成。常用的方法主要包括:随机法、约束求解法、启发搜索法等等。其中启发搜索法又称基于搜索的软件测试(SBST),被视为最有前景的自动测试生成方法,该方法将测试用例自动生成问题转化为一个数学优化问题,并通过启发式搜索算法求解。将启发搜索法应用于面向对象软件的自动测试生成问题已取得了显著进展。目前已有eToc、EvoUnit、Evacon、TestFul和EvoSuite等进化测试原型工具可以用于为面向对象软件自动生成测试用例。其中EvoSuite是基于WBGA(Whole Suite Based Genetic Algorithm)方法的优秀开源测试框架,能够生成有效的测试用例集。然而,高昂的测试代价严重影响EvoSuite在实际软件测试中的广泛应用。为了高效地生成具有高分支覆盖率的测试用例集,本文从多目标优化的角度,研究求解测试用例生成问题的新方法,最终提出了一种基于分支覆盖准则的可扩展性的测试用例生成方法:基于偏好的多目标进化算法,即PMOGA(Preference-based Multiple-Objective Genetic Algorithm)。首先,将分支覆盖转化为多目标优化问题,提出测试用例生成问题的多目标优化模型,该模型引入基于分层策略的偏好关系,从而增大个体的选择压力,缩减Pareto前沿个体数量;其次,在求解该模型时,选择针对性的适应度函数和设计合理选择算子,并且采用外部归档集保留优秀个体;最后,在PMOGA算法基础上使用局部搜索算子对种群中的最优个体进行局部搜索,优化算法的局部搜索精度,减少进化搜索开销。本文在开源框架EvoSuite中实现了上述方法,为了验证本文方法的有效性,选取2个基准程序和4个开源程序对PMOGA与WBGA方法进行了实验比较,最后还对加入局部搜索算子的LS-PMOGA与PMOGA进行了实验对比。实验结果表明,PMOGA方法相比WBGA方法加快了收敛速率,能够高效地生成测试用例,且生成的测试用例具有更高的分支覆盖能力;加入局部搜索提高了算法的局部搜索精度,进一步提高测试用例生成效率。
暂无评论