中科院一区论文复现,改进蜣螂算法,Fuch映射+反向学习+自适应步长+随机差分变异,MATLAB代码...

时间:2024-02-22 21:49:38

本期文章复现一篇发表于2024年来自中科院一区TOP顶刊《Energy》的改进蜣螂算法。

论文引用如下:

Li Y, Sun K, Yao Q, et al. A dual-optimization wind speed forecasting model based on deep learning and improved dung beetle optimization algorithm[J]. Energy, 2024, 286: 129604.

改进的蜣螂优化算法原理如下

改进策略

改进点1: 融合Fuch混沌与逆向学习策略在种群初始化的应用

种群初始化在DBO中随机生成,会导致种群初始化分布不均匀,导致初始化种群的多样性。融合混沌和逆向学习策略进行群体初始化,将混沌初始化方法和逆向学习初始化策略相结合,以提高DBO的收敛速度。

Fuch混沌映射公式如下:

2191120bb273930ee573740576e596e3.png

在使用Fuch混沌映射生成初始解的同时,引入反向学习策略。扩大了蜣螂的搜索空间,以提高种群初始解决方案的质量。反向学习策略的数学表达式如下式所示:

1cc0389ab0b03229178c92ee554fb2ed.png

其中 OPi 是对应于每个初始解 Pi 的逆解。Pmax 和 Pmin 分别表示初始解中的最大值和最小值。K 是 (0, 1) 范围内的随机值。

改进点2: 自适应步长策略与凸透镜成像策略的集成

由于DBO采用随机策略,在蜣螂觅食阶段缺乏自适应能力,全局搜索能力较弱,容易陷入局部最优。为了进一步提高算法的寻道性能,该文采用动态选择策略,在一定概率下交替使用自适应步长策略和凸透镜成像反转策略来更新目标位置。

在初期迭代中,大步长能够扩展觅食搜索,提高算法的全局搜索能力,促进算法更快地找到更优的解,加快收敛速度。在后期迭代中,小步长有利于算法的局部搜索。步长的规律变化在觅食蜣螂的搜索中起着指导作用,这意味着在整体环境中从全局搜索逐渐过渡到局部搜索。该策略主要由线性递减的自适应步进控制因子α0决定,如下所示:

bbcbd98d57d0f3520835c6461bb33765.png

同时,引入一种凸透镜成像学习策略来扰动蜣螂种群,以增强种群多样性,提高算法跳出局部最优的可能性。该等式表示如下:

61f26b4d7d43e10ff7a3ac9e3639d5a4.png

该策略在之前提出的改进算法中也有详细介绍,具体请看:三种策略改进的沙猫群优化算法(MSCSO)

目标位置更新采用哪种策略的选择由选择概率 Ps 决定,

6cdfbfa3b825f5a859eadc1464feb824.png

当随机值Ps<0.5时,采用随机步进策略对蜣螂进行位置更新;否则,凸透镜反向学习策略用于位置更新,如下方程所示:

22577a6a57b0a8bcab2970d74f82ac36.png

改进点3: 随机差异变异策略

蜣螂偷窃行为的位置更新方程根据个体的当前最优值更新其位置,这可能导致种群多样性的减少。导致算法陷入局部最优状态,收敛精度效率低下。因此,本文引入随机差分变异策略来增强偷蜣螂种群多样性。公式如下:

dbf3f60d384d2f7bacd4dbee26a80b84.png

其中 P (t+1)表示通过随机差异突变获得的新个体,r1 和 r2 是 [0,1] 范围内的随机值。P∗ 是当前最佳个人位置。P′(t)是从种群中随机选择的个体的位置。

结果展示

在CEC2005函数集进行测试,并与原始蜣螂算法(DBO),霜冰优化算法(RIME)鹈鹕算法(POA),灰狼算法(GWO),粒子群优化器算法(PSO)进行比较。

并画出函数图像,迭代曲线,粒子轨迹图,平均收敛图和历史位置图。这几张图在很多智能算法的文献中会涉及到。

在CEC2005中测试:

F1:

01f6af1279f4ad231cf4a1b97f471f98.jpeg

F2:

31f41b4c2bcd8558af56ea157d64737f.jpeg

F5:

