【智能算法改进】多策略改进的蜣螂优化算法

news2024/11/13 20:25:56

目录

    • 1.算法原理
    • 2.改进点
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.算法原理

【智能算法】蜣螂优化算法(DBO)原理及实现

2.改进点

混沌反向学习初始化

采用 Pwlcm 分段混沌映射,由于 Pwlcm 在其定义区间上具有均匀的密度函数,在特定的 p 值下 x 的分布几乎是平坦的,混沌序列的这种遍历性、随机性的特性有利于蜣螂个体分布于整个解空间,增强种群多样性:
x ( t + 1 ) = { x ( t ) p , 0 ≤ x ( t ) < p x ( t ) − p 0.5 − p , p ≤ x ( t ) < 0.5 1 − p − x ( t ) 0.5 − p , 0.5 ≤ x ( t ) < 1 − p 1 − x ( t ) p , 1 − p ≤ x ( t ) < 1 (1) x\big(t+1\big)=\begin{cases}\frac{x\big(t\big)}{p},0\leq x\big(t\big)<p\\\frac{x\big(t\big)-p}{0.5-p},p\leq x\big(t\big)<0.5\\\frac{1-p-x\big(t\big)}{0.5-p},0.5\leq x\big(t\big)<1-p\\\frac{1-x\big(t\big)}{p},1-p\leq x\big(t\big)<1\end{cases}\tag{1} x(t+1)= px(t),0x(t)<p0.5px(t)p,px(t)<0.50.5p1px(t),0.5x(t)<1pp1x(t),1px(t)<1(1)
将混沌序列映射到解空间得到混沌初始化种群,对其进行反向学习:
X o B L = k × ( U b + L b ) − X (2) X_{\mathrm{oBL}}=k\times\bigl(Ub+Lb\bigr)-X\tag{2} XoBL=k×(Ub+Lb)X(2)

非线性权重的黄金正弦策略

蜣螂的滚球行为影响着算法的全局搜索能力与收敛速度,对种群有着引领作用,原始 DBO 算法以直线形式的滚球行为限制了滚球蜣螂在局部的搜索能力,容易错失寻得最优解的机会。加入自适应权重后滚球蜣螂的位置更新:
x i ( t + 1 ) = ( 1 − w ) × x i ( t ) × ∣ sin ⁡ ( r 1 ) ∣ − w × r 2 × sin ⁡ ( r 1 ) × ∣ c 1 × X b − c 2 × x i ( t ) ∣ (2) x_{i}\left(t+1\right)=\left(1-w\right)\times x_{i}\left(t\right)\times\left|\sin\left(r_{1}\right)\right|-w\times r_{2}\times\\\sin\left(\mathrm{r}_1\right)\times\left|\mathrm{c}_1\times\mathrm{X}^\mathrm{b}-\mathrm{c}_2\times x_i\left(t\right)\right|\tag{2} xi(t+1)=(1w)×xi(t)×sin(r1)w×r2×sin(r1)× c1×Xbc2×xi(t) (2)
其中,权重参数为:
w = ( w max ⁡ − w min ⁡ ) × [ 1 − sin ⁡ ( π 2 × t T max ⁡ ) ] + w min ⁡ (3) w=\begin{pmatrix}w_{\max}-w_{\min}\end{pmatrix}\times\begin{bmatrix}1-\sin\biggl(\frac{\pi}{2}\times\frac{t}{T_{\max}}\biggr)\end{bmatrix}+w_{\min}\tag{3} w=(wmaxwmin)×[1sin(2π×Tmaxt)]+wmin(3)

融合 SSA 改进的觅食行为

改进后的蜣螂觅食行为位置更新:
x i ( t + 1 ) = { Q × e x p ( X b − x i ( t ) i 2 ) , f ( x i ) > f M d X b + ∣ x i ( t ) − X b ∣ × A + × L , f ( x i ) ≤ f M d (4) x_i\left(t+1\right)=\begin{cases}\quad Q\times exp\biggl(\frac{X^\mathrm{b}-x_i\left(t\right)}{i^2}\biggr),f(x_i)>f_\mathrm{Md}\\\\X^\mathrm{b}+\biggl|x_i\left(t\right)-X^\mathrm{b}\biggr|\times A^+\times L,f(x_i)\leq f_\mathrm{Md}\end{cases}\tag{4} xi(t+1)= Q×exp(i2Xbxi(t)),f(xi)>fMdXb+ xi(t)Xb ×A+×L,f(xi)fMd(4)

基于分段函数改进偷窃行为

偷窃蜣螂占据种群的 40%,实现对种群的快速收敛,但原算法偏重在全局最优位置附近扰动,无法充分利用当前位置信息,使得种群对全局探索能力欠佳,在复杂问题上容易过早收敛。故基于分段函数形式改进偷窃行为,并以 sin 函数对扰动幅度进行约束:
x i ( t + 1 ) = { x i ( t ) + sin ⁡ z × S × g × { ∣ x i ( t ) − X ∗ ∣ + ∣ x i ( t ) − X b ∣ } , t ≤ T m a x 2 X b + sin ⁡ z × S × g × { ∣ x i ( t ) − X ∗ ∣ + ∣ x i ( t ) − X b ∣ } , t > T m a x 2 (5) x_i\left(t+1\right)=\begin{cases}x_i\left(t\right)+\sin z\times S\times g\times\left\{\left|x_i\left(t\right)-X^*\right|+\left|x_i\left(t\right)-X^\mathrm{b}\right|\right\},t\leq\frac{T_\mathrm{max}}2\\\\X^\mathrm{b}+\sin z\times S\times g\times\left\{\left|x_i\left(t\right)-X^*\right|+\left|x_i\left(t\right)-X^\mathrm{b}\right|\right\},t>\frac{T_\mathrm{max}}2&\end{cases}\tag{5} xi(t+1)= xi(t)+sinz×S×g×{xi(t)X+ xi(t)Xb },t2TmaxXb+sinz×S×g×{xi(t)X+ xi(t)Xb },t>2Tmax(5)

非线性权重的柯西-高斯变异

全局最优位置对蜣螂种群的滚球、觅食、偷窃行为都有指引作用。用柯西-高斯变异策略可以对全局最优个体进行随机扰动:
X n e w = X b × [ w 1 × C a u c h y + ( 1 − w 1 ) × G a u s s i a n ] (6) X_{\mathrm{new}}=X^{\mathrm{b}}\times\left[w_{1}\times Cauchy+\left(1-w_{1}\right)\times Gaussian\right]\tag{6} Xnew=Xb×[w1×Cauchy+(1w1)×Gaussian](6)

3.结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

比较难的F7,F8

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] 匡鑫,阳波,马华,等.多策略改进的蜣螂优化算法[J/OL].计算机工程,1-20[2024-07-08].

5.代码获取

【资源清单】代码资源清单导航~

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

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

相关文章

windows电脑桌面便签在哪里找?

在忙碌的工作中&#xff0c;我们经常会有很多事情需要记住。这时&#xff0c;电脑桌面便签就成为了我们的好帮手。那么&#xff0c;在Windows电脑上&#xff0c;我们该如何找到桌面便签呢&#xff1f;下面&#xff0c;就让我来为大家详细介绍一下。 其实&#xff0c;Windows电…

Android多开应用软件系统设计

设计一个支持Android多开应用的软件系统&#xff0c;主要涉及到以下几个关键技术点和设计考虑&#xff1a; 1. 虚拟化技术 容器技术&#xff1a;与传统的虚拟机不同&#xff0c;可以采用更轻量级的容器技术&#xff0c;为每个应用实例创建独立的运行环境。这包括分配独立的用…

【CUDA】shuffle算法的一个优化

最近&#xff0c;笔者在阅读这篇文章时很好奇&#xff0c;为什么使用看起来高大上的shuffle算法之后&#xff0c;并没有造成优化反而有了负优化&#xff0c;想到了一个可以优化的地方&#xff1a;在最后针对一个warp进行处理时&#xff0c;当前block中不在第一个warp中的线程会…

【Linux】进程间通信——匿名管道

为什么要进行进程间通信&#xff1f; 1.数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程&#xff0c;比如我们有两个进程&#xff0c;一个负责获取数据&#xff0c;另一个负责处理数据&#xff0c;这时第一个进程就要将获取到的数据交给第二个进程 2.资源共享&…

职业理念教育观

职业道德理念——教育观 教育是什么、干什么、为了什么&#xff0c;教育心该培养什么样的人、如何培养人等。 教育观 素质教育内涵 教学观 素质教育内涵 新课程改革的教学观

4.Python4:requests

1.requests爬虫原理 &#xff08;1&#xff09;requests是一个python的第三方库&#xff0c;主要用于发送http请求 2.正则表达式 #正则表达式 import re,requests str1aceace #A(.*?)B,匹配A和B之间的值 print(re.findall(a(.*?)e,str1))import re,requests str2hello com…

背包问题转换

如何转换成背包问题呢&#xff0c;我们可以把每个质数当成一个重量 #define _CRT_SECURE_NO_WARNINGS #include<bits/stdc.h> using namespace std;#define int long long int record[1005]; void fun() {//record[2] 1;for (int i 2; i < 1000; i) {if (!record[…

微信视频号及直播回放下载工具

最近需要下载微信视频号中的视频&#xff0c;找一圈&#xff0c;终于找到了&#xff0c;&#xff0c;免费&#xff0c;没广告 软件叫做&#xff1a;爱享素材下载器。 是一款开源的、完全免费的工具。 第1步&#xff1a;下载安装包 下载地址&#xff1a; https://github.com/p…

jmeter+ant+jenkins搭建 接口自动化测试平台

平台搭建 &#xff08;1&#xff09;录制jmeter脚本 &#xff08;2&#xff09;将jmeter的安装目录下的G:\jmeter\apache-jmeter-5.1.1\extras中&#xff0c;将 ”ant-jmeter-1.1.1.jar”文件放到 ant的lib目录下 &#xff08;3&#xff09;配置jmeter的xml配置文件&#xf…

python对象

类 我们目前所学习的对象都是Python内置的对象但是内置对象并不能满足所有的需求&#xff0c;所以我们在开发中经常需要自定义一些对象类&#xff0c;简单理解它就相当于一个图纸。在程序中我们需要根据类来创建对象类就是对象的图纸&#xff01;我们也称对象是类的实例&#…

【第22章】MyBatis-PlusSQL分析与打印

文章目录 前言一、p6spy简介二、示例工程1. 依赖引入2. 配置 三、Spring Boot集成1. 依赖2. 配置3. 注意事项 四、实战1. 依赖2. 配置(spy.properties)3. 配置类4. 测试类5. 结果 总结 前言 MyBatis-Plus提供了SQL分析与打印的功能&#xff0c;通过集成p6spy组件&#xff0c;可…

电脑找回彻底删除文件?四个实测效果的方法【一键找回】

电脑数据删除了还能恢复吗&#xff1f;可以的&#xff0c;只要我们及时撤销上一步删除操作&#xff0c;还是有几率找回彻底删除文件。 当我们的电脑文件被彻底删除后&#xff0c;尽管恢复的成功率可能受到多种因素的影响&#xff0c;但仍有几种方法可以尝试找回这些文件。本文整…

白帽工具箱:DVWA中CSRF攻击与防御的入门指南

&#x1f31f;&#x1f30c; 欢迎来到知识与创意的殿堂 — 远见阁小民的世界&#xff01;&#x1f680; &#x1f31f;&#x1f9ed; 在这里&#xff0c;我们一起探索技术的奥秘&#xff0c;一起在知识的海洋中遨游。 &#x1f31f;&#x1f9ed; 在这里&#xff0c;每个错误都…

镜舟科技:国产数据库角逐金融赛道,开年斩获数家银行订单

在国产数据库领域&#xff0c;镜舟科技正迅速崛起&#xff0c;成为一匹瞩目的基础数据技术黑马。 开年伊始&#xff0c;镜舟科技便成功斩获中信银行、南京银行、某股份制银行、某头部民营银行、某大型综合类券商以及某消费金融公司等多家金融企业订单&#xff0c;其锚定需求匹…

最优化方法 运筹学【】

1.无约束 常用公式 线搜索准则&#xff1a;求步长 精确线搜索&#xff08;argmin&#xff09; 最速下降&#xff1a;sd&#xff1a;线性收敛 2.算法 SD dk&#xff1a;付梯度-g newton dk&#xff1a;Gkd-g 二阶收敛&#xff0c;步长为1 阻尼牛顿&#xff1a;步长用先搜…

HBuilder X 小白日记03-用css制作简单的交互动画

:hover选择器&#xff0c;用于选择鼠标指针浮动在上面的元素。 :hover选择器可用于所有元素&#xff0c;不只是链接 :link选择器 设置指向未被访问页面的链接的样式 :visited选择器 用于设置指向已被访问的页面的链接 :active选择器 用于活动链接

【Java14】构造器

Java中的构造器在创建对象&#xff08;实例&#xff09;的时候执行初始化。Java类必须包含一个或一个以上的构造器。 Java中的构造器类似C中的构造函数。 Java中对象&#xff08;object&#xff09;的默认初始化规则是&#xff1a; 数值型变量初始化为0&#xff1b;布尔型变量…

记录一次Nginx的使用过程

一、Docker安装配置nginx 1.拉取镜像 docker pull nginx2.创建挂载目录 启动前需要先创建Nginx外部挂载目录文件夹 主要有三个目录 conf&#xff1a;配置文件目录log&#xff1a;日志文件目录html&#xff1a;项目文件目录&#xff08;这里可以存放web文件&#xff09; 创建挂…

智能视频监控中心 - 详细介绍

目录 一、概述 &#xff08;一&#xff09;定义 &#xff08;二&#xff09;作用 1、系统安全性 2、整体管理效率 3、数据支持决策 4、促进企业集团化和智慧城市发展 二、原理和组成 &#xff08;一&#xff09;原理 &#xff08;二&#xff09;组网图 &#xff08;…

MATLAB常用的插值方法

在数学建模中&#xff0c;我们拿到的数据经常会有缺失值&#xff0c;在缺失值不是很多的情况下&#xff0c;我们在数据预处理阶段会采用插值方法来将数据补齐&#xff0c;之后再开始我们的建模。 目录 1.Matlab 实现分段线性插值 2.拉格朗日插值多项式 3.牛顿&#xff08;…