一种改进的黏菌优化算法

文章目录

  • 一、理论基础
    • 1、黏菌算法
    • 2、改进的黏菌算法
      • 2.1 基于混沌反向的学习策略
      • 2.2 自适应策略
        • 2.2.1 新的非线性递减策略
        • 2.2.2 线性递减选择范围
      • 2.3 螺旋搜索策略
      • 2.4 MSMA算法伪代码
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、黏菌算法

请参考这里。

2、改进的黏菌算法

为了克服基本SMA的缺点,本文提出了三种改进策略来提高其性能,分别是:采用基于混沌反向的学习策略增强种群多样性;采用自适应策略平衡算法的开发和探索能力;为了防止算法陷入局部最优,采用了螺旋搜索策略。下面详细介绍三种改进策略。

2.1 基于混沌反向的学习策略

基本的反向学习(Opposition-based learning, OBL)公式如下所示: X i o = l b + u b − X i t (1) X_i^o=lb+ub-X_i^t\tag{1} Xio=lb+ubXit(1)其中 X i o X_i^o Xio X i t X_i^t Xit对应的反向解。
为了进一步增强种群多样性,克服基本OBL生成的反向解不一定比当前解好的不足,考虑到混沌映射具有随机性和遍历性的特点,可以帮助生成新解,增强种群多样性。因此,本文将混沌映射与OBL相结合,提出了一种基于混沌对立的学习策略。具体的数学模型描述如下: X i T o = l b + u b − λ i ⋅ X i t (2) X_i^{To}=lb+ub-\lambda_i\cdot X_i^t\tag{2} XiTo=lb+ubλiXit(2)其中, X i T o X_i^{To} XiTo表示与种群中第 i i i个个体对应的混沌反向解, λ i \lambda_i λi是对应的混沌映射值。
文献[1]的实验表明:采用Sine混沌映射的性能最好。因此,本文采取Sine混沌映射。

2.2 自适应策略

2.2.1 新的非线性递减策略

在SMA迭代优化过程中,参数 a a a的变化对开发与勘探的平衡有重要影响。在SMA中, a a a在早期迭代中迅速降低,在后期迭代中减慢,早期较小的 a a a不利于全局探索。因此,为了进一步平衡开发和探索,提高全局探索能力和局部开发的收敛能力,本文提出了一种新的非线性递减策略。参数 a a a的新定义如下所示: a = 2.5 ⋅ ( 1 − t t max ⁡ ) ( 2 ⋅ t / t max ⁡ ) (3) a=2.5\cdot\left(1-\frac{t}{t_{\max}}\right)^{(2\cdot t/t_{\max})}\tag{3} a=2.5(1tmaxt)(2t/tmax)(3)为了直观地说明新策略的效果,将其与SMA中的参数更改策略进行比较,如图1所示。本文提出的新策略在早期阶段缓慢减少,这增加了全局探索的时间。在后期迭代中,减少的速度也比原始策略快,这有利于SMA加速开发。
一种改进的黏菌优化算法_第1张图片

图1 参数a的比较

2.2.2 线性递减选择范围

原始SMA从所有群体中随机选择两个个体进行位置更新,这不利于算法的后期收敛。为了增强SMA的收敛性,个体的选择范围应该随着迭代次数的增加而减小。选择范围参数 SR \text{SR} SR描述如下: SR = ceil ( SR min ⁡ − SR max ⁡ t max ⁡ ⋅ t + SR max ⁡ ) (4) \text{SR}=\text{ceil}\left(\frac{\text{SR}_{\min}-\text{SR}_{\max}}{t_{\max}}\cdot t+\text{SR}_{\max}\right)\tag{4} SR=ceil(tmaxSRminSRmaxt+SRmax)(4)其中 SR max ⁡ \text{SR}_{\max} SRmax SR min ⁡ \text{SR}_{\min} SRmin分别表示最大和最小选择范围。

2.3 螺旋搜索策略

