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

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

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

①螺旋搜索策略

在蜣螂优化算法(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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/85281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十六)Stable Diffusion教程:出图流程化

今天说一个流程化出图的案例,适用很多方面。 1、得到线稿,自己画或者图生图加线稿lora出线稿;如果想sd出图调整参数不那么频繁细致,则线稿的素描关系、层次、精深要表现出来,表现清楚。 2、文生图,seed随机…

前后端分离毕设项目之springboot同城上门喂遛宠物系统(内含文档+源码+教程)

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做&am…

Quartz 建表语句SQL文件

SQL文件在jar里面,github下载 https://github.com/quartz-scheduler/quartz/releases/tag/v2.3.2 解压,sql文件路径:quartz-core\src\main\resources\org\quartz\impl\jdbcjobstore tables_mysql_innodb.sql # # In your Quartz propertie…

七天学会C语言-第七天(结构体)

1.定义结构体 例 1&#xff1a;把一个学生的信息(包括学号、姓名、性别、住址等 4 项信息) 放在一个结构体变量中&#xff0c;然后输出这个学生的信息。 #include <stdio.h>struct Student {int student_id;char name[30];char gender;char address[60]; };int main() …

Flink的部署模式:Local模式、Standalone模式、Flink On Yarn模式

Flink常见的部署模式 Flink部署、执行模式Flink的部署模式Flink的执行模式 Local本地模式下载安装启动、停止Flink提交测试任务停止作业 Standalone独立模式会话模式单作业模式应用模式 YARN运行模式会话模式启动Hadoop集群申请一个YARN会话查看Yarn、Flink提交作业查看、测试作…

SQL模板-用户留存率计算

在这段实习中&#xff0c;我遇到了用户留存率计算的需求&#xff0c;这里做个总结。 首先来讲下&#xff0c;什么是用户留存&#xff1f; 在互联网行业中&#xff0c;用户在某段时间内开始使用应用&#xff0c;经过一段时间后&#xff0c;仍然继续使用该应用的用户。用户留存一…

5.docker可视化工具(Portainer)

本文操作&#xff0c;在 192.168.204.102 机器执行 安装最新版 portainer&#xff0c;请使用 portainer/portainer-ce 镜像。图片来源&#xff1a;https://hub.docker.com/r/portainer/portainer。   来这里可查看最新版本&#xff1a;https://github.com/portainer/p…

内网穿透,轻松实现PostgreSQL数据库公网远程连接!

文章目录 前言1. 安装postgreSQL2. 本地连接postgreSQL3. Windows 安装 cpolar4. 配置postgreSQL公网地址5. 公网postgreSQL访问6. 固定连接公网地址7. postgreSQL固定地址连接测试 前言 PostgreSQL是一个功能非常强大的关系型数据库管理系统&#xff08;RDBMS&#xff09;,下…

MongoDB的搭建 和crud操作

MongoDB docker 下载 docker run --restartalways -d --name mongo -v /docker/mongodb/data:/data/db -p 27017:27017 mongo:4.0.6使用navcat工具使用MongoDB Crud操作 jar包 <dependency><groupId>org.projectlombok</groupId><artifactId>lom…

【面试经典150 | 双指针】三数之和

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;暴力枚举方法二&#xff1a;双指针 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对…

Selenium自动化测试框架工作原理你明白了吗?

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 一、Selenium是什么&#xff1f;   用官网的一句话来讲&#xff1a;Selenium automates browsers. Tha…

【Python Fastapi】js上传文件,fastapi处理,js显示回传信息

python from fastapi import FastAPI, File, UploadFile, HTTPException from fastapi.staticfiles import StaticFiles from fastapi.responses import HTMLResponse from typing import List import requestsapp FastAPI()# 配置静态文件目录 app.mount("/static"…

排序算法-----归并排序

目录 前言&#xff1a; 归并排序 1. 定义 2.算法过程讲解 2.1大致思路 2.2图解示例 拆分合成步骤 ​编辑 相关动态图 3.代码实现&#xff08;C语言&#xff09; 4.算法分析 4.1时间复杂度 4.2空间复杂度 4.3稳定性 前言&#xff1a; 今天我们就开始学习新的排序算法…

LLaMa

文章目录 Problems403 代码文件LLaMA: Open and Efficient Foundation Language Models方法预训练数据结构优化器一些加速的方法 结果Common Sense ReasoningClosed-book Question AnsweringReading ComprehensionMassive Multitask Language Understanding Instruction Finetu…

yo!这里是c++中的多态

前言 在学完继承之后&#xff0c;紧接着我们来认识多态&#xff0c;建议继承不太熟的先把继承部分的知识点搞熟&#xff0c;再来学习多态&#xff0c;否则会走火入魔&#xff0c;会混乱。因为多态是建立在继承的基础之上&#xff0c;而且多态中还存在与继承类似的概念&#xff…

QT-day2

1、完善登录框 头文件 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMessageBox> //消息对话框类头文件 #include <QDebug> #include <QPushButton> #include "second.h"QT_BEGIN_NAMESPACE namespace…

【vue2第十九章】手动修改ESlint错误 和 配置自动化修改ESlint错误

目标:认识代码规范 代码规范:一套写代码的约定规则。例如:“赋值符号的左右是否需要空格”&#xff0c;"一句结束是否是要加;”等 为什么要使用代码规范&#xff1f; 在团队开发时&#xff0c;提高代码的可读性。 在创建项目时&#xff0c;我们选择的就是一套完整的代码…

STM32F103RCT6学习笔记2:串口通信

今日开始快速掌握这款STM32F103RCT6芯片的环境与编程开发&#xff0c;有关基础知识的部分不会多唠&#xff0c;直接实践与运用&#xff01;文章贴出代码测试工程与测试效果图&#xff1a; 目录 串口通信实验计划&#xff1a; 串口通信配置代码&#xff1a; 测试效果图&#…

MQ - 22 Kafka集群架构设计与实现

文章目录 导图概述数据可靠性副本拉取 Leader 数据动态维护可用副本集合控制 Leader 切换和数据截断安全控制可观测性总结导图 概述 MQ - 15 集群篇_如何构建分布式的消息队列集群(下)说了基于 ZooKeeper 和 KRaft 来构建集群的两种方式,在这里就不再重复。 这里我们详细分…

【力扣每日一题】2023.9.22 将钱分给最多的儿童

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一笔钱和一些小朋友&#xff0c;要我们把这些钱分完不能剩&#xff0c;并且不能有小朋友被分到4元以及每个人至少分到1元&#xff…