首页 理论教育多目标蚁群算法的设计与优化

多目标蚁群算法的设计与优化

【摘要】:为消除各类约束导致的大量任务间冲突,获得问题的Pareto解集,本书采用多目标蚁群算法优化任务的调度顺序。由于本章算法为多目标蚁群算法,因此本章算法采取与第3章的优化算法不同的启发策略。本章算法多目标蚁群算法采用自适应策略,在算法起始阶段,启发选择比例参数q 0[式(3-6)]取较大值利于加快收敛速度;在算法搜索后期,选择较小的q 0值可增加种群多样性。

为消除各类约束导致的大量任务间冲突,获得问题的Pareto解集,本书采用多目标蚁群算法优化任务的调度顺序。针对蚁群算法在应用过程中存在收敛慢、容易出现停滞现象、运算时间长等不足,引入自适应策略和小窗口思想改进蚁群算法,算法具体流程如图9-28所示。

图9-28 算法流程

1)可行解构造

如图9-28所示,基于小窗口蚁群算法产生的任务调度序列即为问题的可行解,本算法可行解的构造与第3章ASAC-DLO算法的构造方法相同。由于本章算法为多目标蚁群算法,因此本章算法采取与第3章的优化算法不同的启发策略(最优解的选择和信息的更新)。

本章算法多目标蚁群算法采用自适应策略,在算法起始阶段,启发选择比例参数q 0[式(3-6)]取较大值利于加快收敛速度;在算法搜索后期,选择较小的q 0值可增加种群多样性。因此q 0大小在搜索过程中依下式自适应调整:

式中,G max为最大迭代次数,G current为当前代数,q max和q min分别为任务q 0的上下限。

2)Pareto解集拥挤度排序

设置外部Pareto解集S p保存当前已找到的Pareto解,基于Pareto解集定义选择当前蚁群与解集S p中的Pareto解,并更新外部最优解集S p。为避免算法对蚁群个体朝Pareto解过于密集的区域引导,而偏离Pareto解最前沿方向,不能对集合S p中所有Pareto解路径上的信息素加强。因此设置精英Pareto解集E p用于更新路径上的信息素,精英解集E p为集合S p中拥挤度最小的前N ep个个体。

常用的拥挤度计算方法需计算集合中所有个体间的距离,计算量较大,影响算法效率。采用一种快速的拥挤度计算方法,用来评估一个解周围其他解的密集程度。先根据每个目标函数的大小对Pareto解集中的解排序,对于每个解F i计算由解F i+1和F i-1构成的立方体的平均边长作为解Fi的拥挤距离D i,边界解(某个目标函数的最大值或最小值)的拥挤距离为无穷大。

式中,分别为第o个目标的最大值和最小值,|obj|为目标函数个数,个体的拥挤度为拥挤距离的倒数。

3)信息素更新策略

蚁群选择任务调度次序后将在路径上留下信息素,以指导子代蚁群寻优。设置任务间初始信息素为τ0,假设蚂蚁个数为N a,本算法采用全局信息素更新原则,更新规则为

式中,τi,j(t+1)为第t+1代任务间信息素浓度,ρ为挥发系数,Δτi,j(t)为本次循环任务J i与J j间的信息素增量,算法采用Ant cycle模型[122]对每一代精英个体路径上的信息素增强,即

式中,Q为信息素增强系数。为避免算法过早收敛,将每代任务路径上的信息素限定在[τmin,τmax]区间内。