【群智能算法】一种改进的蜣螂优化算法IDBO[2]【Matlab代码#18】

news2024/11/27 2:37:04

文章目录

    • 1. 原始DBO算法
    • 2. 改进后的IDBO算法
        • 2.1 Bernoulli混沌映射种群初始化
        • 2.2 自适应因子
        • 2.3 Levy飞行策略
        • 2.4 动态权重系数
    • 3. 部分代码展示
    • 4. 效果图展示
    • 5. 资源获取

1. 原始DBO算法

详细介绍此处略,可参考DBO算法介绍

2. 改进后的IDBO算法

2.1 Bernoulli混沌映射种群初始化

传统的蜣螂优化算法在种群初始化阶段采用的是生成随机数的方式进行初始化种群位置,导种群中蜣螂的位置良莠不齐,同时不能遍历环境中的所有位置,导致其寻优效果差、收敛速度低。所以本文提出在种群初始化阶段引入Bernoulli映射,Bernoulli映射的数学表达式可表示为:
在这里插入图片描述
其中, Z k Z_{k} Zk为产生的第 k k k代混沌序列的当前值, ρ \rho ρ为控制参数,经过实验发现,当 ρ \rho ρ处于 0.5 附近时能够获得更好的遍历性。

2.2 自适应因子

在繁殖和觅食行为的蜣螂位置更新公式中,会根据目前的个体和群体的最优解来更新自己的位置,一旦这个解陷入局部最优,整个种群就很容易进入停滞状态,为了改善这个问题,平衡全局和局部搜索能力,引入了自适应因子:

k = 2*rand()-1;
z = exp(5*cos(pi*(t/Max_iteration)));
c = exp(z*k) * cos(2*pi*k);

2.3 Levy飞行策略

在偷窃行为蜣螂的位置更新公式中,也会根据目前的个体最优值来更新自己的位置,也容易陷入局部最优,此时可以使用莱维飞行策略进行位置更新使得这部分个体去到更广的搜索空间:
在这里插入图片描述

2.4 动态权重系数

基本蜣螂优化算法的偷窃行为更新阶段,在迭代初期就向全局最优解逼近,会导致搜索范围不足,陷入局部最优,使搜索失败。为克服这一弊端,再在其位置更新公式中加入动态权重系数 ω,让它在迭代初期具有较大值,促进
全局搜索,迭代后期自适应变小,促进局部搜索并加快收敛速度。

3. 部分代码展示

function [ bestX,fMin , Convergence_curve ] = HDBO(N, Max_iteration,lb,ub,dim,fobj  )
       
P_percent = 0.2;     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
pNum = round( N *  P_percent );    % The population size of the producers   

lb= lb.*ones( 1,dim );    % Lower limit/bounds/     a vector
ub= ub.*ones( 1,dim );    % Upper limit/bounds/     a vector

%Initialization
% ★★改进1:Bernoulli映射种群初始化★★
x = Bernoulli(N,dim,ub,lb);
for i = 1 : N
    fit( i ) = fobj( x( i, : ) ) ; 
end

pFit = fit;                       
pX = x; 
XX=pX;    
[ fMin, bestI ] = min( fit );
bestX = x( bestI, : );

4. 效果图展示

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

5. 资源获取

A资源获取说明.zip
A资源获取说明.zip

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

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

相关文章

【Linux问题合集002】解决虚拟机里面的Linux系统部分无法上网情况,保姆级教程

🍀一、前言 正如标题所说,解决虚拟机里面的Linux系统部分无法上网情况,这个网络问题的原因有很多种可能,这篇博客不一定能够解决所有朋友的网络问题,但是如果遇到和我一样情况的,我保证解决步骤一定是非常详…

使用 Python 创建端到端聊天机器人

使用 Python 创建端到端聊天机器人 1. 效果图2. 原理2.1 什么是端到端聊天机器人?2.2 创建端到端聊天机器人步骤 3. 源码3.1 streamlit安装3.2 源码 参考 聊天机器人是一种计算机程序,它了解您的查询意图以使用解决方案进行回答。聊天机器人是业内最受欢…

《LKD3粗读笔记》(11)定时器和时间管理

文章目录 1、内核中的时间概念2、 节拍率:HZ3、jiffies4、硬时钟和定时器5、时钟中断处理程序6、实际时间7、定时器8、延迟执行 1、内核中的时间概念 硬件为内核提供了一个系统定时器用以计算流逝的时间,该时钟在内核中可看成是一个电子时间资源&#x…

Nginx安装删除JDK Tomcat Redis

1.卸载Nginx ps -ef|grep nginx 查询Nginx 进程pid 如上图 master是主进程, worker是工作进程, master负责维护worker进程 Nginx启动后默认启动master进程和worker进程 Nginx默认使用端口80 kill -9 7035 或者 kill -term 7035 kill -9 7036 查找根下所有名字包…

带你搞懂人工智能、机器学习和深度学习!

不少高校的小伙伴找我聊入门人工智能该怎么起步,如何快速入门,多长时间能成长为中高级工程师(聊下来感觉大多数学生党就是焦虑,毕业即失业,尤其现在就业环境这么差),但聊到最后,很多…

07 Kubernetes 网络与服务管理