b3c1201dc79e959c4ab2efb9c129d6a7.jpeg

F6:

6b85a6a60ef00873d6deae993ec36154.jpeg

F7:

984ce0efb59dd43c0caddf66fc90e9a3.jpeg

F8:

0653dd69b5d20f471cd6133f81550f58.jpeg

F12:

a4278e259aa948543abbb366bb50719d.jpeg

F13:

fafb1a3ec8bb219e243d2f6dd06c5a2b.jpeg

以上图片,代码一键运行即可出来。

CEC2005指标统计如下:

将每个算法迭代500次,种群个数设置为30个,每个函数运行30次,求最优值,标准差,平均值,最差值,中位数共五个指标如下,秩和检验结果,箱线图等如下所示。

F1函数计算结果:
IDBO:最优值:0 标准差:0 平均值:9.6862e-212 中值:1.8438e-315 最差值:2.9059e-210
DBO:最优值:5.6605e-160 标准差:3.3056e-101 平均值:6.0352e-102 中值:7.2493e-137 最差值:1.8106e-100
POA:最优值:2.3045e-124 标准差:2.0159e-107 平均值:4.7334e-108 中值:1.5882e-112 最差值:1.0942e-106
RIME:最优值:0.001256 标准差:0.017157 平均值:0.024137 中值:0.019496 最差值:0.073224
GWO:最优值:1.2459e-62 标准差:1.506e-56 平均值:3.7062e-57 中值:1.8814e-58 最差值:8.2617e-56
PSO:最优值:5.6064e-12 标准差:2.1444e-10 平均值:2.4496e-10 中值:1.869e-10 最差值:8.0208e-10
F2函数计算结果:
IDBO:最优值:1.0557e-173 标准差:2.7163e-106 平均值:7.3092e-107 中值:7.2481e-118 最差值:1.2939e-105
DBO:最优值:1.19e-89 标准差:1.2629e-49 平均值:2.3381e-50 中值:1.2266e-70 最差值:6.9199e-49
POA:最优值:2.1959e-63 标准差:5.1701e-53 平均值:1.2445e-53 中值:1.1003e-56 最差值:2.7864e-52
RIME:最优值:0.010449 标准差:0.012761 平均值:0.027399 中值:0.025248 最差值:0.061068
GWO:最优值:3.6703e-35 标准差:8.6679e-33 平均值:5.4424e-33 中值:2.4603e-33 最差值:4.343e-32
PSO:最优值:1.6184e-07 标准差:2.2715e-06 平均值:1.5497e-06 中值:8.612e-07 最差值:1.2125e-05
F3函数计算结果:
IDBO:最优值:8.8148e-306 标准差:8.663e-147 平均值:1.9993e-147 中值:2.1029e-159 最差值:4.6474e-146
DBO:最优值:2.9335e-166 标准差:3.3776e-92 平均值:6.1703e-93 中值:2.1864e-114 最差值:1.85e-91
POA:最优值:1.3797e-118 标准差:1.0378e-104 平均值:2.7758e-105 中值:6.073e-111 最差值:4.1843e-104
RIME:最优值:0.10179 标准差:0.35031 平均值:0.50535 中值:0.40091 最差值:1.4073
GWO:最优值:5.8196e-31 标准差:1.2364e-24 平均值:4.8272e-25 中值:1.2257e-26 最差值:5.4387e-24
PSO:最优值:5.466e-05 标准差:0.0022693 平均值:0.0020178 中值:0.00093838 最差值:0.0070596
F4函数计算结果:
IDBO:最优值:3.4084e-172 标准差:1.8247e-87 平均值:3.3315e-88 中值:1.3633e-157 最差值:9.9944e-87
DBO:最优值:6.8734e-77 标准差:1.1975e-47 平均值:2.4789e-48 中值:6.4907e-66 最差值:6.5271e-47
POA:最优值:1.1764e-60 标准差:8.7436e-52 平均值:2.3978e-52 中值:1.908e-55 最差值:4.1033e-51
RIME:最优值:0.028983 标准差:0.070491 平均值:0.17738 中值:0.17562 最差值:0.40332
GWO:最优值:2.1966e-20 标准差:3.3561e-18 平均值:2.0867e-18 中值:1.2651e-18 最差值:1.7374e-17
PSO:最优值:0.00014318 标准差:0.0018738 平均值:0.0017881 中值:0.0012939 最差值:0.01012
F5函数计算结果:
IDBO:最优值:3.3744e-10 标准差:2.6766 平均值:2.1129 中值:0.00054869 最差值:5.9616
DBO:最优值:4.9322 标准差:0.25413 平均值:5.3329 中值:5.3066 最差值:5.8435
POA:最优值:5.2964 标准差:0.62048 平均值:6.3854 中值:6.2605 最差值:7.5541
RIME:最优值:2.4451 标准差:95.3281 平均值:62.8529 中值:17.2105 最差值:397.1781
GWO:最优值:5.6837 标准差:0.50977 平均值:6.5998 中值:6.2575 最差值:7.2276
PSO:最优值:0.079247 标准差:764.1423 平均值:210.4998 中值:5.6396 最差值:3020.73
F6函数计算结果:
IDBO:最优值:8.9363e-32 标准差:1.6928e-24 平均值:3.3397e-25 中值:6.5782e-28 最差值:9.2864e-24
DBO:最优值:2.0245e-30 标准差:1.9387e-23 平均值:5.0326e-24 中值:9.4085e-26 最差值:1.0096e-22
POA:最优值:9.5254e-07 标准差:0.098336 平均值:0.051839 中值:2.8711e-06 最差值:0.25666
RIME:最优值:0.0013626 标准差:0.014849 平均值:0.018724 中值:0.013838 最差值:0.05142
GWO:最优值:1.5983e-06 标准差:0.04594 平均值:0.0083907 中值:3.14e-06 最差值:0.25163
PSO:最优值:9.5314e-12 标准差:1.2313e-09 平均值:5.8171e-10 中值:1.4647e-10 最差值:5.1335e-09
F7函数计算结果:
IDBO:最优值:7.3807e-06 标准差:0.00012974 平均值:0.00018304 中值:0.00015625 最差值:0.00055443
DBO:最优值:0.00026051 标准差:0.00085674 平均值:0.0011225 中值:0.00088427 最差值:0.0038473
POA:最优值:2.8649e-05 标准差:0.00010243 平均值:0.00015893 中值:0.00015159 最差值:0.00037197
RIME:最优值:0.001078 标准差:0.0019118 平均值:0.0031863 中值:0.0025373 最差值:0.0082845
GWO:最优值:7.2974e-05 标准差:0.0004126 平均值:0.00058054 中值:0.00047977 最差值:0.001418
PSO:最优值:0.00083596 标准差:0.0011913 平均值:0.0029738 中值:0.003273 最差值:0.0054277
F8函数计算结果:
IDBO:最优值:-4189.8289 标准差:341.2354 平均值:-3923.7854 中值:-4061.6432 最差值:-2997.8602
DBO:最优值:-4189.8289 标准差:469.6195 平均值:-3385.5902 中值:-3339.2994 最差值:-2641.0282
POA:最优值:-3478.7982 标准差:186.2891 平均值:-3042.4312 中值:-3059.9097 最差值:-2684.0164
RIME:最优值:-4071.3751 标准差:154.0057 平均值:-3900.2185 中值:-3952.8522 最差值:-3479.01
GWO:最优值:-3518.5805 标准差:398.5263 平均值:-2747.5579 中值:-2772.4435 最差值:-2148.2888
PSO:最优值:-3617.3742 标准差:263.7841 平均值:-2975.0618 中值:-2965.9552 最差值:-2511.9144
F9函数计算结果:
IDBO:最优值:0 标准差:0 平均值:0 中值:0 最差值:0
DBO:最优值:0 标准差:3.0658 平均值:0.90048 中值:0 最差值:15.9193
POA:最优值:0 标准差:0 平均值:0 中值:0 最差值:0
RIME:最优值:0.0029538 标准差:1.6902 平均值:2.863 中值:2.9888 最差值:6.9678
GWO:最优值:0 标准差:1.4768 平均值:0.78374 中值:0 最差值:4.4834
PSO:最优值:1.99 标准差:2.8726 平均值:6.7157 中值:6.4743 最差值:13.9294
F10函数计算结果:
IDBO:最优值:4.4409e-16 标准差:0 平均值:4.4409e-16 中值:4.4409e-16 最差值:4.4409e-16
DBO:最优值:4.4409e-16 标准差:0 平均值:4.4409e-16 中值:4.4409e-16 最差值:4.4409e-16
POA:最优值:4.4409e-16 标准差:1.5979e-15 平均值:3.0494e-15 中值:3.9968e-15 最差值:3.9968e-15
RIME:最优值:0.028095 标准差:0.02511 平均值:0.061136 中值:0.054543 最差值:0.13749
GWO:最优值:3.9968e-15 标准差:1.3467e-15 平均值:6.9574e-15 中值:7.5495e-15 最差值:7.5495e-15
PSO:最优值:8.8838e-07 标准差:5.0736e-06 平均值:6.7866e-06 中值:5.8076e-06 最差值:2.044e-05
F11函数计算结果:
IDBO:最优值:0 标准差:0 平均值:0 中值:0 最差值:0
DBO:最优值:0 标准差:0.030774 平均值:0.010735 中值:0 最差值:0.1328
POA:最优值:0 标准差:0 平均值:0 中值:0 最差值:0
RIME:最优值:0.046933 标准差:0.087513 平均值:0.19999 中值:0.17363 最差值:0.50778
GWO:最优值:0 标准差:0.017619 平均值:0.020812 中值:0.021356 最差值:0.0774
PSO:最优值:0.029579 标准差:0.072136 平均值:0.11052 中值:0.093109 最差值:0.32049
F12函数计算结果:
IDBO:最优值:5.7765e-32 标准差:8.4403e-26 平均值:3.0725e-26 中值:1.3505e-28 最差值:4.1451e-25
DBO:最优值:4.7186e-31 标准差:3.3683e-11 平均值:6.7187e-12 中值:2.1e-25 最差值:1.847e-10
POA:最优值:9.611e-07 标准差:0.059516 平均值:0.025787 中值:0.017673 最差值:0.33346
RIME:最优值:3.7307e-05 标准差:0.00016285 平均值:0.00023748 中值:0.00021144 最差值:0.00059381
GWO:最优值:3.8696e-07 标准差:0.008893 平均值:0.0052737 中值:1.6643e-06 最差值:0.0201
PSO:最优值:1.9617e-13 标准差:3.2109e-11 平均值:1.6285e-11 中值:5.7721e-12 最差值:1.5334e-10
F13函数计算结果:
IDBO:最优值:3.5506e-31 标准差:0.0049376 平均值:0.0017995 中值:3.1559e-27 最差值:0.021024
DBO:最优值:1.6398e-28 标准差:0.043648 平均值:0.022922 中值:4.9161e-20 最差值:0.14132
POA:最优值:2.6235e-06 标准差:0.21971 平均值:0.30092 中值:0.25007 最差值:0.86165
RIME:最优值:8.9776e-05 标准差:0.0035563 平均值:0.0019783 中值:0.00081764 最差值:0.013139
GWO:最优值:2.7746e-06 标准差:0.050276 平均值:0.023377 中值:8.2744e-06 最差值:0.19718
PSO:最优值:4.9108e-12 标准差:1.0538e-08 平均值:2.0744e-09 中值:2.2623e-11 最差值:5.7824e-08
F14函数计算结果:
IDBO:最优值:0.998 标准差:0.19308 平均值:1.0444 中值:0.998 最差值:1.992
DBO:最优值:0.998 标准差:0.71287 平均值:1.362 中值:0.998 最差值:2.9821
POA:最优值:0.998 标准差:0 平均值:0.998 中值:0.998 最差值:0.998
RIME:最优值:0.998 标准差:3.5407e-12 平均值:0.998 中值:0.998 最差值:0.998
GWO:最优值:0.998 标准差:3.7747 平均值:3.9074 中值:2.9821 最差值:12.6705
PSO:最优值:0.998 标准差:2.685 平均值:1.5805 中值:0.998 最差值:15.5038
F15函数计算结果:
IDBO:最优值:0.00030749 标准差:0.00022115 平均值:0.00039727 中值:0.00031821 最差值:0.0014887
DBO:最优值:0.00030749 标准差:0.00034146 平均值:0.00067266 中值:0.00066197 最差值:0.0014894
POA:最优值:0.00030749 标准差:0.0036596 平均值:0.00098779 中值:0.00030749 最差值:0.020363
RIME:最优值:0.000372 标准差:0.0095987 平均值:0.0084209 中值:0.00077061 最差值:0.020364
GWO:最优值:0.00030754 标准差:0.0075709 平均值:0.0037227 中值:0.00037613 最差值:0.020363
PSO:最优值:0.00030751 标准差:0.0060404 平均值:0.0025911 中值:0.00042301 最差值:0.020363
F16函数计算结果:
IDBO:最优值:-1.0316 标准差:5.8312e-16 平均值:-1.0316 中值:-1.0316 最差值:-1.0316
DBO:最优值:-1.0316 标准差:5.9752e-16 平均值:-1.0316 中值:-1.0316 最差值:-1.0316
POA:最优值:-1.0316 标准差:5.8312e-16 平均值:-1.0316 中值:-1.0316 最差值:-1.0316
RIME:最优值:-1.0316 标准差:1.9463e-07 平均值:-1.0316 中值:-1.0316 最差值:-1.0316
GWO:最优值:-1.0316 标准差:3.2869e-08 平均值:-1.0316 中值:-1.0316 最差值:-1.0316
PSO:最优值:-1.0316 标准差:6.1158e-16 平均值:-1.0316 中值:-1.0316 最差值:-1.0316
F17函数计算结果:
IDBO:最优值:0.39789 标准差:5.4213e-16 平均值:0.39789 中值:0.39789 最差值:0.39789
DBO:最优值:0.39789 标准差:6.4868e-16 平均值:0.39789 中值:0.39789 最差值:0.39789
POA:最优值:0.39789 标准差:0 平均值:0.39789 中值:0.39789 最差值:0.39789
RIME:最优值:0.39789 标准差:1.1318e-06 平均值:0.39789 中值:0.39789 最差值:0.39789
GWO:最优值:0.39789 标准差:0.00015255 平均值:0.39792 中值:0.39789 最差值:0.39873
PSO:最优值:0.39789 标准差:0 平均值:0.39789 中值:0.39789 最差值:0.39789
F18函数计算结果:
IDBO:最优值:3 标准差:2.9779e-15 平均值:3 中值:3 最差值:3
DBO:最优值:3 标准差:2.3237e-15 平均值:3 中值:3 最差值:3
POA:最优值:3 标准差:1.3873e-15 平均值:3 中值:3 最差值:3
RIME:最优值:3 标准差:9.9194e-07 平均值:3 中值:3 最差值:3
GWO:最优值:3 标准差:3.5555e-05 平均值:3 中值:3 最差值:3.0002
PSO:最优值:3 标准差:1.5228e-15 平均值:3 中值:3 最差值:3
F19函数计算结果:
IDBO:最优值:-3.8628 标准差:0.0033905 平均值:-3.8609 中值:-3.8628 最差值:-3.8549
DBO:最优值:-3.8628 标准差:0.14087 平均值:-3.8354 中值:-3.8628 最差值:-3.0898
POA:最优值:-3.8628 标准差:2.3744e-15 平均值:-3.8628 中值:-3.8628 最差值:-3.8628
RIME:最优值:-3.8628 标准差:3.9417e-07 平均值:-3.8628 中值:-3.8628 最差值:-3.8628
GWO:最优值:-3.8628 标准差:0.0027067 平均值:-3.8612 中值:-3.8627 最差值:-3.8549
PSO:最优值:-3.8628 标准差:2.5973e-15 平均值:-3.8628 中值:-3.8628 最差值:-3.8628
F20函数计算结果:
IDBO:最优值:-3.322 标准差:0.089682 平均值:-3.1965 中值:-3.2004 最差值:-3.0207
DBO:最优值:-3.322 标准差:0.086874 平均值:-3.2548 中值:-3.322 最差值:-3.0867
POA:最优值:-3.322 标准差:0.030221 平均值:-3.314 中值:-3.322 最差值:-3.2027
RIME:最优值:-3.322 标准差:0.057 平均值:-3.2823 中值:-3.322 最差值:-3.2031
GWO:最优值:-3.322 标准差:0.10071 平均值:-3.2412 中值:-3.2029 最差值:-2.8404
PSO:最优值:-3.322 标准差:0.065123 平均值:-3.278 中值:-3.322 最差值:-3.1376
F21函数计算结果:
IDBO:最优值:-10.1532 标准差:1.7626 平均值:-9.4735 中值:-10.1532 最差值:-5.0552
DBO:最优值:-10.1532 标准差:2.6418 平均值:-7.2097 中值:-5.1008 最差值:-3.0436
POA:最优值:-10.1532 标准差:1.2934 平均值:-9.8132 中值:-10.1531 最差值:-5.0552
RIME:最优值:-10.1532 标准差:2.4488 平均值:-8.7226 中值:-10.152 最差值:-2.6305
GWO:最优值:-10.1529 标准差:2.2645 平均值:-9.057 中值:-10.151 最差值:-2.6303
PSO:最优值:-10.1532 标准差:3.5534 平均值:-5.9816 中值:-5.0552 最差值:-2.6305
F22函数计算结果:
IDBO:最优值:-10.4029 标准差:4.6649e-16 平均值:-10.4029 中值:-10.4029 最差值:-10.4029
DBO:最优值:-10.4029 标准差:2.6749 平均值:-8.7028 中值:-10.4029 最差值:-2.7659
POA:最优值:-10.4029 标准差:0.97041 平均值:-10.2256 中值:-10.4029 最差值:-5.0877
RIME:最优值:-10.4027 标准差:2.8878 平均值:-8.4227 中值:-10.3991 最差值:-2.7659
GWO:最优值:-10.4025 标准差:0.00097027 平均值:-10.4011 中值:-10.4013 最差值:-10.3982
PSO:最优值:-10.4029 标准差:3.5379 平均值:-5.5598 中值:-3.2451 最差值:-2.7519
F23函数计算结果:
IDBO:最优值:-10.5364 标准差:1.9515e-15 平均值:-10.5364 中值:-10.5364 最差值:-10.5364
DBO:最优值:-10.5364 标准差:3.0505 平均值:-8.3917 中值:-10.5359 最差值:-2.4217
POA:最优值:-10.5364 标准差:1.6501 平均值:-9.9955 中值:-10.5364 最差值:-5.1285
RIME:最优值:-10.5364 标准差:2.5559 平均值:-9.2932 中值:-10.5348 最差值:-2.8711
GWO:最优值:-10.5358 标准差:1.5064 平均值:-10.1402 中值:-10.5345 最差值:-4.0728
PSO:最优值:-10.5364 标准差:3.8088 平均值:-7.2905 中值:-10.5364 最差值:-2.4217

