精英反向黄金正弦鲸鱼算法-附代码

本文提出了一种改进的鲸鱼优化算法EGolden-SWOA,结合精英反向学习策略和黄金正弦机制,旨在解决原始WOA的收敛速度慢和稳定性不足问题。算法通过精英个体生成反向种群,增强全局搜索和避免局部最优,同时黄金正弦调整了螺旋式狩猎,提高收敛速度和寻优精度。实验结果显示EGolden-SWOA在工程优化中表现出优越性能。
摘要由CSDN通过智能技术生成

精英反向黄金正弦鲸鱼算法


摘要:针对鲸鱼优化算法(Whale Optimization Algorithm,WOA)存在的收敛速度慢、寻优稳定性不足等问题,本文提出了精英反向学习的黄金正弦鲸鱼优化算法(Elite Opposition-Based Golden-Sine Whale Optimization Algorithm,EGolden-SWOA).利用精英反向学习策略提高种群的多样性和质量可以有效提升算法的收敛速度,同时引入黄金分割数优化WOA的寻优方式,从而协调算法的全局探索与局部开发能力.

1.鲸鱼优化算法

基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167

2. 改进鲸鱼优化算法

2.1 精英反向学习策略

反 向 学 习 策 略 ( Opposition-Based Learning,OBL)是 Tizhoosh 于 2005 提出的,Tizhoosh 的研究表明反向解更接近全局最优的概率比当前解高出 50% .该策略可以有效增加种群的多样性和质量,防止算法进入 “早熟” 状态, 目前该策略已被应用于多种算法的 改进并取得较好效果, 如夏学文等人将反向学习策略 引入粒子群算法, 有效解决了粒子群算法种群多样性 和收玫性之间的矛盾 [ 9 ] { }^{[9]} [9]; 魏文红等人将反向学习引入 差分进化算法, 有效提高了算法的多样性和全局收玫 速度 [ 10 ] { }^{[10]} [10]. 反向学习策略计算并评估当前解的反向解, 从当前解及其反向解中选取最优解个体作为新一代 个体.
定义 1 (反向解) 假设当前种群的一个可行解为 X = ( x 1 , x 2 , ⋯   , x d ) X=\left(x_{1}, x_{2}, \cdots, x_{d}\right) X=(x1,x2,,xd) ( d d d 维搜索空间; x j ∈ [ a j , b j ] ) \left.x_{j} \in\left[a_{j}, b_{j}\right]\right) xj[aj,bj]), 则其 反向解为 X ˉ = ( x 1 ‾ , x 2 ‾ , ⋯   , x d ‾ ) \bar{X}=\left(\overline{x_{1}}, \overline{x_{2}}, \cdots, \overline{x_{d}}\right) Xˉ=(x1,x2,,xd), 其中 x j ‾ = ω ( a j + b j ) − x j , ω \overline{x_{j}}=\omega\left(a_{j}+b_{j}\right)-x_{j}, \omega xj=ω(aj+bj)xj,ω 为在 [ 0 , 1 ] [0,1] [0,1] 上均匀分布的一般化系数.
精英反向学习(Elite Opposition-Based Learning, EOBL)是针对反向学习策略生成的反向解不一定比 当前搜索空间更容易搜索到全局最优解这一问题提 出的, 已成功应用于多种算法的改进研究, 如谢承旺、王志杰等人将动态反向学习策略引入到进化算法提 出了一种新型多目标进化算法 [ 1 ] { }^{[1]} [1], 谢承旺、许雷等人 还将精英反向学习机制以及烟花爆炸算法引入多目 标优化领域并取得了较好效果 [ 12 ] { }^{[12]} [12], 周新宇等人将精英 粒子引入粒子群算法增强了算法性能 [ 13 ] { }^{[13]} [13]. 该策略利用 精英个体比一般个体包含更多有效信息的这一特点, 通过当前种群中的精英个体构造出反向种群以此来 增加种群的多样性, 并从当前种群和反向种群构成的 新种群中选取最优个体作为新一代个体, 进入下一次 的迭代.
定义 2 (精英反向解) 假设当前种群中的一般个 体对应的自身极值点为精英个体 X i , j e = ( X i , 1 e , X i , 2 e , ⋯   \boldsymbol{X}_{i, j}^{\mathrm{e}}=\left(X_{i, 1}^{\mathrm{e}}, X_{i, 2}^{\mathrm{e}}, \cdots\right. Xi,je=(Xi,1e,Xi,2e,, X i , d e ) ( i = 1 , 2 , 3 , ⋯   , s ; j = 1 , 2 , ⋯   , d ) \left.X_{i, d}^{\mathrm{e}}\right)(i=1,2,3, \cdots, s ; j=1,2, \cdots, d) Xi,de)(i=1,2,3,,s;j=1,2,,d), 其反向解 X i , j e ‾ = \overline{\boldsymbol{X}_{i, j}^{\mathrm{e}}}= Xi,je= ( X i , 1 e ‾ , X i , 2 e ‾ , ⋯   , X i , d e ‾ ) \left(\overline{X_{i, 1}^{\mathrm{e}}}, \overline{X_{i, 2}^{\mathrm{e}}}, \cdots, \overline{X_{i, d}^{\mathrm{e}}}\right) (Xi,1e,Xi,2e,,Xi,de), 可以定义为:
X i , j e ‾ = K ∗ ( α j + β j ) − X i , j e (6) \overline{\boldsymbol{X}_{i, j}^{\mathrm{e}}}=K^{*}\left(\alpha_{j}+\beta_{j}\right)-\boldsymbol{X}_{i, j}^{\mathrm{e}}\tag{6} Xi,je=K(αj+βj)Xi,je(6)
其中, K K K 为在 ( 0 , 1 ) (0,1) (0,1) 上的动态系数, X i , j e ∈ [ α j , β j ] , α j = X_{i, j}^{\mathrm{e}} \in\left[\alpha_{j}, \beta_{j}\right], \alpha_{j}= Xi,je[αj,βj],αj= min ⁡ ( X i , j ) , β j = max ⁡ ( X i , j ) , α j \min \left(X_{i, j}\right), \beta_{j}=\max \left(X_{i, j}\right), \alpha_{j} min(Xi,j),βj=max(Xi,j),αj β j \beta_{j} βj 为动态边界, 动态边界 克服了固定边界难以保存搜索经验的缺点, 使精英反 向解可以定位在狭窄的搜索空间中, 有利于算法收玫. 若动态边界操作使 X i , j e \boldsymbol{X}_{i, j}^{\mathrm{e}} Xi,je 越过边界成为非可行解, 可以利 用随机生成的方法重置, 重置方式如下:
X i , j e ‾ = rand ⁡ ( α i , β j ) (7) \overline{\boldsymbol{X}_{i, j}^{\mathrm{e}}}=\operatorname{rand}\left(\alpha_{i}, \beta_{j}\right) \tag{7} Xi,je=rand(αi,βj)(7)

