【智能算法】火鹰优化算法(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.

相关推荐
夜雨翦春韭4 分钟前
【代码随想录Day30】贪心算法Part04
java·数据结构·算法·leetcode·贪心算法
Kent_J_Truman15 分钟前
【平方差 / C】
算法
一直学习永不止步16 分钟前
LeetCode题练习与总结:H 指数--274
java·数据结构·算法·leetcode·数组·排序·计数排序
Amor风信子42 分钟前
华为OD机试真题---跳房子II
java·数据结构·算法
戊子仲秋1 小时前
【LeetCode】每日一题 2024_10_2 准时到达的列车最小时速(二分答案)
算法·leetcode·职场和发展
邓校长的编程课堂1 小时前
助力信息学奥赛-VisuAlgo:提升编程与算法学习的可视化工具
学习·算法
sp_fyf_20241 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-03
人工智能·算法·机器学习·计算机视觉·语言模型·自然语言处理
Eric.Lee20212 小时前
数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall
python·深度学习·算法·目标检测·计算机视觉·数据集·螃蟹检测
林辞忧2 小时前
算法修炼之路之滑动窗口
算法
￴ㅤ￴￴ㅤ9527超级帅2 小时前
LeetCode hot100---二叉树专题(C++语言)
c++·算法·leetcode