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

声明:对于作者的原创代码,禁止转售倒卖,违者必究!

关于蜣螂算法的原理网上有很多,本文就不再详细介绍,本期算法是作者在参考了网上一些文献后自行改进的,接下来直接上改进策略:

①螺旋搜索策略

在蜣螂优化算法(DBO)中,如果按照当前的在产卵区域内繁殖雏球,这肯定会使种群在短时间内快速收敛,但也会导致种群的多样性降低,容易使算法陷入局部最优;因此对蜣螂算法繁殖阶段的这个公式进行改进

fe3d8776f563899fe433655844f4fa9f.png

受到鲸鱼算法中头鲸种群围捕猎物的启发,鲸鱼算法在迭代过程中,个体鲸鱼会使用螺旋搜索策略来更新与猎物的位置,这不仅保证了算法的收敛速度,而且可以增加个体的多样性。鲸鱼围捕猎物阶段公式如下:

da6be25be0b00db89d22d9e1342da4b4.png

但该策略很容易受到定义参数c的影响。较大的c会使算法衰减过快,导致算法局部最优,较小的c会导致算法收敛缓慢。为了解决这个问题,引入了动态螺旋搜索形状的参数r

0adbd31659888760398eb202f999a599.png

采用螺旋搜索策略对蜣螂算法繁殖阶段进行改进,更新后的蜣螂算法公式如下:

092ad948e1f3a742098d12fd484026f0.png

此时蜣螂搜索路径示意图如下:

7c1c6fe2e3dfd372f4343f4c94f15e0c.png

②最优值引导策略

在蜣螂算法的觅食阶段,候选解的生成受到两个随机数(K1和K2)的影响,这使得生成更好和更差候选解的概率相等。通过引入当前最优值来指导候选解的生成。新的公式如下所示。

d7c2a2d3a2da47aa43bfba53c7a8ca04.png

③透镜成像反向学习策略

透镜成像反向学习主要的思想是以当前坐标为基准通过凸透镜成像的原理生成一个反向位置来扩大搜索范围,这样可以既能跳出当前位置,又可以扩大蜣螂算法搜索范围,提高了蜣螂种群的多样性。基于透镜成像原理的反向学习公式如下:

8372c0c33f61321cd5c61c8da5e525fb.png

结果展示

在CEC2017函数集进行测试(2017的官方函数已经将F2删除),结果如下,MODBO是改进的蜣螂算法,DBO是原始的蜣螂算法。

a37ff2c7eb0b5afd41012f330f9e4817.png

b9a7fcf4f0ee5a8f15e9cd83d9ea5d7b.png

cdf3cc0631a2bf267ca1b066bd8421cc.png

29213ddbc75e29a8b7d6a0b57a906a0e.png

fd2691d2a16ef2c52965fc9145e3fdff.png

这里截了一些图,可以看到在CEC2017函数的测试效果还是非常不错的。

将每个算法迭代500次,蜣螂个数设置为30个,每个函数运行30次,求最优值,最差值,平均值,方差,中值共五个指标如下:

