✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
蜜獾算法(Honey Badger Algorithm, HBA)是2022年提出的一种新型群智能优化算法,也是今年才提出的,热乎着呢。HBA主要通过模拟蜜獾在自然界中的觅食行为(主要就是挖洞和偷蜂蜜)来进行寻优,具有较强的搜索能力,且收敛速度快。
图1 平头哥珍贵照片
蜜獾是一种聪明的动物,它们能够使用工具,而且非常喜欢蜂蜜。由于它们勇敢的天性(蜜之自信),当它们无法逃脱时,即会毫不犹豫地与对手硬刚:
图2 蜜獾与狮子对线
通常来讲,一只蜜獾可以使用嗅觉持续定位它的猎物。蜜獾喜欢蜂蜜,但它不善于定位蜂巢。不过有意思的是,蜂蜜向导(一种鸟)可以找到蜂巢,但不能得到蜂蜜。这些现象即使两者形成了合作关系:向导鸟将蜜獾带到蜂巢,后者利用前爪打开蜂巢,然后两者都享受团队合作的回报。
因此为了找到蜂巢,蜜獾要么狂嗅+狂挖,要么跟着向导鸟。文中称第一种情况为挖掘模式,而第二种情况为蜂蜜模式。在挖掘模式中,蜜獾利用自己的嗅觉能力来定位蜂巢,当接近蜂巢时,它会选择合适的地点进行挖掘;在蜂蜜模式中,蜜獾直接利用向导鸟定位蜂巢。
种群初始化
第一步仍然是熟悉的种群位置初始化:
编辑
式中ub、lb分别为搜索空间的上、下限。
蜂蜜吸引度
蜂蜜吸引度与蜂巢和第i 只蜜獾之间的距离有关:
编辑
式中xprey 即为蜂巢的位置,在算法中视作最优个体的位置。由图3可以看出,蜜獾与蜂巢的距离越近,这种吸引力越强:
图3 吸引程度与距离成反比
更新密度因子
在算法中,密度因子(α)控制着时变随机化,以确保从勘探到开采的平稳过渡:
编辑
式中t 为当前迭代次数,C=2。
挖掘阶段
此阶段,蜜獾的位置更新范围类似于图4所示的心形:
图4 蓝色轮廓表示气味强度,黑色圆线表示猎物位置
这个图是不是很眼熟?没错,学过高等数学的同学一定不陌生:
图5 高等数学教材附录
在算法中此心形位置更新可表示为:
不得不说,这个核心公式有点复杂!式中β=6表示指蜜獾获取食物的能力,di 在式(2)中已有介绍,r3、r4、r5、r6均为[0,1]内的随机数。F 为控制方向的参数:
这种参数在很多算法中均有它的身影,欲深入了解可通过我的毒爆虫优化算法进行学习:
蜂蜜阶段
此时蜜獾跟随向导鸟,直捣黄龙:
编辑
式中各参数前往前文均有介绍。至此,算法迭代伪代码为:
⛄ 部分代码
% This function initialize the first population of search agentsfunction Positions=initialization(SearchAgents_no,dim,ub,lb)Boundary_no= size(ub,2); % numnber of boundaries% If the boundaries of all variables are equal and user enter a signle% number for both ub and lbif Boundary_no==1 Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb;end% If each variable has a different lb and ubif Boundary_no>1 for i=1:dim ub_i=ub(i); lb_i=lb(i); Positions(:,i)=rand(SearchAgents_no,1).*(ub_i-lb_i)+lb_i; endend
⛄ 运行结果
⛄ 参考文献
[1] 陈欣胡涛蒋全.基于改进蜜獾算法的永磁同步电机PI控制参数优化仿真[J].电机与控制应用, 2022, 49(8):28-33.
[2] 牛天利,于丽霞,刘吉,等.基于蜜獾算法的破片序列图像多阈值分割[J].测控技术, 2023, 42(1):7.
[3] 聂晓华,占美娟,朱宇涛,等.一种改进蜜獾算法优化SAPF电流跟踪控制方法.CN202211134395.5[2023-07-10].
“Hashim F A, Houssein E H, Hussain K, et al. Honey Badger Algorithm: New metaheuristic algorithm for solving optimization problems [J]. Mathematics and Computers in Simulation, 2022, 192: 84-110.”