课件 Kubernetes Service是一个抽象层,用于定义一组Pod的访问方式和访问策略,其作用是将一组Pod封装成一个服务,提供一个稳定的虚拟IP地址和端口号,以便于其他应用程序或服务进行访问。 以下是Kubernetes Service YAML配置文件的…

FPGA时序约束(五)衍生时钟约束与I/O接口约束

系列文章目录 FPGA时序约束(一)基本概念入门及简单语法 FPGA时序约束(二)利用Quartus18对Altera进行时序约束 FPGA时序约束(三)时序约束基本路径的深入分析 FPGA时序约束(四)主时…

2023五一建模A题完整版本【原创首发】

已经完成五一数学建模全部内容,大家可以文末查看!!供参考使用! 摘要 本文研究了喷气式无人机在执行空中物资投放和爆破任务过程中的数学建模问题。我们分析了无人机投放距离与飞行高度、飞行速度、空气阻力等因素之间的关系&…

【Mybatis源码分析】动态标签的底层原理,DynamicSqlSource源码分析

DynamicSqlSource 源码分析 一、DynamicSqlSource 源码分析😯DynamicContext源码分析🙄SqlNode源码分析(动态SQL标签)Mybatis 动态SQL标签举例、调试SqlNode源码分析MixedSqlNodeIfSqlNodeWhereSqlNode、SetSqlNode、TrimSqlNodeS…

区域医疗云his系统源码,具有可扩展、易共享、易协同的优势

云HIS系统采用SaaS软件应用服务模式,提供软件应用服务多租户机制,实现一中心部署多机构使用。相对传统HIS单机构应用模式,它可灵活应对区域医疗、医疗集团、医联体、连锁诊所、单体医院等应用场景,并提升区域内应用的标准化与规范…

安装配置goaccess实现可视化并实时监控nginx的访问日志

一、业务需求 我们安装了nginx后,需要对nginx的访问情况进行监控(希望能够实时查看到访问nginx的情况),如下图所示: 二、goaccess的安装配置步骤 2.1、准备内容 需要先安装配置nginx或OpenResty - 安装 Linux环境对Nginx开源版源码下载、编译、安装、开机自启https://b…

从0开始利用Jenkins构建Maven项目(微服务)并自动发布

0. 前言 本文旨在帮助读者梳理如何从0开始利用Jenkins构建Maven项目(微服务)的自动发布任务 本文目录如下: 如何完成自动部署 0. 前言1. 配置工具类地址1.1 JDK1.2 Git1.3 Maven 2. 安装Jenkins3. 安装额外的工具插件4. 配置必要参数4.1 配…

TiDB实战篇-索引设计

简介 实战索引设计 数据映射原理 索引 唯一索引 二级索引 索引实例 索引设计 索引创建(建表的时候创建) 建表完以后添加 联合索引(最左原则,索引覆盖) 使用例子 索引覆盖 表达式索引 表达式索引的使用 不可见…

【youcans 的 OpenCV 学习课】23. 人脸检测:Haar 级联检测器

专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 【youcans 的 OpenCV 学习课】23. 人脸检测:Haar 级联检测器 4. Haar 级联分类器5. Haar 人脸/人眼检测器5.1 OpenCV 中的级联分类器5.2 Haar 级联检…

OPNET Modeler 调试简介

在使用 OPNET Modeler 软件运行仿真时,经常会遇到错误,发现和定位错误所在的地方是解决错误的第一步,那么怎么定位错误呢,这个时候就需要采用仿真调试器 (OPNET Simulation Debugger,ODB)进行调试了。 在 OPNET 中&…

【模电实验】电路元件伏安特性的测绘及电源外特性的测量

实验2电路元件伏安特性的测绘及电源外特性的测量 实验目的 学习测量线性和非线性电阻元件伏安特性的方法,并绘制其特性曲线学习测量电源外特性的方法掌握运用伏安法判定电阻元件类型的方法学习使用直流电压表、电流表,掌握电压、电流的测量方法 实验原…

Java BIO(Blocking IO:同步并阻塞式IO)

1.基本介绍 1>.Java BIO就是传统的java io编程,其相关的类和接口在"java.io"包下; 2>.BIO(Blocking I/O): 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理; 如果这个连接不做任何事情会造成(服务器)不必…

【C++】STL——list深度剖析 及 模拟实现

文章目录 前言1. list的介绍及使用1.1 list的介绍1.2 list的使用遍历插入删除数据Operations迭代器的功能分类list 的sort性能测试 2. list的模拟实现2.1 STL_list源码浏览2.2 基本结构实现2.3 思考:list迭代器是否可以用原生指针2.4 list迭代器的实现(重…

RocketMQ5.1 NameServer 路由管理

文章目录 1. 路由管理核心组件介绍2. RouteInfoManager 路由表3. 路由管理3.1 注册 Broker3.2 注销 Broker3.3 拼凑 TopicRouteData 此文章基于 RocketMQ 5.1 版本进行分析,与 4.x 版本相比此文章分析的部分源码有很大的区别 1. 路由管理核心组件介绍 路由管理是指…

亚马逊、沃尔玛、ebay测评出现风控、砍单、封号怎么解决?

大家好,我是亚马逊测评珑哥,提前祝各位跨境朋友五一假期愉快。 很多卖家和工作室的朋友加珑哥,沟通中很多朋友都在问为什么测评中一直被砍单,封号是什么原因?其实测评不是你随便买个IP,或者买几个买家号就…