2.2 精英反向学习的黄金正弦鲸鱼优化算法

针对基本鲸鱼优化算法存在的不足,本文提出了精英反向学习的黄金正弦鲸鱼优化算法( Elite Opposi-tion-Based Golden-Sine Whale Optimization Algorithm,EGolden-SWOA) . 使用精英反向学习策略提高种群的多样性,采用群体选择机制,将当前鲸鱼群体与其反
向群体按适应值排序,从中选择出最优的 s 个个体作为下一代鲸鱼个体以此提高种群的质量. 首先,对于初始种群来说,精英反向学习策略的引入可以提升其多样性,为较好的全局搜索奠定基础; 其次,对于每一代种群,精英反向学习策略可以通过产生远离局部极值点的反向解引导算法跳出局部最优,增强算法的全局寻优能力. 同时,精英反向学习所采用的动态边界的跟踪搜索模式可获得一个逐步缩小的搜索空间,有利于提高全局收敛速度,从而协调算法的全局探索与局部开发能力.

另外, 本文在保留基本鲸鱼优化算法的包围式狩 猎机制和随机狩猎机制的基础上利用黄金正弦算法对 螺旋式狩猎机制进行了改进. 在螺旋式狩猎机制中, 座 头鲸在寻找到猎物后, 向猎物位置移动并通过对数螺 旋式运动捕获猎物, 猎物位置即最优个体的位置 X p t \boldsymbol{X}_{\mathrm{p}}^{t} Xpt 是 此螺线运动过程中的导向坐标, 这虽然有助于算法后 期收玫速度的提升, 但是该寻优方式易使种群个体在 解空间内迅速集聚, 从而导致群体多样性锐降, 增大陷 入局部最优的可能性. 针对这一问题, 本文引入了黄金 正弦算法对螺旋式狩猎机制进行了改进. EGoldenSWOA 算法中鲸鱼向猎物位置移动并通过黄金正弦螺 旋式运动捕获猎物, 每一次迭代中鲸鱼个体都会与最 优个体进行信息交流, 每个个体都可以充分吸收自身 与最优个体的位置差信息, 同时利用引入黄金分割数 而得到的系数逐步缩小搜索空间, 且通过参数 R 1 R_{1} R1 R 2 R_{2} R2 控制位置更新距离和方向, 优化了基本 WOA 算法的寻 优方式, 引领个体稳步趋近最优值, 协调算法的全局探 索与局部开发能力, 从而提高算法的寻优精度和速度, 获得理想的寻优结果. 引入黄金正弦算法后该过程的 位置更新公式如下:
X i t + 1 = X i t ∗ ∣ sin ⁡ ( R 1 ) ∣ + R 2 ∗ sin ⁡ ( R 1 ) ∗ ∣ x 1 ∗ X p t − x 2 ∗ X i t ∣ (8) \boldsymbol{X}_{i}^{t+1}=\boldsymbol{X}_{i}^{t} *\left|\sin \left(R_{1}\right)\right|+R_{2} * \sin \left(R_{1}\right) *\left|x_{1} * \boldsymbol{X}_{\mathrm{p}}^{t}-x_{2} * \boldsymbol{X}_{i}^{t}\right|\tag{8} Xit+1=Xitsin(R1)+R2sin(R1) x1Xptx2Xit (8)
EGolden-SWOA 具体执行步骤如下:
步骤 1 设置相关参数;
步骤 2 种群初始化, 主要包括初始种群个体数 s s s 、 候选解维度 d d d 、最大迭代次数 t max  t_{\text {max }} tmax ;
步骤 3 根据目标函数计算每一个鲸鱼个体的适

