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

目录

    • 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.rhkb.cn/news/372080.html

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

相关文章

PyCharm中如何将某个文件设置为默认运行文件

之前在使用JetBrain公司的另一款软件IDEA的时候&#xff0c;如果在选中static main函数后按键altenter可以默认以后运行Main类的main函数。最近在使用PyCharm学习Python&#xff0c;既然同为一家公司的产品而且二者的风格如此之像&#xff0c;所以我怀疑PyCharm中肯定也有类似的…

day01:项目概述,环境搭建

文章目录 软件开发整体介绍软件开发流程角色分工软件环境 外卖平台项目介绍项目介绍定位功能架构 产品原型技术选型 开发环境搭建整体结构&#xff1a;前后端分离开发前后端混合开发缺点前后端分离开发 前端环境搭建Nginx 后端环境搭建熟悉项目结构使用Git进行版本控制数据库环…

【Mathematical14.0最新进阶教学】-1-基础计算拓展

我在真正使用Mathematica后&#xff0c;才发觉这个软件的神奇&#xff0c;但是又有对于不知道如何使用这个神奇软件&#xff0c;因此我将我学习《The Student’s Introduction to Mathematica and the Wolfram Language (Bruce F. Torrence, Eve A. Torrence) 》的一些心得进行…

【AI大模型】驱动的未来:穿戴设备如何革新血液、皮肤检测与营养健康管理

文章目录 1. 引言2. 现状与挑战3. AI大模型与穿戴设备概述4. 数据采集与预处理4.1 数据集成与增强4.2 数据清洗与异常检测 5. 模型架构与训练5.1 高级模型架构5.2 模型训练与调优 6. 个性化营养建议系统6.1 营养建议生成优化6.2 用户反馈与系统优化 7. 关键血液成分与健康状况评…

Appium Inspector介绍和使用

一、什么是Appium Inspector 官方介绍&#xff1a;Overview - Appium Inspector 检查器的主要目的是提供应用程序页面源代码的检查功能。它主要用于测试自动化开发&#xff0c;但也可用于应用程序开发 - 或者如果只是想查看应用程序的页面源代码&#xff01; 从本质上讲&…

谈大语言模型动态思维流程编排

尽管大语言模型已经呈现出了强大的威力&#xff0c;但是如何让它完美地完成一个大的问题&#xff0c;仍然是一个巨大的挑战。 需要精心地给予大模型许多的提示&#xff08;Prompt&#xff09;。对于一个复杂的应用场景&#xff0c;编写一套完整的&#xff0c;准确无误的提示&am…

力扣hot100-普通数组

文章目录 题目&#xff1a;最大子数组和方法1 动态规划方法2 题目&#xff1a;合并区间题解 题目&#xff1a;轮转数组方法1-使用额外的数组方法2-三次反转数组 题目&#xff1a;除自身以外数组的乘积方法1-用到了除法方法2-前后缀乘积法 题目&#xff1a;最大子数组和 原题链…

MICCAI 2024Centerline Boundary Dice Loss for Vascular Segmentation

MICCAI 2024 Centerline Boundary Dice Loss for Vascular Segmentation MICCAI 2024Centerline Boundary Dice Loss for Vascular Segmentation中心线边界Dice损失用于血管分割**摘要**:1. 引言相关工作&#xff1a; 2. 方法预备知识Dice的变化 3 实验3.1 数据集3.2 设置3.3 结…

虚拟机使用

1、安装 如何安装虚拟机&#xff1f;保姆级安装教程&#xff01; - 知乎 (zhihu.com) 2、使用 2.1 快照 作用&#xff1a;保留当前系统信息为快照&#xff0c;随时可以恢复&#xff0c;以防未来系统被你玩坏&#xff0c;就好比游戏中的归档&#xff01;每配置好一个就可以保…

C++ 类和对象 拷贝构造函数

一 拷贝构造函数的概念&#xff1a; 拷贝构造函数是一种特殊的构造函数&#xff0c;用于创建一个对象是另一个对象的副本。当需要用一个已存在的对象来初始化一个新对象时&#xff0c;或者将对象传递给函数或从函数返回对象时&#xff0c;会调用拷贝构造函数。 二 拷贝构造函…

【TB作品】51单片机 Proteus仿真00016 乒乓球游戏机

课题任务 本课题任务 (联机乒乓球游戏)如下图所示: 同步显示 oo 8个LED ooooo oo ooooo 8个LED 单片机 单片机 按键 主机 从机 按键 设计题目:两机联机乒乓球游戏 图1课题任务示意图 具体说明: 共有两个单片机,每个单片机接8个LED和1 个按键,两个单片机使用串口连接。 (2)单片机…

pygame 音乐粒子特效

代码 import pygame import numpy as np import pymunk from pymunk import Vec2d import random import librosa import pydub# 初始化pygame pygame.init()# 创建屏幕 screen pygame.display.set_mode((1920*2-10, 1080*2-10)) clock pygame.time.Clock()# 加载音乐文件 a…

CentOS 离线安装部署 MySQL 8详细教程

1、简介 MySQL是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它基于SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;进行操作。MySQL最初由瑞典的MySQL AB公司开发&#xff0c;后来被Sun Microsystems公司…

若依前后端分离 前端路由登录页 如何进行跳转

路由守卫&#xff0c;看这篇文章 http://t.csdnimg.cn/HkypThttp://t.csdnimg.cn/HkypT

从nginx返回404来看http1.0和http1.1的区别

序言 什么样的人可以称之为有智慧的人呢&#xff1f;如果下一个定义&#xff0c;你会如何来定义&#xff1f; 所谓智慧&#xff0c;就是能区分自己能改变的部分&#xff0c;自己无法改变的部分&#xff0c;努力去做自己能改变的&#xff0c;而不要天天想着那些无法改变的东西&a…

【基础算法总结】分治—归并

分治—归并 1.排序数组2.交易逆序对的总数3.计算右侧小于当前元素的个数4.翻转对 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.排序数组 …

线性代数笔记

行列式 求高阶行列式 可以划上三角 上三角 余子式 范德蒙行列式 拉普拉斯公式 行列式行列对换值不变 矩阵 矩阵的运算 同型矩阵加减 对应位置相加减 矩阵的乘法 左边第 i 行 一次 相乘求和 右边 第 j 列 eg 中间相等 两边规模 矩阵的幂运算 解题思路 找规律 数学归纳…

青岛外贸建站公司wordpress网站模板

电子数码wordpress网站模板 电子数码wordpress网站模板&#xff0c;做数码电子的生产厂家或外贸公司官方网站模板。 https://www.jianzhanpress.com/?p3161 金属不锈钢wordpress外贸主题 适合从事金属不锈钢生产、加式或做外贸的公司&#xff0c;简洁wordpress外贸主题模板…

matlab仿真 信道(上)

&#xff08;内容源自详解MATLAB&#xff0f;SIMULINK 通信系统建模与仿真 刘学勇编著第四章内容&#xff0c;有兴趣的读者请阅读原书&#xff09; 1.加性高斯白噪声信道&#xff08;AWGN &#xff09; clear all t0:0.001:10; xsin(2*pi*t);%原始信号 snr20;%设定加性白噪…

C++ STL 多线程库用法介绍

目录 一&#xff1a;Atomic&#xff1a; 二&#xff1a;Thread 1. 创建线程 2. 小心移动(std::move)线程 3. 如何创建带参数的线程 4. 线程参数是引用类型时&#xff0c;要小心谨慎。 5. 获取线程ID 6. jthread 7. 如何在线程中使用中断 stop_token 三&#xff1a;如何…