非均匀变异的互利自适应缎蓝园丁鸟优化算法-附代码

非均匀变异的互利自适应缎蓝园丁鸟优化算法


摘要:针对缎蓝园丁鸟算法(SBO)求解精度不高和收敛速度慢等问题,提出一种改进的缎蓝园丁鸟算法(ISBO)。首先,引入非均匀变异算子,动态地调整每次迭代园丁鸟个体的搜索步长,使算法能快速高效地寻求全局最优值;其次,采用互利因子对算法的社会部分引入更多组合模式,使其不再单一围绕前一个园丁鸟附近搜索,以获取更好的最优解;最后,为了更好地平衡算法的局部与全局搜索能力,引入余弦变化的惯性权重因子来更新园丁鸟的位置公式。

1.缎蓝园丁鸟优化算法

基础缎蓝园丁鸟优化算法算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107857884

2.非均匀变异的互利自适应缎蓝园

2.1 非均匀变异

在 SBO 算法早期的迭代中,园丁鸟个体的求偶亭位置通常是远离最优解的,搜索半径太小会造成群体陷入局部最优。在算法后期,园丁鸟个体的求偶亭位置接近最优解,只需要一个非常小的范围作为解向量的微调。标准算法的个体变异寻优方式不利于快速高效地寻求全局最优值。本文引入非均匀变异算子,在前期寻优时,整个种群大范围地搜索,伴随着迭代次数的增加,逐步地缩小搜索范围,动态地调整每次迭代每个园丁鸟个体的求偶亭的搜索步长。假设对求偶亭位置 x i = { x i 1 , x i 2 , . . . , x i n } T x_i=\{x_{i1},x_{i2},...,x_{in}\}^T xi={xi1,xi2,...,xin}T的第 k k k个分量执行变异运算,而 x i k x_{ik} xik 的下界和上界分别记为 v a r m i n var_{min} varmin v a r m a x var_max varmax ,则变异后的分量:
x i k ′ = { x i k + Δ ( t , v a r m a x − ) ) x i , k r < 0 x i k − Δ ( t , x i k − v a r m i n ) r ≥ 0 x_{i k}^{\prime}=\left\{\begin{array}{ll} \left.x_{i k}+\Delta\left(t, var_{m a x}-\right)\right)x_{i, k} r<0 \\ x_{i k}-\Delta\left(t, x_{i k}-var_{min} )\right. & r\geq0 \end{array}\right. xik={xik+Δ(t,varmax))xi,kr<0xikΔ(t,xikvarmin)r0
式中, t t t是当前迭代次数; r r r是[0,1]间均匀产生的随机数; ∆ ( t , y ) ∆(t, y) (t,y)由下式给出,它是一种自适应调节步长的变异算子,程序前半段它几乎能在整个定义域内大范围搜索,以期发现可能的潜在区域,随着算法的进行,搜索半径依概率减小,到算法临近结束时仅在当前解的狭小邻域内搜索,这样就能保证位置矢量陷入局部最优。
Δ ( t , y ) = y ⋅ ( 1 − r ( 1 − t / T ) b ) \Delta(t, y)=y \cdot\left(1-r^{(1-t / T)^{b}}\right) Δ(t,y)=y(1r(1t/T)b)
式中,t 是当前迭代次数;T 是最大迭代次数;r 是[0,1]间均匀产生的随机数;b 是决定变异运算非均匀度的系统参数,按文献取值为 5。

2.2 互利因子

标准 SBO 算法的求偶亭位置更新公式产生的新求偶亭直接替换原求偶亭,存在以下缺点:第 i个求偶亭位置会根据由轮盘赌方式选择的第 j 个求偶亭位置和当前种群最优求偶亭位置进行更新,对随机选择的第 j 个求偶亭个体依懒性较强,缺乏与其它个体学习的部分。为增加 SBO 算法的种群多样性。本文提出引入互利因子对园丁鸟的求偶亭位置进行更新,公式如下:
x i k t = x i k t + φ × ( x b e s t − C × R ) x_{i k}^{t}=x_{i k}^{t}+\varphi \times\left(x_{\mathrm{b} \mathrm{e} \mathrm{st}}-C \times R\right) xikt=xikt+φ×(xbestC×R)

C = ( x h + x m ) / 2 \mathrm{C}=\left(x_{\mathrm{h}}+x_{m}\right) / 2 C=(xh+xm)/2

式中, φ φ φ是(0,1)之间的随机数; x b e s t , k x_{best,k} xbest,k 为整个种群当前的最优位置的第 k k k维分量; C C C即为互利因子,代表园丁鸟种群中第 h h h m m m个求偶亭的关系特征, R R R为受益参数,随机选取 1 或 2。由式新产生的位置矢量需判断适应度值是否优劣后再替换原有个体。

2.3自适应惯性权重

为了更好地平衡算法的局部与全局搜索能力,本文引入余弦变化的惯性权重因子来更新园丁鸟求偶亭的位置公式:
x i k t + 1 = ω ( t ) × x i k t + λ k ( ( x j k + x best  , k 2 ) − x i k t ) x_{i k}^{t+1}=\omega(t) \times x_{i k}^{t}+\lambda_{k}\left(\left(\frac{x_{j k}+x_{\text {best }, k}}{2}\right)-x_{i k}^{t}\right) xikt+1=ω(t)×xikt+λk((2xjk+xbest ,k)xikt)

ω ( t ) = ( ω min ⁡ + ω max ⁡ ) / 2 + ( ω max ⁡ − ω min ⁡ ) cos ⁡ ( t π / T ) \omega(t)=\left(\omega_{\min }+\omega_{\max }\right) / 2+\left(\omega_{\max }-\omega_{\min }\right) \cos (\mathrm{t} \pi / \mathrm{T}) ω(t)=(ωmin+ωmax)/2+(ωmaxωmin)cos(tπ/T)

其中, ω m a x ω_{max} ωmax 为初始惯性权重, ω m i n ω_{min} ωmin 为迭代结束时的惯性权重,t 为当前迭代次数,T 为最大迭代次数。惯性权重 ω m a x ω_{max} ωmax =0.95, ω m i n ω_{min} ωmin =0.4 时算法具有最佳性能。因此,随着迭代的进行,惯性权重从 0.95 非线性递减至 0.4,使得迭代初始阶段较大的惯性权重能让算法保持较好的搜索能力,而迭代后期较小的惯性权重则有助于提高算法的开发能力。

算法流程图如下:
请添加图片描述

3.实验结果

请添加图片描述

5.参考文献

[1]王依柔,张达敏,樊英.非均匀变异的互利自适应缎蓝园丁鸟优化算法[J/OL].计算机工程与科学:1-10[2020-11-23].http://kns.cnki.net/kcms/detail/43.1258.TP.20200803.1202.004.html.

6.Matlab代码

7.python代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值