论文部分内容阅读
最优化是当前计算科学和工程实际领域中普遍存在的重要问题,例如经济学中的利益最大化、电子工程中的信号干扰最小化等。优化问题的种类及数量很多,本文针对单目标优化、多目标优化杂合算法及其在任务调度问题中的应用开展研究,这些问题在计算理论和实际生活应用中起着重要的作用,具有重要的理论研究意义与工程价值。 在过去的几十年中,进化算法(EAs)在求解全局优化问题上表现出了相当的成功,备受研究者的关注。大量的进化算法被研究者们提出,例如遗传算法(GA),粒子群优化(PSO),差分进化(DE),人工蜂群(ABC),模拟退火(SA),蚁群优化(ACO),和声搜索(HS),蜘蛛算法(SSA),蜘蛛猴算法(SMO),化学反应优化(CRO),人工化学反应(ACROA),蜻蜓算法(DA)等。本文主要针对CRO杂合算法进行研究,主要工作如下: (1)面向单目标优化的杂合CRO算法HP-CRO 本文提出单目标优化问题的新算法(称为HP-CRO),该算法结合了粒子群算法(PSO)和化学反应算法(CRO)的优势与特点。为了设计一个好的优化算法,一定要能够较好的平衡局部和全局搜索能力。实际上,探索和开发是相互抵触的。PSO算法若在探索方面取得较好的效果则会在开发方面表现欠佳。 CRO算法是一个性能良好的算法,其分子与容器壁无效碰撞和分子间无效碰撞均属于局部搜索机制。利用PSO算法的全局搜索性和CRO算法中的局部搜索,本文提出结合两者特性的混合算法。 本算法中,参数初始化设置的好坏是求解问题的关键,将会直接影响算法的性能和最终求解结果。在不同阶段调节算法的搜索概率可以在一定程度上改善算法的效率和精度。另外对于控制参数进行自适应调整是一种十分常见的方法,这样不仅可以避免繁重的重复试探工作而且可以降低算法对参数的依赖程度。因此,本研究寻找一种动态自适应调整参数的方法来指引算法的进化方向,可以进一步提高算法的效率,并且使算法参数设置不当对算法求解问题的影响程度降低,使其产生新个体的过程更加合理。 该混合算法分为三个阶段:算法初始化阶段、算法迭代阶段、算法终止阶段。在初始化阶段,需要定义解空间和一些算法函数,并且对系统参数赋初值。首先在解空间随机生成初始种群,这将增加算法的搜索规模。在算法迭代阶段,进行一系列迭代操作。在每一次迭代中,从种群中随机选择一个分子(粒子)。接下来我们为了动态的引导种群的进化方向,此时设置一个自适应变化的参数γ,作为是否选择PSO更新操作判断标准的。然后产生一个均匀分布于[0,1]区间的随机数,比较该随机数与γ的大小,来决定算法选择执行哪种操作。假如标准满足时,将会执行PSO操作;否则,决定下一步操作究竟是分子与容器壁间的无效碰撞还是分子间的无效碰撞。为了做出判断,此时产生一个位于[0,1]区问的随机数r,如果r大于InterRate,将会执行分子间无效碰撞;否则,则会执行单分子无效碰撞。之后,算法检查新得到的最优解并记录它们,算法循环迭代直到满足终止条件为止。最后在算法终止阶段,算法输出最优解。 为了测试算法的优化计算效果,本研究针对一系列参数值组合出来了的标准测试函数,每次测试运行的终止条件设置为达到性能估计值(NFEs)。在这项研究中,为了避免参数的选择可能会影响HP-CRO的优化效果,本文结合其他研究人员的建议,并经过多次重复测试来设置经验参数,以尽量保证算法达到最佳优化结果。 本文将该算法在23个测试函数上进行了测试,实验结果表明该杂合算法在大部分的实验中都优于原始的化学反应优化算法,该算法在解的均值和方差方面都优于其他算法。 (2)面向高维优化的正交CRO优化算法——OCRO 正交实验设计(OED)方法是一个强大的设计方法,通过一系列少数的实验样本同时对多个设计参数进行分析。由于正交实验设计方法具有较强的系统推理能力,因此它不仅成功应用于工业生产设计中,还被广泛应用于许多优化算法中。 本文设计了一种改进的算法,称为正交化学反应方法(OCRO)。它将正交交叉操作融入到化学反应优化方法中,此算法不仅通过化学反应优化方法中的分子与墙壁间的无效碰撞以及分子间的无效碰撞来产生新的分子,还通过正交交叉搜索操作来产生新的个体。化学反应优化方法中的两种操作仍旧起到局部搜索的作用,而正交交叉操作则是在整个解空间做系统且高效的全局搜索。但是正交交叉操作只适宜于解决离化问题,因此Leung和Wang等人提出一种经过量化处理的正交交叉算子用于解决连续的数值优化问题,实验结果表明,量化正交交叉操作能有效提高算法性能。在本文中,我们采用量化正交交叉操作来改善化学反应优化方法的全局搜索机制,从而使得算法能够快速收敛到最优解可能存在的区域。 算法包括三个阶段:初始化、迭代以及终止阶段。在每一次运行过程中,首先对整个群体进行初始化,再进行一定次数的迭代后判断是否满足终止条件,如果满足则停止,输出当前最优解,否则进入下一次迭代。在初始化阶段,设置分子以及分子的初始属性,比如初始动能InitialKE、动能损失率KELossRate等参数;同时,解的最优值在最初始化阶段被随机初始化。在迭代阶段的每次计算中,算法首先通过区间的随机数t与 MoleColl的比较来决定搜索操作的选择,量化正交交叉操作只有当随机数t小于MoleColl时才运行,否则进行局部搜索;其次,对局部搜索操作进行判断,选择单分子的无效碰撞或是分子间的无效碰撞。 在本文的实验测试中,将OCRO的结果与CRO,ABC和OXDE,进行对比,每个测试函数进行25次试验,分析其平均最小计算值和标准偏差,对四种算法的进行统计排名。分析结果表明本文提出的新算法无论是在收敛性能、收敛速度、算法可靠性还是时间复杂度上都要优于其他三种算法。另外通过实验表明该算法不仅能够获得最优解或是近似最优解,且其在大部分实验尤其是高维函数的求解中收敛速度更快,鲁棒性能更好。 (3)面向多目标优化的杂合CRO优化算法——MO-HPCRO 在许多现实问题中,考虑到目标是相互制约的,对单一目标优化一个特定的解方案可能对其他目标导致不可接受的结果。采用进化计算方法求解多目标问题是研究所有非劣解的集合,本文采用混合CRO方法来求解多目标优化问题。 本文中提出基于混合粒子群算法和化学反应算法的多目标优化算法MO-HPCRO。该混合算法中PSO搜索机制中粒子的更新策略是基于Pareto非支配排序和拥挤距离的比较的。多目标粒子群保留外部归档集用来存储迭代过程中产生的非支配解,采用拥挤距离机制对外部集进行缩减,在一定程度上,拥有较小拥挤距离值的解的周围拥有更多近似解。故在同一前沿时,保留拥有较大拥挤距离值的个体进入到下一代会增加种群的多样性。 (4)面向异构环境任务调度算法——HGCRO 任务调度问题是在系统分配任务时优化实际应用的整体性能,使得最大完成时间(Makespan)最小。调度问题是NP完全问题,基于元启发式算法和启发式搜索方法的理论被提出来获得最优解。 HGCRO算法分为三个阶段:初始化阶段,执行阶段以及终止阶段。在初始化阶段,首先对系统参数赋予初值,并在解空间随机生成初始种群,对个体进行编码以适合任务调度的特性,通过拓扑排序产生调度序列。在算法执行阶段,一系列迭代进行,在每一次迭代中,从种群中随机选择两个分子,判断分子反应的类型,若分子在连续次局部搜索后未获得新的优化解,便执行遗传算法中的交叉操作。否则进行局部搜索,通过产生一个均匀分布于[0,1]区间的随机数r与InterRate进行比较,判断分子进行单个分子与墙壁的无效碰撞或是分子间无效碰撞。一次迭代结束后,算法判断是否满足终止条件,若满足则输出当前最优解以及其调度长度,否则继续进入下一次循环。 最后通过HGCRO算法与GA、HEFT和DMSCRO算法的实验结果表明本文提出的新算法无论在任务数、处理器数量以及迭代次数不同的情况下都能取得较好的效果。 总结与展望 总的来说,本文主要对化学反应优化的一些混合算法进行了研究。我们提出了四种算法,其中HP-CRO,OCRO算法用于解决单目标优化问题.MO-HPCRO算法用于多目标优化问题,HG-CRO算法用于解决任务调度问题。经过实验结果表明,我们提出的算法在解决优化问题上是有效的。接下来,本文的研究将在一下几个方面继续: (1)未来,我们将减少HP-CRO参数并尝试通过与其他算法杂交(如CRO+ ABC,CRO+ACO等),或者通过结合贪婪方法开发更好版本的CRO。 (2)我们今后的研究重点将在加强搜索能力来解决低维函数的问题上。到目前为止,关于变种CRO来解决多目标优化问题的研究并不多,所以这值得我们重新设计我们的解决办法。在面对更多的连续问题上,甚至扩展到在处理组合优化问题上,测试我们的HP-CRO和OCRO算法,如DAG调度问题,车辆路径问题和旅行商问题等。这些不久将会成为另一个关键问题。 (3)我们也将考虑OCRO算法扩展为一个多目标优化技术,它可以根据能源相关的算法来设计出一个云计算环境,以此来节省能源。 (4)在未来的研究中,我们将这些算法在许多并行平台上运行来提高算法的运行速度。并且研究参数的设置来提高算法的效率,考虑用基于化学反应的算法来解决许多其他的优化问题。