箱线图:

5f081760fe7d2781f1a1665405832f2a.jpeg

运行后会自动出现一个excel表格,用来统计五种指标结果:

98474ed0be9c93bfa2eaa02f69a64034.png

Wilcoxon 秩和检验:

5cc891190a956ab2f3701d02334ef151.png

代码目录:

b0f9985debc5a4bbf66cf77e68aaf1c7.png

运行plotCEC2005_Main.m和runsCEC2005_Main.m这两个主程序即可!

以上提到的所有图片,EXCEL表格等,代码均可运行出来。

本期代码获取

https://mbd.pub/o/bread/ZZuVlJZv

扫面二维码亦可跳转:

36999360658b5bdb79cb76bc95b8682d.png

或者点击下方阅读原文跳转链接。

往期改进蜣螂算法推荐:

多策略改进蜣螂优化--螺旋搜索+最优值引导+反向学习策略(原创)

改进蜣螂优化--采用莱维飞行和三角形游走策略(原创)

改进正弦算法引导的蜣螂优化算法(MSADBO)(文献复现)

融合麻雀追随机制扰动与柯西变异的蜣螂优化算法,历史位置图,平均适应度收敛图一次性全部搞定,MATLAB代码(文献复现)

独家原创!随机游走与纵横交叉的蜣螂优化算法(原创)

融合鱼鹰与自适应t分布的蜣螂优化算法(OTDBO)(原创,力荐)

以上算法均为MATLAB代码!