F1函数计算结果:
DBO:最优值:26587534.2785 最差值:885296187.7384 平均值:278519926.4607 方差:202589254.7595 中值:242508285.8441
MODBO:最优值:176099.8914 最差值:271151324.3789 平均值:76067397.0683 方差:71555724.9635 中值:58119739.0369
F3函数计算结果:
DBO:最优值:68234.7729 最差值:183691.5791 平均值:94827.9013 方差:24515.5456 中值:85710.8004
MODBO:最优值:43495.1783 最差值:88562.5671 平均值:72813.6786 方差:12252.9688 中值:73870.7348
F4函数计算结果:
DBO:最优值:527.017 最差值:1040.0388 平均值:680.6191 方差:117.5707 中值:652.1021
MODBO:最优值:489.6904 最差值:667.7609 平均值:578.4681 方差:46.3321 中值:578.3268
F5函数计算结果:
DBO:最优值:634.5203 最差值:852.6906 平均值:745.2637 方差:56.4961 中值:746.7405
MODBO:最优值:605.4213 最差值:745.3838 平均值:670.8696 方差:37.2748 中值:660.932
F6函数计算结果:
DBO:最优值:628.5647 最差值:674.6842 平均值:651.2125 方差:12.7984 中值:652.1216
MODBO:最优值:615.4098 最差值:645.7538 平均值:631.779 方差:8.2401 中值:630.2963
F7函数计算结果:
DBO:最优值:881.1188 最差值:1181.8156 平均值:1007.7016 方差:81.108 中值:997.6261
MODBO:最优值:845.7382 最差值:1171.3257 平均值:982.2269 方差:74.989 中值:980.622
F8函数计算结果:
DBO:最优值:900.0545 最差值:1115.7526 平均值:1015.9085 方差:61.7286 中值:1021.6189
MODBO:最优值:876.7522 最差值:997.2142 平均值:935.4958 方差:29.6456 中值:931.9413
F9函数计算结果:
DBO:最优值:3228.5143 最差值:10660.7884 平均值:6865.7482 方差:2069.9942 中值:6568.7554
MODBO:最优值:2356.5046 最差值:9446.0883 平均值:4412.454 方差:1663.8413 中值:3953.9179
F10函数计算结果:
DBO:最优值:4148.651 最差值:9271.6793 平均值:6483.3671 方差:1227.6979 中值:6151.3225
MODBO:最优值:4538.1623 最差值:9031.1333 平均值:6957.6103 方差:1492.6158 中值:7124.0549
F11函数计算结果:
DBO:最优值:1365.6167 最差值:5717.5147 平均值:2127.2572 方差:950.7368 中值:1774.9541
MODBO:最优值:1249.599 最差值:1584.6569 平均值:1372.9834 方差:82.0467 中值:1353.0988
F12函数计算结果:
DBO:最优值:1636631.9163 最差值:1000605880.0255 平均值:138651222.4276 方差:260670382.031 中值:28103706.5293
MODBO:最优值:741235.8851 最差值:111300910.1722 平均值:17658055.4028 方差:26724635.2059 中值:7560605.797
F13函数计算结果:
DBO:最优值:16922.7094 最差值:64250525.1866 平均值:7551744.9668 方差:15191181.2581 中值:863733.2001
MODBO:最优值:12200.7897 最差值:4332334.3432 平均值:844642.7411 方差:1429735.1549 中值:134109.2547
F14函数计算结果:
DBO:最优值:3628.8755 最差值:2211506.826 平均值:260147.4974 方差:404203.3378 中值:133263.6727
MODBO:最优值:3491.3099 最差值:373667.4927 平均值:100189.6526 方差:86068.427 中值:88233.6257
F15函数计算结果:
DBO:最优值:7695.8216 最差值:28689714.0636 平均值:1020109.4677 方差:5226163.1995 中值:57025.5877
MODBO:最优值:2563.149 最差值:259576.8021 平均值:51882.9929 方差:60308.523 中值:30131.2416
F16函数计算结果:
DBO:最优值:2442.877 最差值:4334.1086 平均值:3380.7791 方差:437.699 中值:3427.9563
MODBO:最优值:2564.1835 最差值:4099.5328 平均值:3198.7369 方差:386.1529 中值:3065.507
F17函数计算结果:
DBO:最优值:2059.4696 最差值:3352.611 平均值:2751.7228 方差:322.2462 中值:2666.2677
MODBO:最优值:2045.3209 最差值:2946.2829 平均值:2520.9179 方差:222.8829 中值:2547.0677
F18函数计算结果:
DBO:最优值:111995.098 最差值:19260406.0013 平均值:4264684.775 方差:5255649.3308 中值:1371475.4517
MODBO:最优值:68714.5908 最差值:10547312.9839 平均值:1481340.6368 方差:2029044.5584 中值:898592.8427
F19函数计算结果:
DBO:最优值:5683.5719 最差值:127030449.7168 平均值:6205389.826 方差:23073920.4903 中值:385245.8425
MODBO:最优值:2395.6836 最差值:2280405.74 平均值:343450.7177 方差:601022.5335 中值:33246.0295
F20函数计算结果:
DBO:最优值:2258.4158 最差值:3179.5373 平均值:2721.4361 方差:243.5226 中值:2673.5387
MODBO:最优值:2253.2546 最差值:2935.108 平均值:2547.2821 方差:163.9393 中值:2542.5695
F21函数计算结果:
DBO:最优值:2441.0167 最差值:2681.4322 平均值:2560.6592 方差:57.929 中值:2543.5668
MODBO:最优值:2329.3153 最差值:2650.5783 平均值:2501.5493 方差:65.9737 中值:2503.3205
F22函数计算结果:
DBO:最优值:2335.8041 最差值:9005.9585 平均值:5147.7854 方差:2563.4733 中值:6307.0029
MODBO:最优值:2341.8913 最差值:2482.0399 平均值:2379.9522 方差:36.0528 中值:2365.957
F23函数计算结果:
DBO:最优值:2814.5573 最差值:3110.1696 平均值:2971.2078 方差:82.9108 中值:2974.881
MODBO:最优值:2780.6881 最差值:3069.9764 平均值:2914.6333 方差:80.6054 中值:2885.1952
F24函数计算结果:
DBO:最优值:3037.3823 最差值:3364.1985 平均值:3181.3893 方差:87.9974 中值:3200.8671
MODBO:最优值:2958.5651 最差值:3242.334 平均值:3099.0717 方差:86.5973 中值:3119.6384
F25函数计算结果:
DBO:最优值:2886.8655 最差值:3132.0272 平均值:2976.574 方差:59.3269 中值:2964.1102
MODBO:最优值:2887.4245 最差值:3017.7836 平均值:2931.109 方差:34.0427 中值:2932.7968
F26函数计算结果:
DBO:最优值:5705.6121 最差值:8479.805 平均值:6928.252 方差:753.7997 中值:6805.2349
MODBO:最优值:3125.2728 最差值:7889.8513 平均值:6319.2604 方差:1123.6276 中值:6616.5321
F27函数计算结果:
DBO:最优值:3222.1202 最差值:3502.0427 平均值:3329.845 方差:67.8683 中值:3327.1453
MODBO:最优值:3222.4915 最差值:3412.8692 平均值:3278.3387 方差:38.4615 中值:3270.9476
F28函数计算结果:
DBO:最优值:3308.6423 最差值:5999.3597 平均值:3805.3548 方差:745.1675 中值:3481.9717
MODBO:最优值:3213.5795 最差值:3474.7211 平均值:3338.6909 方差:54.5755 中值:3338.2342
F29函数计算结果:
DBO:最优值:3707.9156 最差值:5630.6197 平均值:4508.4204 方差:446.8148 中值:4528.4465
MODBO:最优值:3762.919 最差值:5242.045 平均值:4262.0952 方差:340.2025 中值:4193.3854
F30函数计算结果:
DBO:最优值:23738.894 最差值:18437793.6046 平均值:3256963.3511 方差:4381907.9519 中值:1187816.4769
MODBO:最优值:11592.0291 最差值:22223495.0405 平均值:2676568.7866 方差:4774300.516 中值:894187.27

根据统计结果可以看出,改进的蜣螂算法(MODBO)在五个指标中的表现均是最佳!

代码展示

代码目录如下:

ecf8ae2f2781d83f15f7e83d68a9de9d.png

作者已将cec2017的函数集编译完,直接在电脑运行即可。其中main.m用于画图,runs_Main.m用于统计多次运行的结果。

代码获取

完整代码获取方式:后台回复关键字,不区分大小写。关键字:

MODBO

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

往期改进蜣螂算法推荐:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

今天吃饺子

不想刀我的可以选择爱我

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

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

打赏作者

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

抵扣说明:

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

余额充值