论文题目:A particle swarm algorithm based on the dual search strategy for dynamic multi-objective optimization
基于双搜索策略的多目标动态优化粒子群算法(Jintong Yang a,b,1, Juan Zou a,b,1,∗, Shengxiang Yang a,c, Yaru Hu a,b, Jinhua Zheng a,b, Yuan Liu a,b)Swarm and Evolutionary Computation 83 (2023) 101385
刚开始学习多目标优化算法,不作商业用途,如果有不正确的地方请指正!
个人总结:
摘要
- 为了应对算法的收敛性、多样性并能够快速对环境变化作出反应作者提出了一种基于双搜索策略的粒子群优化算法.
- 设计了两种搜索策略来更新每个粒子的速度,提出了一种有效的动态响应机制,由存档集预测和分片搜索策略组成
引言
为了解决在快速变化的环境中失去多样性的问题,作者提出了一种具有双重搜索策略的 PSO 算法(DSSPSO),以帮助种群在短期进化中快速恢复多样性。我们使用分解法将问题划分为多个子问题。然后,每个粒子对应一个子问题独立进化,为其对应的子问题找到最优解。在此过程中,种群中的帕累托最优粒子会被存储在外部文件中。
更新粒子速度的两种策略分别是为了提高收敛速度和种群的多样性。一种是更新 pbest 和 gbest 对应的邻域(邻域是存档集的子集),充分利用邻域信息更新粒子,使算法更有可能跳出局部优化,保持良好的分布。来自群体的有价值信息将反馈给每个粒子。为了进一步改进静态 PSO,另一种方法使用了基于角度的速度更新机制,以实现在可行空间内更快的收敛速度。
此外,在环境变化的响应阶段,提出了一种有效的动态响应机制,该机制结合了档案集预测和分片搜索策略,有助于快速响应环境变化
背景
A.DMOP基础
对动态多目标优化的各种基础知识描述
B.动态多目标进化算法的一般框架
C.相关工作
从上面的框架内容可以看出,环境变化检测,变化响应机制和静态优化算法是DMOEA中的重要组成部分.
环境变化检测
环境变化检测机制用于检测当前环境是否发生变化,并决定是否做出响应.目前关于变化检测的研究主要集中在两个方面:随机重新评估和基于传感器的检测
变化响应机制
当变化检测机制检测到变化时,就证明新的环境即将到来,因此变化响应机制需要发挥作用,使种群适应环境的变化。目前的变化响应机制主要包括以下几类:
- 多样性保存/引入机制
- 记忆机制
- 预测机制
- 多种群机制
- 基于特殊模型的机制:如迁移学习、支持向量机、强化学习
静态优化算法
目前,许多 DMOA 都是在经典多目标优化算法(如 NSGA-II 、RMMEDA、MOEA/D )的基础上引入适当的环境变化检测算子和变化响应机制来求解 DMOP
D.粒子群优化算法
在传统的 PSO 方法中,更新第 i 个粒子的速度和位置的方法如下:
其中,t 是迭代次数,vt i 和 xt i 分别代表第 i 个粒子的速度和位置。ω 是一个非负数,称为惯性因子,c1 和 c2 是加速度系数,r1 和 r2 是范围为[0,1]的随机数。对于粒子 i,pbestt i 表示第 t 次迭代时在其自身历史集合中发现的最佳位置,gbestt i 是全局最佳粒子的位置信息。
提出的算法
A.算法框架
在初始化阶段,生成一组分散在目标空间的参考向量 W,将一组问题分解为多个标量子问题,并引导粒子演化。然后,一组 P = {x1, x2, ..., xN },包含 N 个粒子,并初始化每个粒子的个人历史最优值(pbest)和整个粒子群的全局最优值(gbest)。同时,创建一个档案集 A,用于存储粒子群中的最优解,并将一个粒子群 P 分配给外部档案集 A。本文将 gbest 定义为档案集中 Crowding-distance 最大的解(边界粒子除外)。然后,DSSPSO 进入循环进化,直到满足停止条件。算法伪代码如下:
B.粒子更新的两种策略
传统的PSO算法问题:
- 仅通过个体行为(pbest)和整个种群的社会行为(gbest)来更新每个粒子。在这种情况下,如果粒子的 gbest 或 pbest 是最优局部解,则粒子将被引导到最佳局部区域,从而丢失的算法所需要的种群多样性
提出的方法1:使用粒子来更新粒子速度
- 为每个粒子的 pbest 和整个种群的 gbest 创建一个邻域,并计算存档集中的粒子pbest与最优解之间的欧几里得距离如图所示
- 然后,将粒子 Pi 的邻域定义为存档集中粒子 Pi 的 pbest 最接近a的解,gbest 的邻域设计也是如此。 在所提出的邻域中,粒子 Pi 在 pbest 的邻域中随机选择一个解,并通过邻域学习。此外,从当前全局最优解 gbest 的邻域中随机选择一个粒子来更新粒子的速度 Pi
- 并将速度公式修改为
- 其中 ω 是惯性权重,t 是迭代数,R1 和 R2 是 [0, 1] 中两个均匀分布的随机数。c1 和 c2 是两个学习因子,npt i 是第 t 次迭代中粒子 Pi 的 pbest 邻域的随机解,ngt i 是第 t 次迭代中粒子 Pi 的 gbest 邻域的随机解。
方法2:探索操作
- 为了加快粒子快速收敛到POF,引入了一种基于角度的粒子更新方法,并通过非支配和拥挤度距离排序的方法对粒子进行选择.
- 首先从已经挑选出来的粒子集合L随机选择两个解,并计算这两个解的粒子与xi的角度如图所示
- 作者认为角度θ越小,粒子向前的驱动就越好。因此,当使用方程(9)更新速度时,它会快速引导相应的粒子在最优聚集值附近接近邻近区域
其中 ω 是惯性权重,t 是迭代数,c1 是学习因子,r1 是 [0, 1] 中的随机数。pθ 是获胜者精英粒子的位置。
算法伪代码如图所示:
C.pbest和gbest的更新
Pbest是粒子的历史最优值,在演化过程中不断变化。因此,我们需要不断比较这种演变是否比以前更好。如果个人更好,我们会更新 pbest,如果不是,则不更新 pbest。
首先,如果后代粒子主导粒子 Pi 的 pbest,则粒子 Pi 的 pbest 将被替换。其次,如果后代粒子习 和粒子 Pi 的 pbest 不占主导地位,那么我们将比较它们的切比雪夫值。切比雪夫值较低的粒子更有可能将粒子 Pi 引导到有希望的区域。我们将精英粒子放入存档集中,因此我们从存档集合中选择具有最大拥挤距离的个体(边界粒子除外)作为最优全局个体(gbest)
切比雪夫值计算如下:
其中 Z∗ = (z∗ 1, ..., z∗ m) 是参考点(即,对于每个 i ∈ {1, ..., m},z∗ i = min{fi(x)})。W = {ω1, ..., ωN } 是一组均匀的权重向量
在算法执行环境选择后,我们按照定义更新 gbest。如果 pbesti 超过两代没有更新,我们将使用突变操作来帮助粒子有效地突破局部最优。
Pbest更新伪代码如下:
D.环境改变
本文采用了一种新的动态处理机制,包括归档预测和基于粒子群P的分段搜索策略
归档预测
采用档案集的非支配解进行预测:
- 首先,计算前两代非支配解的中心点
- 然后,通过两个中心点的移动方向来预测 POS 的新位置。
- 设 Act 是存档解中非主导集的中心点,At 是在时间步长 t 结束时获得的存档集的非主导解。中心点的计算公式如下:
|At|是指时间t时存档中非支配解的数量,xt = (x1 t , ..., xn t ) 是时间 t 处的个体,因此,在时间 t 处称为 ΔAct 的中心点的移动方向可以定义为:
- 根据移动方向预测下个时间的个体
分段搜索
该策略主要以粒子群P中的非优势解为基准,沿矢量方向或相反方向生成解。属于粒子群P的粒子用于利用新信息来引入多样性。
- 假设 Pct 是粒子群 P 在时间 t 处的非支配解的中心点。我们可以将漏洞利用步长定义为:
- 然后,利用SPEA2的截断技术从粒子群P的非支配解中选出10个最优解,并表示为Bi(i ∈ {1, 2, ..., 10})。如果 F1 中的个体数量不够,则根据拥挤距离依次从 F2、...、Fα 中选择其余个体。在此过程中,矢量 ΔPct 的步长被均匀地分成 k 个部分。并通过方程生成新的解:
为了使下标为正数,设置 j = β + 3
-
环境响应策略伪代码如图所示
实验设置
简单看了一下参数
学习因子 C1 = C2 = 1,邻域大小 A = 10,参数 γ = 10,参数 K = 8,惯性权重 ω 设置为随机 [0, 1]。