当前位置: 首页 > news >正文

【群智能算法改进】一种改进的蜣螂优化算法IDBO[3](立方混沌映射Cubic、融合鱼鹰勘探策略、混合高斯柯西变异)【Matlab代码#92】

文章目录

    • 【`获取资源`请见文章第5节:资源获取】
    • 1. 原始DBO算法
    • 2. 改进后的IDBO算法
        • 2.1 立方混沌映射Cubic种群初始化
        • 2.2 融合鱼鹰勘探策略
      • 2.3 混合高斯柯西变异
    • 3. 部分代码展示
    • 4. 仿真结果展示
    • 5. 资源获取


获取资源请见文章第5节:资源获取】


1. 原始DBO算法

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

2. 改进后的IDBO算法

2.1 立方混沌映射Cubic种群初始化

立方混沌映射是混沌映射中最常用的方法之一。在解决优化问题时,立方混沌映射可以生成0到1之间的随机序列,具有更好的遍历性和随机性。立方映射函数可以表示如下:
在这里插入图片描述
立方映射表达式也可以表示为:
在这里插入图片描述
在上面公式中, ρ \rho ρ表示立方映射因子(控制参数),序列值 x n ∈ ( 0 , 1 ) x_{n} \in (0,1) xn(0,1),实验结果表明,当初始值为 x 0 = 0.3 , ρ = 2.595 x_{0}= 0.3,\rho =2.595 x0=0.3,ρ=2.595时产生的混沌序列具有良好的随机性,并且处于完全混沌状态。
在这里插入图片描述

2.2 融合鱼鹰勘探策略

考虑到在蜣螂优化算法的迭代过程中,存在蜣螂个体无法与其他蜣螂通信,并且具有许多参数的弊端,这很容易导致搜索效率低和局部最优解问题。而鱼鹰优化算法的全局探索策略作为该算法的核心步骤,赋予了算法识别最优区域和逃离局部最优的探索能力。因此,采用鱼鹰优化算法的全局探索策略来代替蜣螂算法中某阶段的更新公式。新公式如下面所示:
在这里插入图片描述
其中, r r r是[0,1]之间的随机数, I I I的值是1或者2。

2.3 混合高斯柯西变异

在原始蜣螂优化算法迭代过程中,蜣螂个体的快速同化可能会导致种群聚集在当前最优位置附近,从而陷入局部最优解而无法发现全局最优解。为了解决这个问题,引入变异算子对个体进行干扰,以增加种群的多样性,跳出局部最优解。柯西和高斯变异是两种常用的变异算子,但各自存在一些缺点。因此,提出一种融合了柯西变异和高斯变异各自的优点的自适应高斯-柯西混合变异策略。
在这里插入图片描述

3. 部分代码展示

%% 清除环境变量
clear;
close all;
clc;

%% 参数设置
N = 30;             % 种群规模
Function_name = 'F1';         % 从F1到F23的测试函数的名称
Max_iteration = 500;           % 最大迭代次数
cnt_max = 2;
% 加载所选基准函数的详细信息
[lb, ub, dim, fobj] = Get_Functions_details(Function_name);

Curve_GWO = zeros(1, Max_iteration);
Curve_SSA = zeros(1, Max_iteration);
Curve_WOA = zeros(1,Max_iteration);
Curve_NGO = zeros(1,Max_iteration);
Curve_DBO = zeros(1,Max_iteration);
Curve_IDBO = zeros(1,Max_iteration);


for cnt = 1:cnt_max
    % 初始化种群位置
    X = initialization(N, dim, ub, lb);
    [GWO_Best_score(cnt), GWO_Best_pos(cnt, :), GWO_Curve] = GWO(X, N, Max_iteration, lb, ub, dim, fobj);   
    [SSA_Best_score(cnt), SSA_Best_pos(cnt, :), SSA_Curve] = SSA(X, N, Max_iteration, lb, ub, dim, fobj); 
    [WOA_Best_score(cnt), WOA_Best_pos(cnt, :), WOA_Curve]=WOA(X,N,Max_iteration,lb,ub,dim,fobj);
    [NGO_Best_score(cnt), NGO_Best_pos(cnt, :), NGO_Curve] = NGO(X,N,Max_iteration,lb,ub,dim,fobj);
    [DBO_Best_score(cnt), DBO_Best_pos(cnt, :), DBO_Curve]=DBO(X,N,Max_iteration,lb,ub,dim,fobj);
    [IDBO_Best_pos(cnt, :),IDBO_Best_score(cnt), IDBO_Curve]=IDBO(N,Max_iteration,lb,ub,dim,fobj);

4. 仿真结果展示

在这里插入图片描述

5. 资源获取

可更换其他群智能算法,获取完整代码资源。👇👇👇👀名片

http://www.dtcms.com/a/102561.html

相关文章:

  • HarmonyOS:ComposeTitleBar 组件自学指南
  • 【学习笔记】计算机网络(五)
  • 【Golang】Windows系统键鼠空闲监测练习
  • 每天学一个 Linux 命令(8):ls
  • 使用 KT-Connect 0.3.7在本地访问 Kubernetes
  • 如何实现口型0误差?
  • RTL8304问题
  • 《电容:时空交错的能量银行》
  • 愚人杯-web-被遗忘的反序列化
  • [数学]关于组合数
  • 蓝桥杯比赛python程序设计——班级活动
  • 【前端】一文掌握 Vue 3 指令用法(vue3 备忘清单)
  • 字符串复习
  • scss报错Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0
  • 如何加强 SSH 安全:内网和专用网络环境下的防护策略
  • Linux中的文件寻址
  • 脚手架 + 指令
  • 山东大学软件学院项目创新实训开发日志(4)之中医知识问答数据存储、功能结构、用户界面初步设计
  • 语义分析(编译原理)
  • Springcache+xxljob实现定时刷新缓存
  • Linux文件描述符的分配机制与重定向实现:揭开“一切皆文件”的面纱
  • 使用卷积神经网络识别MNIST数据集
  • AI与.NET技术实操系列(三):在 .NET 中使用大语言模型(LLMs)
  • YOLOSCM: 基于改进YOLO算法的车辆检测模型详解
  • [动规21] 乘积最大子数组 #medium
  • Qt使用QGraphicsView绘制线路图————附带详细实现代码
  • rk3586开发版新增系统调用(Android13)
  • Altium Designer 24 PCB 走线倒圆弧方法
  • 23 推导式
  • 计算机网络 OSI参考模型