应度值;
步骤 4 反向种群 O P = { } \mathrm{OP}=\{\} OP={};
步骤 5 根据 α j = min ⁡ ( X i , j ) , β j = max ⁡ ( X i , j ) \alpha_{j}=\min \left(X_{i, j}\right), \beta_{j}=\max \left(X_{i, j}\right) αj=min(Xi,j),βj=max(Xi,j) 计算个 体的当前搜索边界;
步骤 6 对种群中的每个个体根据式 (5) 生成精英 反向解并添加到反向种群 OP 中;
步骤 7 从当前种群和反向种群中选取适应度值 较好的 s s s 个优良个体作为下一代种群, 并将适应度值最 小的个体位置记为猎物位置 X p t \boldsymbol{X}_{\mathrm{p}}^{t} Xpt;
步骤 8 更新参数 a 、 A 、 C a 、 A 、 C aAC;
步骤 9 若参数 ∣ A ∣ ≥ 1 |A| \geq 1 A1, 根据式 (4) 进行位置行更新;
步骤 10 若参数 ∣ A ∣ < 1 |A|<1 A<1, 根据式 (9) 对鲸鱼位置进 行更新:
X i t + 1 = { X P t − A ⋅ D , p r < 0.5 X i t ∗ ∣ sin ⁡ ( R 1 ) ∣ + R 2 ∗ sin ⁡ ( R 1 ) ∗ ∣ x 1 ∗ X P t − x 2 ∗ X i t ∣ , p r ≥ 0.5 \boldsymbol{X}_{i}^{t+1}=\left\{\begin{array}{rr} \boldsymbol{X}_{\mathrm{P}}^{t}-A \cdot \boldsymbol{D}, & p_{r}<0.5 \\ \boldsymbol{X}_{i}^{t} *\left|\sin \left(R_{1}\right)\right|+R_{2} * \sin \left(R_{1}\right) *\left|x_{1} * \boldsymbol{X}_{\mathrm{P}}^{t}-x_{2} * \boldsymbol{X}_{i}^{t}\right|, \\ p_{r} \geq 0.5 \end{array}\right. Xit+1= XPtAD,Xitsin(R1)+R2sin(R1) x1XPtx2Xit ,pr0.5pr<0.5
(9) ;
步骤 11 利用约束条件检查新位置的可行性, 若 新位置可行则鲸鱼个体更新其位置, 否则鲸鱼个体保 持其原有位置;
步骤 12 重复步骤 3 ∼ 3 \sim 3 步骤 11 , 直到达到最大迭代 次数 t max ⁡ t_{\max } tmax 时终止操作.

3.实验结果

请添加图片描述

4.参考文献

[1]肖子雅,刘升.精英反向黄金正弦鲸鱼算法及其工程优化研究[J].电子学报,2019,47(10):2177-2186.

5.Matlab代码

6.Python代码

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
融合黄金正弦反向学习的粒子群算法(Gold-Sine-RLPSO)是一种优化算法,它结合了黄金正弦函数、反向学习和粒子群算法的优点。该算法的基本思想是,利用黄金正弦函数来调整粒子的速度和位置,从而使得粒子能够更快地找到最优解;同时,采用反向学习的方法来保证算法的收敛性和稳定性。在算法的实现过程中,通过对粒子的速度和位置进行调整,不断地更新粒子的状态,从而逐步逼近最优解。 具体来说,Gold-Sine-RLPSO算法包括以下几个步骤: 1. 初始化:随机生成一定数量的粒子,并为每个粒子随机赋予速度和位置。 2. 计算适应度:根据每个粒子的位置计算适应度,即目标函数的值。 3. 更新粒子的速度和位置:使用黄金正弦函数来调整粒子的速度和位置,从而使得粒子能够更快地找到最优解。 4. 反向学习:根据每个粒子的历史状态和适应度,采用反向学习的方法来调整粒子的速度和位置,从而保证算法的收敛性和稳定性。 5. 更新全局最优解:对于每个粒子,记录其历史最优解和全局最优解,并更新全局最优解。 6. 判断终止条件:如果满足终止条件,则停止算法;否则返回步骤3。 Gold-Sine-RLPSO算法融合了黄金正弦函数、反向学习和粒子群算法的优点,能够有效地解决各种优化问题。然而,在实际应用中,还需要根据具体问题对算法进行进一步优化和调整,才能取得更好的优化效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值