融合混沌对立和分组学习的海洋捕食者算法-附代码

融合混沌对立和分组学习的海洋捕食者算法


摘要:针对海洋捕食者算法存在收敛速度慢,不易逃出局部最优的缺点,提出了一种改进海洋捕食者算法。首先,将混沌映射与对立学习策略相结合,在保证遍历性和随机性的同时,生成高质量的初始猎物种群。其次,引入自适应t分布变异算子更新种群,增加种群多样性,避免陷入局部最优。对更新后的种群,按照适应度分为精英组和学习组,学习组向精英组猎物的平均维度进行学习,精英组内的猎物相互维度学习,进一步提高种群质量和搜索精度。

1.海洋捕食者算法

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

2.改进海洋捕食者算法

2.1 加入混沌对立学习策略

混沌映射是一种非线性理论, 具有非线性、普适 性、遍历性和随机性的特点, 可以按自身的特性在一 定范围内不重复地遍历所有状态, 在智能算法优化中 能帮助生成新的解, 增加种群多样性, 因而被广泛应 用 [ 11 ] { }^{[11]} [11] 。 Tent 映射迭代速度快, 混沌序列在 [ 0 , 1 ] [0,1] [0,1] 之间均 匀分布,其表达式如下:
λ t + 1 = { λ t / α , λ t ∈ [ 0 , α ) ( 1 − λ t ) / ( 1 − α ) , λ t ∈ [ α , 1 ] t = 0 , 1 , 2 , ⋯   , T ( 13 ) \lambda_{t+1}=\left\{\begin{array}{c} \lambda_t / \alpha, \lambda_t \in[0, \alpha) \\ \left(1-\lambda_t\right) /(1-\alpha), \lambda_t \in[\alpha, 1] \end{array} \quad t=0,1,2, \cdots, T(13)\right. λt+1={λt/α,λt[0,α)(1λt)/(1α),λt[α,1]t=0,1,2,,T(13)
其中, λ t \lambda_t λt 是第 t t t 次迭代时产生的混沌数, T T T 是最 大迭代次数, α \alpha α 是介于 [ 0 , 1 ] [0,1] [0,1] 的常数, 本文选取 α = 0.7 \alpha=0.7 α=0.7

在解决问题的时候, 考虑到无效解决方案的对立 侧可能存在更好的解决方案, Tizhoosh 等人提出了对 立学习策略(Opposition-based learning,OBL) [ 12 ] { }^{[12]} [12], 近年 来 OBL 已经有效地应用于各种群智能算法中。在群智 能算法初始化种群的过程中, 随机生成的部分个体往 往会分布在远离最优解的无效区域和边缘区域, 进而 降低了种群的搜索效率。采用 OBL 策略, 在种群初始 化中引人一个随机解及其对立解要比引人两个独立的 随机解更能提高初始种群的质量。假设某个 d d d 维个体 位置为:
Δ = { x 1 , x 2 , … , x d } (14) \Delta=\left\{x_1, x_2, \ldots, x_d\right\} \tag{14} Δ={x1,x2,,xd}(14)
设其个体位置的下界和上界分别为 l b , u b l b, u b lb,ub, 则其 对立侧位置可以表示为:
Δ ˉ = { x ˉ 1 , x ˉ 2 , … , x ˉ d } ( 15 ) x ˉ j = l b j + u b j − x j ( 16 ) \begin{array}{r} \bar{\Delta}=\left\{\bar{x}_1, \bar{x}_2, \ldots, \bar{x}_d\right\}(15) \\ \bar{x}_j=l b_j+u b_j-x_j(16) \end{array} Δˉ={xˉ1,xˉ2,,xˉd}(15)xˉj=lbj+ubjxj(16)
但是, 在目标函数上下界限对称的时候, 由公 式(16)可看出, 所生成的反向解为原来解的完全镜 像 (取负), 对部分具有偶函数特性的函数, 完全镜 像解与原解目标值一致, 不适合将两个种群做适应 度排序, 无法有效获得高质量种群。

本文将 Tent 混沌映射与 O B L \mathrm{OBL} OBL 相结合, 提出了一 种新的 TOBL ( Tentand Opposition-based learning ) 机 制。 TOBL 的数学模型如下:
X ˉ i , j = l b j + u b j − λ i ⊗ X i , j i = 1 , … , n ( 17 ) \bar{X}_{i, j}=l b_j+u b_j-\lambda_i \otimes X_{i, j} i=1, \ldots, n(17) Xˉi,j=lbj+ubjλiXi,ji=1,,n(17)
其中, X ˉ i , j \bar{X}_{i, j} Xˉi,j 为第 i i i 个猎物对立位置的第 j j j 维分量。 TOBL 策略相当于以目标函数上下界限的和为中 心, 利用 Tent 的均匀变化, 来动态压缩原初始种群的 分布范围, 并在压缩的同时尽量让种群均匀。

2.2 加入自适应 t 分布

基本 MPA 中, 猎物更新完位置以后, 需要检测 和更新顶级捕食者的位置, 并进行一次海洋记忆存储, 接下来再考虑 FADs 的影响, 对猎物的位置做进一步 更新。
为了保证此次记忆存储更加有效, 引人自适应 t \mathrm{t} t 分布算子, 在模拟 FADs 的影响之前, 对猎物的位置 进行变异, 如果变异后的位置更佳, 则代替原来的位 置。数学模型如下:
X i ′ = X i + X i ⋅ t (  Iter  ) (18) X_i^{\prime}=X_i+X_i \cdot t(\text { Iter }) \tag{18} Xi=Xi+Xit( Iter )(18)
其中, X i ′ X_i^{\prime} Xi 为第 i i i 个猎物变异后的位置, t ( t( t( Iter ) ) ) 为 以当前迭代次数为自由度的 t \mathrm{t} t 分布。在迭代初期, 迭 代次数较少, t \mathrm{t} t 分布近似于柯西分布, 分布的更加平滑。 此时, t \mathrm{t} t 分布算子在大概率上取到较大值, 位置变异所 采取的步长较大, 算法具有良好的全局探索能力, 与 MPA 第一阶段的全局搜索特性形成正反馈; 在迭代中 期, 一半的捕食者用于全局探索,另一半的捕食者用 于局部开发, 而此时 t \mathrm{t} t 分布介于柯西分布和正态分布 之间, t \mathrm{t} t 分布算子在大概率上取值相对折中, 同时兼顾 了 MPA 第二阶段的全局搜索和局部开发, 使捕食者 更容易返回到猎物丰富的地区并成功受食, 进而对算 法性能形成正反馈; 在迭代后期, t \mathrm{t} t 分布近似于标准正 态分布, 分布的更加集中, t \mathrm{t} t 分布算子在大概率上取较 小值, 置变异所采取的步长较小, 兼顾了 MPA 第三 阶段的局部开发特性。

2.3 加入分组维度学习策略

在算法迭代过程中, 有些猎物位置的某些维度实 际上可能早已达到了最优维度, 由于其中个别维度的 影响, 使得这些猎物位置的适应度变差 [ 14 ] { }^{[14]} [14] 。为了能在 海洋里生存下去, 位置差的猎物(捕食者)需要向位 置好的猎物 (捕食者)学习捕食本领, 基于这个思想, 提出了一种分组维度学习的策略。将 FADs 影响后的 猎物按照适应度排序平均分成两组, 适应度好的一组 称为精英组, 适应度差的一组称为学习组 [ 15 ] { }^{[15]} [15]

学习组维度交叉策略
由于精英组的维度各有优劣, 所以将精英组的位 置维度取平均值, 学习组的每一个猎物都向精英组平 均维度进行学习。该策略将学习组每个猎物的每一维 度同精英组平均维度值做差, 按照绝对差异大的优先 交叉原则, 取绝对差异大的前 H 1 H_1 H1 个对应维度逐一交叉, 如果交叉后猎物的适应度更好, 则交叉对应维度, 反 之则不交叉。该策略的数学模型为:
Δ X L , i k = ∣ X L , i k − X J A V G k ∣ ( 19 ) X L , i = { X L , i k ,  crass  , f ( X L , i k ,  crass  )  is better than  f ( X L , i ) X L , i ,  otherwise  ( 20 ) \begin{gathered} \Delta X_{L, i}^k=\left|X_{L, i}{ }^k-X_{J A V G}^k\right|(19) \\ X_{L, i}= \begin{cases}X_{L, i}^{k, \text { crass }}, & f\left(X_{L, i}^{k, \text { crass }}\right) \text { is better than } f\left(X_{L, i}\right) \\ X_{L, i}, & \text { otherwise }\end{cases}(20) \end{gathered} ΔXL,ik= XL,ikXJAVGk (19)XL,i={XL,ik, crass ,XL,i,f(XL,ik, crass ) is better than f(XL,i) otherwise (20)
其中, X L , i X_{L, i} XL,i 表示学习组第 i i i 个猎物位置, X L , i k , c r a s s X_{L, i}^{k, c r a s s} XL,ik,crass 表示和精英组平均维度值第 k k k 维交叉后的第 i i i 个猎物 位置, Δ X L , i k \Delta X_{L, i}{ }^k ΔXL,ik 表示学习组第 i i i 个猎物第 k k k 维和精英组平均维度第 k k k 维的绝对差异, X J A V G k X_{J A V G}^k XJAVGk 表示精英组平均值的 第 k k k 维。

精英组维度交叉策略
精英组整体离全局最优点相对较近, 所以不适合 全部维度的扰动变异, 这样会导致精英在最优解附近徘 徊, 影响收玫精度。所以, 令精英组的猎物相互之间取长补短, 在保留自己优势维度的前提下, 向相邻的 猎物进行学习。该策略交叉原则和学习组猎物交叉原 则相同, 只是将交叉对像, 由精英组平均维度值更换 为与该猎物相邻的前一个猎物, 设精英组每个猎物取 绝对差异大的前 H 2 H_2 H2 个相邻对应维度逐一交叉。

MSIMPA 算法实现步骤
步骤 1 由公式(14)-(17)对猎物的位置进行 混沌对立初始化, 并设置相关参数:种群规模、 最大迭代次数、FADs 等。
步骤 2 计算每个猎物适应度值, 并将适应 度值进行比较、替换, 由最佳猎物构成顶级捕 食者矩阵, 并进行海洋记忆存储。
步骤 3 由公式(3)-(11)更新猎物位置和移 动步长。
步骤 4 由公式(18)的 t \mathrm{t} t 分布变异算子进行 位置扰动更新, 并保留最佳位置。
步骤 5 重新计算每个猎物适应度值, 并将 适应度值进行比较、替换,由最佳猎物构成顶级捕 食者矩阵, 并进行海洋记忆存储。

步骤 6 考虑 FADs 和漩浴的影响, 由公式(12) 进一步更新位置, 并保留最佳位置。
步骤 7 将更新后的种群按照适应度优劣均分 成学习组和精英组, 由公式(19)-(20)进行维度交叉, 交叉后适应度变好则交叉对应维度,反之则不 交叉。
步骤 8 判断算法是否满足迭代条件, 若满足, 则算法终止, 否则转至步骤 2 。

3.实验结果

请添加图片描述

4.参考文献

[1]马驰,曾国辉,黄勃,刘瑾.融合混沌对立和分组学习的海洋捕食者算法[J/OL].计算机工程与应用:1-14[2021-11-02].http://kns.cnki.net/kcms/detail/11.2127.TP.20210730.1554.011.html.

5.Matlab代码

6.python代码

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值