当前位置: 首页 > 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. 资源获取

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

相关文章:

  • 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实现定时刷新缓存
  • 有哪些网站可以做h5/免费发布推广的网站有哪些
  • 网站建设合同协议/百度seo关键词排名技术
  • 网站的做公司/网页制作软件哪个好
  • 电商网站开发工程师/atp最新排名
  • 成都建材网站建设/什么是网络营销公司
  • 做淘宝客怎样建网站/seo关键词怎么选