【智能算法】火鹰优化算法(FHO)原理及实现

目录


1.背景

2023年,M Azizi等人受到自然界火鹰狩猎行为启发,提出了火鹰优化算法(Fire Hawk Optimizer, FHO)。

2.算法原理

2.1算法思想

FHO使用特殊的控制和捕获猎物机制 ,它们会捡起燃烧的树枝,将其投掷到其他未燃烧的区域,以点燃小火。这些小火会吓跑猎物,迫使它们匆忙逃离,从而让火鹰更容易捕捉到它们。

2.2算法过程

计算火鹰和猎物之间距离

确定了每只火鹰最近的猎物,从而区分了这些火鹰的有效领土:
D k 1 = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 , { l = 1 , 2 , ... , n . k = 1 , 2 , ... , m . (1) \mathrm D_{\mathrm k}^1=\sqrt{\left(\mathrm x_2-\mathrm x_1\right)^2+\left(\mathrm y_2-\mathrm y_1\right)^2},\left\{\begin{array}{l}l=1,2,\dots,n.\\k=1,2,\dots,m.\end{array}\right.\tag{1} Dk1=(x2−x1)2+(y2−y1)2 ,{l=1,2,...,n.k=1,2,...,m.(1)

适应度较好的火鹰在其特定领地的搜索空间中选择离其最近的最佳猎物,其他火鹰在搜索空间中完成最近的猎物,这说明适应度较好火鹰能完成比较适应度差火鹰更成功的狩猎。

收集燃烧的树枝

火鹰从火场收集燃烧的树枝,以便在选定的区域放火迫使猎物匆忙逃跑。同时,一些火鹰渴望使用其他火鹰领地的燃烧树枝:
F H 1 n e w = F H 1 + ( r 1 × G B − r 2 × F H N e a r ) , l = 1 , 2 , ... , n (2) \mathrm{FH}_1^{\mathrm{new}}=\mathrm{FH}_1+\begin{pmatrix}\mathrm{r}_1\times\mathrm{GB}-\mathrm{r}2\times\mathrm{FH}{\mathrm{Near}}\end{pmatrix}, l=1,2,\ldots,n\tag{2} FH1new=FH1+(r1×GB−r2×FHNear),l=1,2,...,n(2)

其中,GB是最优火鹰位置,FHNear是搜索空间中其他火鹰位置。

位置更新

当火鹰扔下一根燃烧的树枝时,猎物会采取策略(躲避,逃跑或者错误地向火鹰跑去),此时火鹰位置更新为:
P R q n e w = P R q + ( r 3 × F H l − r 4 × S P l ) , { l = 1 , 2 , ... , n . q = 1 , 2 , ... , r . (3) \mathrm P\mathrm R_\mathrm q^{\mathrm new}=\mathrm P\mathrm R_\mathrm q+\bigl(\mathrm r_3\times\mathrm F\mathrm H_\mathrm l-\mathrm r_4\times\mathrm S\mathrm P_\mathrm l\bigr),\left\{\begin{array}{c}l=1,2,\dots,n.\\q=1,2,\dots,r.\end{array}\right.\tag{3} PRqnew=PRq+(r3×FHl−r4×SPl),{l=1,2,...,n.q=1,2,...,r.(3)

猎物可能会向其他火鹰的领地移动,而猎物可能会在附近的伏击中靠近火鹰:
P R q n e w = P R q + ( r 5 × F H A l t e r − r 6 × S P ) , { l = 1 , 2 , ... , n . q = 1 , 2 , ... , r . (4) \mathrm P\mathrm R_\mathrm q^{\mathrm new}=\mathrm P\mathrm R_\mathrm q+\bigl(\mathrm r_5\times\mathrm F\mathrm H_{\mathrm Alter}-\mathrm r_6\times\mathrm S\mathrm P\bigr),\left\{\begin{array}{c}l=1,2,\dots,n.\\q=1,2,\dots,r.\end{array}\right.\tag{4} PRqnew=PRq+(r5×FHAlter−r6×SP),{l=1,2,...,n.q=1,2,...,r.(4)

基于自然界中的安全场所是大多数动物为了在灾害发生时保持安全而聚集的地方,参数SP,SP1表述为:
S P 1 = ∑ q = 1 r P R q r , { q = 1 , 2 , ... , r . l = 1 , 2 , ... , n . (5) \mathrm{SP}{1}=\frac{\sum{\mathrm{q=1}}^{\mathrm{r}}\mathrm{PR}{\mathrm{q}}}{\mathrm{r}},\left\{\begin{array}{l}q=1,2,\dots,r.\\l=1,2,\dots,n.\end{array}\right.\tag{5} SP1=r∑q=1rPRq,{q=1,2,...,r.l=1,2,...,n.(5)
S P = ∑ k = 1 m P R k m , k = 1 , 2 , ... , m . (6) \mathrm{SP=\frac{\sum
{k=1}^mPR_k}{m},k=1,2,\ldots,m.}\tag{6} SP=m∑k=1mPRk,k=1,2,...,m.(6)

伪代码

流程图

3.结果展示

4.参考文献

[1] Azizi M, Talatahari S, Gandomi A H. Fire Hawk Optimizer: A novel metaheuristic algorithm[J]. Artificial Intelligence Review, 2023, 56(1): 287-363.

相关推荐
A懿轩A38 分钟前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
古希腊掌管学习的神38 分钟前
[搜广推]王树森推荐系统——矩阵补充&最近邻查找
python·算法·机器学习·矩阵
云边有个稻草人42 分钟前
【优选算法】—复写零(双指针算法)
笔记·算法·双指针算法
半盏茶香43 分钟前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
忘梓.2 小时前
解锁动态规划的奥秘:从零到精通的创新思维解析(3)
算法·动态规划
tinker在coding4 小时前
Coding Caprice - Linked-List 1
算法·leetcode
XH华8 小时前
初识C语言之二维数组(下)
c语言·算法
南宫生8 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
不想当程序猿_9 小时前
【蓝桥杯每日一题】求和——前缀和
算法·前缀和·蓝桥杯
落魄君子9 小时前
GA-BP分类-遗传算法(Genetic Algorithm)和反向传播算法(Backpropagation)
算法·分类·数据挖掘