智能优化算法:蜜獾算法


文章目录

  • 智能优化算法:蜜獾算法
  • 1.算法原理
  • 1.1 种群初始化
  • 1.2 强度(I)的定义
  • 1.3 密度因子更新
  • 1.4 跳出局部最优
  • 1.5更新个体位置
  • 1.5.1 挖掘阶段
  • 1.5.2 采蜜阶段
  • 2.实验结果
  • 3.参考文献
  • 4.Matlab代码



摘要:蜜獾算法(Honey Badger Algorithm,HBA)是于2021年提出的一种新型智能优化算法,该算法主要通过模拟蜜獾智能觅食行为来进行寻优,具有寻优能力强,收敛速度快等特点。

1.算法原理

1.1 种群初始化

与其他优化算法一样,种群初始化在设定的边界范围内随机初始化,具体如表达式(1)所示:
智能优化算法:蜜獾算法-附代码_算法
其中,智能优化算法:蜜獾算法-附代码_初始化_02智能优化算法:蜜獾算法-附代码_优化算法_03为搜索的下边界和上边界。智能优化算法:蜜獾算法-附代码_初始化_04为[0,1]之间的随机数。智能优化算法:蜜獾算法-附代码_机器学习_05为种群里面的第智能优化算法:蜜獾算法-附代码_算法_06个个体。

1.2 强度(I)的定义

强度的定义如式(2)所示。强度和猎物的集中力以及和蜜獾之间的距离有关。智能优化算法:蜜獾算法-附代码_优化算法_07是猎物的气味强度;如果气味高,则运动速度快,反之亦然。
智能优化算法:蜜獾算法-附代码_机器学习_08
其中,智能优化算法:蜜獾算法-附代码_算法_09是源强度或集中强度;智能优化算法:蜜獾算法-附代码_算法_10表示猎物与当前蜜獾个体的距离。

1.3 密度因子更新

密度因子智能优化算法:蜜獾算法-附代码_初始化_11控制时变随机化,以确保从勘探到开采的平稳过渡。如式(3)所示:
智能优化算法:蜜獾算法-附代码_优化算法_12
其中,智能优化算法:蜜獾算法-附代码_算法_13为最大迭代次数;智能优化算法:蜜獾算法-附代码_优化算法_14(默认为2)。

1.4 跳出局部最优

这一步和接下来的两步用于跳出局部最优区域。在这种情况下,所提出的算法使用了一个改变搜索方向的标志F FF,以利用大量机会让搜索个体严格扫描搜索空间。

1.5更新个体位置

如前所述,HBA位置更新过程(智能优化算法:蜜獾算法-附代码_搜索_15)分为两个部分,即“挖掘阶段”和“采蜜阶段”。

1.5.1 挖掘阶段

在挖掘阶段,蜜獾执行类似于心脏线形状的动作。心形运动可通过式(4)进行模拟:
智能优化算法:蜜獾算法-附代码_算法_16
其中,智能优化算法:蜜獾算法-附代码_算法_17为全局最优位置;智能优化算法:蜜獾算法-附代码_机器学习_18代表蜜獾获取食物的能力;智能优化算法:蜜獾算法-附代码_算法_10为猎物与当前蜜獾个体的距离见式(2);智能优化算法:蜜獾算法-附代码_优化算法_20是[0,1]之间的三个不同的随机数;F为改变搜索方向的标志,具体见表达式(5)
智能优化算法:蜜獾算法-附代码_算法_21

1.5.2 采蜜阶段

蜂蜜獾跟随蜂蜜向导獾到达蜂巢的情况可模拟为式(6):
智能优化算法:蜜獾算法-附代码_优化算法_22
其中,智能优化算法:蜜獾算法-附代码_搜索_15为更新后的蜜獾个体位置;智能优化算法:蜜獾算法-附代码_算法_17为猎物位置;智能优化算法:蜜獾算法-附代码_算法_25智能优化算法:蜜獾算法-附代码_初始化_11分别由式(5)和式(3)确定;智能优化算法:蜜獾算法-附代码_优化算法_27为(0,1)之间的随机数。从式(6)可以观察到,根据距离信息智能优化算法:蜜獾算法-附代码_算法_10,蜜獾在猎物位置智能优化算法:蜜獾算法-附代码_算法_17附近进行搜索。在这一阶段,搜索受到随迭代变化的搜索行为智能优化算法:蜜獾算法-附代码_初始化_11的影响。此外,一只蜜獾可能会受到智能优化算法:蜜獾算法-附代码_算法_25干扰。
算法伪代码如下:

Algorithm 1 Pseudo code of HBA.
Set parameters t max , N,β,C.
Initialize population with random positions.
Evaluate the fitness of each honey badger position x i using objective function and assign to f i , i ∈ [1,2,..., N].
Save best position x prey and assign fitness to f prey .
while t ≤ t max do
Update the decreasing factor α using (3).
for i = 1 to N do
Calculate the intensity I i using Eq. (2).
if r < 0.5 then ▷ r is random number between 0 and 1
Update the position x new using Eq. (4).
else
Update the position x new using Eq. (6).
end if
Evaluate new position and assign to f new .
if f new ≤ f i then
Set x i = x new and f i = f new .
end if
if f new ≤ f prey then
Set x prey = x new and f prey = f new .
end if
end for
end while Stop criteria satisfied.
Return x prey

2.实验结果

智能优化算法:蜜獾算法-附代码_初始化_32

3.参考文献

[1] Fatma A. Hashim, Essam H. Houssein, Kashif Hussain, Mai S. Mabrouk, Walid Al-Atabany. Honey Badger Algorithm: New metaheuristic algorithm for solving optimization problems[J]. Mathematics and Computers in Simulation, 2021: 84-110.

4.Matlab代码