【智能算法】火鹰优化算法(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=(x2x1)2+(y2y1)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×GBr2×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×FHlr4×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×FHAlterr6×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=rq=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=mk=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.

最近更新

  1. TCP协议是安全的吗?

    2024-04-10 19:48:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-10 19:48:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-10 19:48:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-10 19:48:05       20 阅读

热门阅读

  1. 数据持久化 1 - PlayerPrefs

    2024-04-10 19:48:05       14 阅读
  2. 递推算法4(c++)

    2024-04-10 19:48:05       10 阅读
  3. [HDCTF 2023]Normal_Rsa(revenge)(素数分解)

    2024-04-10 19:48:05       13 阅读
  4. 详解Vue3中如何使用动态组件

    2024-04-10 19:48:05       10 阅读
  5. vue中this.$nextTick的作用

    2024-04-10 19:48:05       12 阅读
  6. QT4和QT5区别

    2024-04-10 19:48:05       10 阅读
  7. 第十一章-Broker-消息存储(二)

    2024-04-10 19:48:05       13 阅读
  8. nginx基础知识

    2024-04-10 19:48:05       11 阅读
  9. 取消请求实战

    2024-04-10 19:48:05       17 阅读
  10. golang主要优缺点

    2024-04-10 19:48:05       18 阅读