为了更好地平衡SMA的开发和探索,本文引入了螺旋搜索策略。螺旋搜索策略示意图如图2所示。
从图2可以看出,螺旋搜索策略可以扩大搜索范围,更好地提高全局探索性能。螺旋搜索策略的数学公式如下所示: { X t + 1 = X t best + e l ⋅ cos ⁡ ( l ⋅ 2 π ) ⋅ ( X t best − X i t ) l = 1 − 2 ( t t max ⁡ ) (5) \begin{dcases}X_{t+1}=X_t^{\text{best}}+e^l\cdot\cos(l\cdot2\pi)\cdot\left(X_t^{\text{best}}-X_i^t\right)\\[2ex]l=1-2\left(\frac{t}{t_{\max}}\right)\end{dcases}\tag{5} Xt+1=Xtbest+elcos(l2π)(XtbestXit)l=12(tmaxt)(5)根据更新种群位置的概率随机选择螺旋搜索策略和原始策略。因此,修改后的位置更新公式如下: X t + 1 = { rand ⋅ ( u b − l b ) + l b ,   rand < z X t best + v b ⋅ ( W ⋅ X t A − X t B ) ,      rand < p    &    rand < 0.85 X t best + e l ⋅ cos ⁡ ( l ⋅ 2 π ) ⋅ ( X t best − X i t ) , rand < p    &    rand ≥ 0.85 v c ⋅ X t ,       rand ≥ p    &    rand < 0.15 X t best + e l ⋅ cos ⁡ ( l ⋅ 2 π ) ⋅ ( X t best − X i t ) , rand ≥ p    &    rand ≥ 0.15 (6) X_{t+1}=\begin{dcases}\text{rand}\cdot(ub-lb)+lb,\quad\quad \quad \quad \quad \quad \quad \quad\,\text{rand}Xt+1=rand(ublb)+lb,rand<zXtbest+vb(WXtAXtB),rand<p&rand<0.85Xtbest+elcos(l2π)(XtbestXit),rand<p&rand0.85vcXt,randp&rand<0.15Xtbest+elcos(l2π)(XtbestXit),randp&rand0.15(6)
一种改进的黏菌优化算法_第2张图片

图2 螺旋搜索示意图

2.4 MSMA算法伪代码

提出的改进黏菌算法MSMA伪代码如图4所示。
一种改进的黏菌优化算法_第3张图片

图4 MSMA算法伪代码

二、仿真实验与结果分析

将MSMA与SMA、EO、HHO、GWO、GSA、MFO、MRFO、MPA和SSA进行对比,实验设置种群规模为30,最大迭代次数为500,每个算法独立运行30次,以文献[1]中F1、F2(单峰函数/30维)、F9、F10(多峰函数/30维)、F19、F20(固定维度多峰函数/3维、6维)为例,结果显示如下:
一种改进的黏菌优化算法_第4张图片
一种改进的黏菌优化算法_第5张图片
一种改进的黏菌优化算法_第6张图片
一种改进的黏菌优化算法_第7张图片
一种改进的黏菌优化算法_第8张图片
一种改进的黏菌优化算法_第9张图片

函数:F1
MSMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SMA:最差值: 2.9962e-313, 最优值: 0, 平均值: 9.9873e-315, 标准差: 0, 秩和检验: 0.33371
EO:最差值: 4.833e-39, 最优值: 1.4041e-43, 平均值: 3.5862e-40, 标准差: 1.13e-39, 秩和检验: 1.2118e-12
HHO:最差值: 4.9855e-93, 最优值: 1.094e-110, 平均值: 1.6662e-94, 标准差: 9.1014e-94, 秩和检验: 1.2118e-12
GWO:最差值: 3.7727e-26, 最优值: 1.6503e-29, 平均值: 2.7418e-27, 标准差: 7.2694e-27, 秩和检验: 1.2118e-12
GSA:最差值: 7.0807e-16, 最优值: 8.0376e-17, 平均值: 2.7194e-16, 标准差: 1.5186e-16, 秩和检验: 1.2118e-12
MFO:最差值: 30000.4473, 最优值: 0.55787, 平均值: 3003.7352, 标准差: 6511.6869, 秩和检验: 1.2118e-12
MRFO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
MPA:最差值: 3.8133e-22, 最优值: 7.1971e-25, 平均值: 4.9706e-23, 标准差: 7.3317e-23, 秩和检验: 1.2118e-12
SSA:最差值: 5.045e-06, 最优值: 4.3171e-08, 平均值: 4.1574e-07, 标准差: 9.5105e-07, 秩和检验: 1.2118e-12
函数:F2
MSMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SMA:最差值: 1.5472e-144, 最优值: 1.3668e-302, 平均值: 5.1574e-146, 标准差: 2.8248e-145, 秩和检验: 1.2118e-12
EO:最差值: 2.2361e-23, 最优值: 1.6575e-25, 平均值: 5.2337e-24, 标准差: 5.2147e-24, 秩和检验: 1.2118e-12
HHO:最差值: 8.7789e-48, 最优值: 6.9741e-59, 平均值: 2.9458e-49, 标准差: 1.6024e-48, 秩和检验: 1.2118e-12
GWO:最差值: 3.219e-16, 最优值: 1.6079e-17, 平均值: 1.1783e-16, 标准差: 9.3798e-17, 秩和检验: 1.2118e-12
GSA:最差值: 10.2201, 最优值: 5.6466e-08, 平均值: 0.77125, 标准差: 1.9745, 秩和检验: 1.2118e-12
MFO:最差值: 80.0034, 最优值: 0.19595, 平均值: 30.7785, 标准差: 20.9019, 秩和检验: 1.2118e-12
MRFO:最差值: 2.7477e-202, 最优值: 2.471e-219, 平均值: 1.7041e-203, 标准差: 0, 秩和检验: 1.2118e-12
MPA:最差值: 1.2378e-12, 最优值: 1.305e-14, 平均值: 3.2109e-13, 标准差: 3.1963e-13, 秩和检验: 1.2118e-12
SSA:最差值: 6.4248, 最优值: 0.029081, 平均值: 2.0131, 标准差: 1.807, 秩和检验: 1.2118e-12 
函数:F9
MSMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
EO:最差值: 5.6843e-14, 最优值: 0, 平均值: 1.8948e-15, 标准差: 1.0378e-14, 秩和检验: 0.33371
HHO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
GWO:最差值: 16.2963, 最优值: 5.6843e-14, 平均值: 2.317, 标准差: 3.842, 秩和检验: 1.0574e-12
GSA:最差值: 83.5761, 最优值: 20.8941, 平均值: 39.0355, 标准差: 13.0609, 秩和检验: 1.2118e-12
MFO:最差值: 240.2111, 最优值: 95.6545, 平均值: 163.999, 标准差: 35.8893, 秩和检验: 1.2118e-12
MRFO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
MPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SSA:最差值: 99.4956, 最优值: 33.8286, 平均值: 59.2, 标准差: 17.4863, 秩和检验: 1.2118e-12
函数:F10
MSMA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
SMA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
EO:最差值: 1.5099e-14, 最优值: 7.9936e-15, 平均值: 8.941e-15, 标准差: 2.4567e-15, 秩和检验: 8.6442e-14
HHO:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
GWO:最差值: 1.2168e-13, 最优值: 7.5495e-14, 平均值: 1.0344e-13, 标准差: 1.2817e-14, 秩和检验: 1.1257e-12
GSA:最差值: 0.96589, 最优值: 8.0735e-09, 平均值: 0.06324, 标准差: 0.24071, 秩和检验: 1.2118e-12
MFO:最差值: 19.964, 最优值: 0.24526, 平均值: 14.8856, 标准差: 6.7611, 秩和检验: 1.2118e-12
MRFO:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
MPA:最差值: 5.7492e-12, 最优值: 4.13e-13, 平均值: 1.7854e-12, 标准差: 1.2035e-12, 秩和检验: 1.2118e-12
SSA:最差值: 4.2114, 最优值: 8.5779e-05, 平均值: 2.5421, 标准差: 0.85413, 秩和检验: 1.2118e-12
函数:F19
MSMA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 1.5976e-12, 秩和检验: 1
SMA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 9.362e-07, 秩和检验: 3.0199e-11
EO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.5391e-15, 秩和检验: 1.3369e-11
HHO:最差值: -3.0898, 最优值: -3.8628, 平均值: -3.8111, 标准差: 0.19608, 秩和检验: 3.0199e-11
GWO:最差值: -3.8549, 最优值: -3.8628, 平均值: -3.8613, 标准差: 0.0026435, 秩和检验: 3.0199e-11
GSA:最差值: -2.4904, 最优值: -3.7929, 平均值: -3.2089, 标准差: 0.39533, 秩和检验: 3.0199e-11
MFO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.7101e-15, 秩和检验: 1.2118e-12
MRFO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.6962e-15, 秩和检验: 1.7203e-12
MPA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.4491e-15, 秩和检验: 1.3369e-11
SSA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 1.0395e-11, 秩和检验: 0.55922
函数:F20
MSMA:最差值: -3.2031, 最优值: -3.322, 平均值: -3.2071, 标准差: 0.021707, 秩和检验: 1
SMA:最差值: -3.1981, 最优值: -3.322, 平均值: -3.2463, 标准差: 0.058535, 秩和检验: 0.053685
EO:最差值: -3.1376, 最优值: -3.322, 平均值: -3.274, 标准差: 0.065966, 秩和检验: 1.2963e-08
HHO:最差值: -3.1577, 最优值: -3.322, 平均值: -3.2829, 标准差: 0.061003, 秩和检验: 0.019112
GWO:最差值: -3.0874, 最优值: -3.322, 平均值: -3.274, 标准差: 0.079098, 秩和检验: 0.019112
GSA:最差值: -0.77782, 最优值: -2.7259, 平均值: -1.5338, 标准差: 0.49288, 秩和检验: 3.0199e-11
MFO:最差值: -2.8658, 最优值: -3.322, 平均值: -3.225, 标准差: 0.089242, 秩和检验: 2.2452e-05
MRFO:最差值: -3.2031, 最优值: -3.322, 平均值: -3.2744, 标准差: 0.059241, 秩和检验: 4.5796e-11
MPA:最差值: -3.322, 最优值: -3.322, 平均值: -3.322, 标准差: 6.8911e-12, 秩和检验: 3.0199e-11
SSA:最差值: -3.1773, 最优值: -3.322, 平均值: -3.2386, 标准差: 0.060196, 秩和检验: 0.027086

实验结果表明:MSMA具有更好的收敛精度、更快的收敛速度和更稳定的性能。

三、参考文献

[1] An-Di Tang, Shang-Qin Tang, Tong Han, et al. A Modified Slime Mould Algorithm for Global Optimization[J]. Computational Intelligence and Neuroscience, 2021, 2021: 2298215.

你可能感兴趣的:(matlab,最优化问题,matlab,黏菌算法,改进的黏菌算法)