【群智能算法改进】一种改进的蜜獾算法 IHBA算法[2]【Matlab代码#83】


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


1. 蜜獾算法(HBA)

蜜獾算法(Honey Badger Algorithm,HBA)是模仿蜜獾觅食行为而形成的一种优化算法。为了定位食物来源,蜜獾通常有两种方式,一是通过闻和挖,二是通过跟着导蜜鸟的方式。
在蜜獾算法中,我们将第一种情况称为挖掘模式,第二种是蜂蜜模式。在前一种模式中,它利用自己的嗅觉能力来接近猎物的位置;当到达猎物附近时,它会在猎物周围移动,选择合适的地方挖掘和捕捉猎物。在后一种模式中,蜜獾以导蜜鸟为向导直接定位蜂窝。

1.1 挖掘阶段

在挖掘阶段,蜜獾的动作类似于一个心形,这个心形的挖掘行为可以被如下的公式描述:
在这里插入图片描述
其中, x p r e y x_{prey} xprey表示到目前为止的全局最优解, F F F取-1或者1, I I I表示某个个体的强度值(强度值和当前个体与猎物的距离等有关),其余参数为随机值或者常量。

1.2 蜂蜜阶段

在蜂蜜阶段,蜜獾会跟随导蜜鸟到达蜂巢,从而寻找到蜂蜜。这个过程可以被如下的公式来描述:
在这里插入图片描述

2. 改进后的蜜獾算法(IHBA)

2.1 Sine映射种群初始化

原始的HBA算法随机的获得初始解,这很难确保所有个体能均匀地覆盖整个解空间。混沌映射在优化算法中经常被用来分散种群和减少聚集。

Sine混沌映射具有结构简单,效率高等特点。Sine混沌映射公式如下:
在这里插入图片描述

2.2 黄金正弦策略扰动

黄金正弦算法通过组合正弦函数和黄金比例的方法进行迭代搜索,以接近最优解。黄金正弦作用时,搜索空间逐渐变窄,并在可能达到最优解的区域进行搜索,以提高收敛效率。黄金正弦的参考公式如下:
在这里插入图片描述

3. 部分代码展示

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

SearchAgents_no=30; % 种群数量
Function_name='F9'; % 标准测试函数编号(F1~F23)
Max_iteration=500; % 最大迭代次数
% 获取目标函数对应参数
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
% 寻优
[Best_score_HBA,Best_pos_HBA,cg_curve_HBA]=HBA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
[Best_score_IHBA,Best_pos_IHBA,cg_curve_IHBA]=IHBA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);

figure('Position',[500 500 660 290])
% 绘制搜索空间
subplot(1,2,1);
func_plot(Function_name);
title('Test function')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])
grid off

% 绘制收敛曲线
subplot(1,2,2);
semilogy(cg_curve_HBA,'LineWidth',2,'Color','b')
hold on
semilogy(cg_curve_IHBA,'LineWidth',2,'Color','r')
title('Convergence curve')
xlabel('Iteration');
ylabel('Best score obtained so far');

axis tight
grid off
box on
legend('HBA','IHBA')

display(['The best optimal value of the objective funciton found by HBA is : ', num2str(Best_score_HBA)]);
display(['The best optimal value of the objective funciton found by IHBA is : ', num2str(Best_score_IHBA)]);

4. 仿真结果展示

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

5. 资源获取说明

可以获取完整代码资源。👇👇👇👀名片

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天`南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值