多子群改进的海洋捕食者算法-附代码

多子群改进的海洋捕食者算法


摘要:文章针对海洋捕食者算法(Marine Predators Algorithm, MPA)求解精度不高和收敛速度慢等缺点,提出一种多子群改进的海洋捕食者算法(Multi-subpopulation Marine Predators Algorithm ,MSMPA)。根据不同适应度值将海洋捕食者种群分为领导者、追随者和衔尾者三个子群。领导者子群保持位置不变,追随者子群进行高斯变异,衔尾者子群由全局最优位置和平均位置矢量生成。使用不同维度的经典基准函数来评估改进海洋捕食者算法的效率。实验结果显示,经过改进的海洋捕食者算法拥有更高的寻优精度和稳定性。

1.海洋捕食者算法

基础海洋捕食者算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/118468662

2.改进海洋捕食者算法

2.1 高斯变异

Bäck 和 Schwefel [ 9 ] { }^{[9]} [9] 提出的高斯变异可用于提高 元启发式算法的搜索效率[10-12]。高斯分布由于其曲 线中间高两端较短的特点, 易在亲本候选解附近生 成新解。在搜索过程中, 应用高斯变异时, 它将采 取较小的步长, 探索解空间的更多地方。高斯变异 的主要优点是可以防止搜索过程中多样性的丧失。 将高斯变异用于海洋捕食者算法的位置更新, 如公 式 (10) 所示。
P i = P i ∗ ( 1 + Gaussian ⁡ ( θ ) ) (10) P_i=P_i *(1+\operatorname{Gaussian}(\theta)) \tag{10} Pi=Pi(1+Gaussian(θ))(10)
Gaussian ⁡ ( θ ) \operatorname{Gaussian}(\theta) Gaussian(θ) 为服从高斯分布的随机向量。

2.2 MSMPA 算法

为解决基本的 MPA 全局搜索寻优能力的不足, 容易收玫得到局部最优的问题, 本文提出了多子群 改进的海洋捕食者算法。在海洋捕食者的种群进行 迭代后, 根据获得的种群适应度值的大小对各个种 群进行了排序, 并将排序后的种群分为三个子种群 并对不同的子种群进行不同的操作。将适应度值由 小到大排列, 将种群按数量平均分为三个子群, 将 适应度值最小的到排名 N / 3 N / 3 N/3 分为一个子群, 命名为 领导者子群; 将适应度值排名为 N / 3 + 1 N / 3+1 N/3+1 2   N / 3 2 \mathrm{~N} / 3 2 N/3 分 为一个子群, 命名为追随者子群; 将适应度值排名 为 2   N / 3 + 1 2 \mathrm{~N} / 3+1 2 N/3+1 N \mathrm{N} N 分为一个子群, 命名为衔尾者子群。 领导者子群由于具有优异的寻优能力, 其位置 保持不变; 将追随者子群根据公式 (11) 进行更新; 将衔尾者子群根据公式 (12) 更新。
P i = P i ( 1 + Gaussian ⁡ ( θ ) ) N / 3 ≤ i ≤ 2 N / 3 (11) P_i=P_i(1+\operatorname{Gaussian}(\theta)) \quad N / 3 \leq i \leq 2 N / 3 \tag{11} Pi=Pi(1+Gaussian(θ))N/3i2N/3(11)

P i = P best  − P mean  − r 3 ( l b i + r 4 ( u b i − l b i ) ) , 2 N / 3 + 1 ≤ i ≤ N (12) P_i=P_{\text {best }}-P_{\text {mean }}-r_3\left(l b_i+r_4\left(u b_i-l b_i\right)\right),2 N / 3+1 \leq i \leq N \tag{12} Pi=Pbest Pmean r3(lbi+r4(ubilbi)),2N/3+1iN(12)

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1]张磊,刘升,高文欣,郭雨鑫.多子群改进的海洋捕食者算法[J/OL].微电子学与计算机:1-9[2021-11-01].https://doi.org/10.19304/J.ISSN1000-7180.2021.0062.

5.Matlab代码

6.python代码

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值