文章目录
- 一、理论基础
- 1、火鹰优化算法
- 2、FHO算法伪代码
 
- 二、仿真实验与结果分析
- 三、参考文献
一、理论基础
1、火鹰优化算法
文献[1]提出了火鹰优化算法(Fire Hawk Optimizer, FHO)作为一种新的元启发式算法,该算法基于啸鸢、麻鹰和褐隼的觅食行为,这些鸟类被称为火鹰,因为它们在自然界中捕捉猎物的具体行动,特别是通过“放火”的方式。
 FHO元启发式算法模拟了火鹰的觅食行为,考虑了生火和传火以及捕获猎物的过程。首先,确定若干候选解(
    
     
      
       
        X
       
      
      
       X
      
     
    X)作为火鹰和猎物的位置向量,利用一个随机初始化过程来确定这些向量在搜索空间中的初始位置。
     
      
       
        
         
         
          
           
            X
           
           
            =
           
           
            
             [
            
            
             
              
               
                
                 
                  X
                 
                 
                  1
                 
                
               
              
             
             
              
               
                
                 
                  X
                 
                 
                  2
                 
                
               
              
             
             
              
               
                
                 ⋮
                
                
                 
                
               
              
             
             
              
               
                
                 
                  X
                 
                 
                  i
                 
                
               
              
             
             
              
               
                
                 ⋮
                
                
                 
                
               
              
             
             
              
               
                
                 
                  X
                 
                 
                  N
                 
                
               
              
             
            
            
             ]
            
           
           
            =
           
           
            
             [
            
            
             
              
               
                
                 
                  
                   x
                  
                  
                   1
                  
                  
                   1
                  
                 
                 
                  
                   x
                  
                  
                   1
                  
                  
                   2
                  
                 
                 
                  ⋯
                 
                 
                  
                   x
                  
                  
                   1
                  
                  
                   j
                  
                 
                 
                  ⋯
                 
                 
                  
                   x
                  
                  
                   1
                  
                  
                   d
                  
                 
                
               
              
             
             
              
               
                
                 
                  
                   x
                  
                  
                   2
                  
                  
                   1
                  
                 
                 
                  
                   x
                  
                  
                   2
                  
                  
                   2
                  
                 
                 
                  ⋯
                 
                 
                  
                   x
                  
                  
                   2
                  
                  
                   j
                  
                 
                 
                  ⋯
                 
                 
                  
                   x
                  
                  
                   2
                  
                  
                   d
                  
                 
                
               
              
             
             
              
               
                
                 
                  ⋮
                 
                 
                  
                 
                 
                  ⋮
                 
                 
                  
                 
                 
                  ⋮
                 
                 
                  
                 
                 
                  ⋱
                 
                 
                  ⋮
                 
                 
                  
                 
                
               
              
             
             
              
               
                
                 
                  
                   x
                  
                  
                   i
                  
                  
                   1
                  
                 
                 
                  
                   x
                  
                  
                   i
                  
                  
                   2
                  
                 
                 
                  ⋯
                 
                 
                  
                   x
                  
                  
                   i
                  
                  
                   j
                  
                 
                 
                  ⋯
                 
                 
                  
                   x
                  
                  
                   i
                  
                  
                   d
                  
                 
                
               
              
             
             
              
               
                
                 
                  ⋮
                 
                 
                  
                 
                 
                  ⋮
                 
                 
                  
                 
                 
                  ⋮
                 
                 
                  
                 
                 
                  ⋱
                 
                 
                  ⋮
                 
                 
                  
                 
                
               
              
             
             
              
               
                
                 
                  
                   x
                  
                  
                   N
                  
                  
                   1
                  
                 
                 
                  
                   x
                  
                  
                   N
                  
                  
                   2
                  
                 
                 
                  ⋯
                 
                 
                  
                   x
                  
                  
                   N
                  
                  
                   j
                  
                 
                 
                  ⋯
                 
                 
                  
                   x
                  
                  
                   N
                  
                  
                   d
                  
                 
                
               
              
             
            
            
             ]
            
           
           
            ,
           
           
           
            
             {
            
            
             
              
               
                
                 
                  i
                 
                 
                  =
                 
                 
                  1
                 
                 
                  ,
                 
                 
                  2
                 
                 
                  ,
                 
                 
                  …
                 
                 
                  ,
                 
                 
                  N
                 
                
               
              
             
             
              
               
                
                 
                  j
                 
                 
                  =
                 
                 
                  1
                 
                 
                  ,
                 
                 
                  2
                 
                 
                  ,
                 
                 
                  …
                 
                 
                  ,
                 
                 
                  d
                 
                
               
              
             
            
           
          
         
         
         
          
           (1)
          
         
        
       
       
        X=\begin{bmatrix}X_1\\X_2\\\vdots\\X_i\\\vdots\\X_N\end{bmatrix}=\begin{bmatrix}x_1^1x_1^2\cdots x_1^j\cdots x_1^d\\x_2^1x_2^2\cdots x_2^j\cdots x_2^d\\\vdots\vdots\vdots\ddots\vdots\\x_i^1x_i^2\cdots x_i^j\cdots x_i^d\\\vdots\vdots\vdots\ddots\vdots\\x_N^1x_N^2\cdots x_N^j\cdots x_N^d\end{bmatrix},\quad\begin{dcases}i=1,2,\ldots,N\\j=1,2,\ldots,d\end{dcases}\tag{1}
       
      
     X=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡X1X2⋮Xi⋮XN⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x11x12⋯x1j⋯x1dx21x22⋯x2j⋯x2d⋮⋮⋮⋱⋮xi1xi2⋯xij⋯xid⋮⋮⋮⋱⋮xN1xN2⋯xNj⋯xNd⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤,{i=1,2,…,Nj=1,2,…,d(1)
     
      
       
        
         
         
          
           
            
             x
            
            
             i
            
            
             j
            
           
           
            (
           
           
            0
           
           
            )
           
           
            =
           
           
            
             x
            
            
             
              i
             
             
              ,
             
             
              min
             
             
              
             
            
            
             j
            
           
           
            +
           
           
            rand
           
           
            ⋅
           
           
            
             (
            
            
             
              x
             
             
              
               i
              
              
               ,
              
              
               max
              
              
               
              
             
             
              j
             
            
            
             −
            
            
             
              x
             
             
              
               i
              
              
               ,
              
              
               min
              
              
               
              
             
             
              j
             
            
            
             )
            
           
           
            ,
           
           
           
            
             {
            
            
             
              
               
                
                 
                  i
                 
                 
                  =
                 
                 
                  1
                 
                 
                  ,
                 
                 
                  2
                 
                 
                  ,
                 
                 
                  …
                 
                 
                  ,
                 
                 
                  N
                 
                
               
              
             
             
              
               
                
                 
                  j
                 
                 
                  =
                 
                 
                  1
                 
                 
                  ,
                 
                 
                  2
                 
                 
                  ,
                 
                 
                  …
                 
                 
                  ,
                 
                 
                  d
                 
                
               
              
             
            
           
          
         
         
         
          
           (2)
          
         
        
       
       
        x_i^j(0)=x_{i,\min}^j+\text{rand}\cdot\left(x_{i,\max}^j-x_{i,\min}^j\right),\quad\begin{dcases}i=1,2,\ldots,N\\j=1,2,\ldots,d\end{dcases}\tag{2}
       
      
     xij(0)=xi,minj+rand⋅(xi,maxj−xi,minj),{i=1,2,…,Nj=1,2,…,d(2)其中,
    
     
      
       
        N
       
      
      
       N
      
     
    N为搜索空间中候选解的总数;
    
     
      
       
        
         x
        
        
         i
        
        
         j
        
       
      
      
       x_i^j
      
     
    xij为第
    
     
      
       
        i
       
      
      
       i
      
     
    i个候选解的第
    
     
      
       
        j
       
      
      
       j
      
     
    j个决策变量;
    
     
      
       
        
         x
        
        
         i
        
        
         j
        
       
       
        (
       
       
        0
       
       
        )
       
      
      
       x_i^j(0)
      
     
    xij(0)表示候选解的初始位置;
    
     
      
       
        
         X
        
        
         
          i
         
         
          ,
         
         
          min
         
         
          
         
        
        
         j
        
       
      
      
       X_{i,\min}^j
      
     
    Xi,minj和
    
     
      
       
        
         x
        
        
         
          i
         
         
          ,
         
         
          max
         
         
          
         
        
        
         j
        
       
      
      
       x_{i,\max}^j
      
     
    xi,maxj是第
    
     
      
       
        i
       
      
      
       i
      
     
    i个候选解的第
    
     
      
       
        j
       
      
      
       j
      
     
    j个决策变量的最小和最大边界;
    
     
      
       
        rand
       
      
      
       \text{rand}
      
     
    rand是一个
    
     
      
       
        [
       
       
        0
       
       
        ,
       
       
        1
       
       
        ]
       
      
      
       [0,1]
      
     
    [0,1]均匀分布的随机数。
 为了确定火鹰在搜索空间中的位置,候选解的目标函数评价考虑了所选优化问题。一些具有较好目标函数值的候选解表示为火鹰,而其余的候选解则是猎物。选定的火鹰用于在搜索空间内的猎物周围散布火焰,以使狩猎更容易。此外,假设全局最佳解决方案是火鹰在搜索空间(自然)中首先使用的主火。数学表达式如下:
     
      
       
        
         
         
          
           
            P
           
           
            R
           
           
            =
           
           
            
             [
            
            
             
              
               
                
                 
                  P
                 
                 
                  
                   R
                  
                  
                   1
                  
                 
                
               
              
             
             
              
               
                
                 
                  P
                 
                 
                  
                   R
                  
                  
                   2
                  
                 
                
               
              
             
             
              
               
                
                 ⋮
                
                
                 
                
               
              
             
             
              
               
                
                 
                  P
                 
                 
                  
                   R
                  
                  
                   k
                  
                 
                
               
              
             
             
              
               
                
                 ⋮
                
                
                 
                
               
              
             
             
              
               
                
                 
                  P
                 
                 
                  
                   R
                  
                  
                   m
                  
                 
                
               
              
             
            
            
             ]
            
           
           
            ,
             
           
            k
           
           
            =
           
           
            1
           
           
            ,
           
           
            2
           
           
            ,
           
           
            …
           
           
            ,
           
           
            m
           
          
         
         
         
          
           (3)
          
         
        
       
       
        PR=\begin{bmatrix}PR_1\\PR_2\\\vdots\\PR_k\\\vdots\\PR_m\end{bmatrix},\,\,k=1,2,\ldots,m\tag{3}
       
      
     PR=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡PR1PR2⋮PRk⋮PRm⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤,k=1,2,…,m(3)
     
      
       
        
         
         
          
           
            F
           
           
            H
           
           
            =
           
           
            
             [
            
            
             
              
               
                
                 
                  F
                 
                 
                  
                   H
                  
                  
                   1
                  
                 
                
               
              
             
             
              
               
                
                 
                  F
                 
                 
                  
                   H
                  
                  
                   2
                  
                 
                
               
              
             
             
              
               
                
                 ⋮
                
                
                 
                
               
              
             
             
              
               
                
                 
                  F
                 
                 
                  
                   H
                  
                  
                   l
                  
                 
                
               
              
             
             
              
               
                
                 ⋮
                
                
                 
                
               
              
             
             
              
               
                
                 
                  F
                 
                 
                  
                   H
                  
                  
                   n
                  
                 
                
               
              
             
            
            
             ]
            
           
           
            ,
             
           
            l
           
           
            =
           
           
            1
           
           
            ,
           
           
            2
           
           
            ,
           
           
            …
           
           
            ,
           
           
            n
           
          
         
         
         
          
           (4)
          
         
        
       
       
        FH=\begin{bmatrix}FH_1\\FH_2\\\vdots\\FH_l\\\vdots\\FH_n\end{bmatrix},\,\,l=1,2,\ldots,n\tag{4}
       
      
     FH=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡FH1FH2⋮FHl⋮FHn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤,l=1,2,…,n(4)其中,
    
     
      
       
        P
       
       
        
         R
        
        
         k
        
       
      
      
       PR_k
      
     
    PRk是搜索空间中关于
    
     
      
       
        m
       
      
      
       m
      
     
    m个猎物总数的第
    
     
      
       
        k
       
      
      
       k
      
     
    k个猎物;
    
     
      
       
        F
       
       
        
         H
        
        
         l
        
       
      
      
       FH_l
      
     
    FHl是搜索空间中
    
     
      
       
        n
       
      
      
       n
      
     
    n个火鹰的总数中的第
    
     
      
       
        l
       
      
      
       l
      
     
    l个火鹰。
 在算法的下一个阶段,计算火鹰和猎物之间的总距离。结果导致每只鸟最近的猎物被确定,从而区分这些鸟的有效领地。需要注意的是,确定距离第一火鹰最近且目标函数值最好的猎物,而通过剩余的猎物来考虑其他鸟类的领地。
    
     
      
       
        
         D
        
        
         k
        
        
         l
        
       
      
      
       D_k^l
      
     
    Dkl由下式确定:
     
      
       
        
         
         
          
           
            
             D
            
            
             k
            
            
             l
            
           
           
            =
           
           
            
             
              (
             
             
              
               x
              
              
               2
              
             
             
              −
             
             
              
               x
              
              
               1
              
             
             
              
               )
              
              
               2
              
             
             
              +
             
             
              (
             
             
              
               y
              
              
               2
              
             
             
              −
             
             
              
               y
              
              
               1
              
             
             
              
               )
              
              
               2
              
             
            
           
           
            ,
             
           
            
             {
            
            
             
              
               
                
                 
                  l
                 
                 
                  =
                 
                 
                  1
                 
                 
                  ,
                 
                 
                  2
                 
                 
                  ,
                 
                 
                  …
                 
                 
                  ,
                 
                 
                  n
                 
                
               
              
             
             
              
               
                
                 
                  k
                 
                 
                  =
                 
                 
                  1
                 
                 
                  ,
                 
                 
                  2
                 
                 
                  ,
                 
                 
                  …
                 
                 
                  ,
                 
                 
                  m
                 
                
               
              
             
            
           
          
         
         
         
          
           (5)
          
         
        
       
       
        D_k^l=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2},\,\,\begin{dcases}l=1,2,\ldots,n\\k=1,2,\ldots,m\end{dcases}\tag{5}
       
      
     Dkl=(x2−x1)2+(y2−y1)2,{l=1,2,…,nk=1,2,…,m(5)其中,
    
     
      
       
        
         D
        
        
         k
        
        
         l
        
       
      
      
       D_k^l
      
     
    Dkl为第
    
     
      
       
        l
       
      
      
       l
      
     
    l只火鹰与第
    
     
      
       
        k
       
      
      
       k
      
     
    k只猎物之间的总距离;
    
     
      
       
        m
       
      
      
       m
      
     
    m为搜索空间中的猎物总数;
    
     
      
       
        n
       
      
      
       n
      
     
    n为搜索空间中火鹰的总数;
    
     
      
       
        (
       
       
        
         x
        
        
         1
        
       
       
        ,
       
       
        
         y
        
        
         1
        
       
       
        )
       
      
      
       (x_1, y_1)
      
     
    (x1,y1)和
    
     
      
       
        (
       
       
        
         x
        
        
         2
        
       
       
        ,
       
       
        
         y
        
        
         2
        
       
       
        )
       
      
      
       (x_2, y_2)
      
     
    (x2,y2)表示火鹰和猎物在搜索空间中的坐标。
 在进行了上述测量火鹰和猎物之间总距离的程序后,通过它们周围最近的猎物来区分这些鸟的领土。通过对火鹰和猎物的分类,配置了算法的搜索过程。需要注意的是,目标函数值较好的火鹰在其特定领土的搜索空间中选择最接近的最佳猎物。然后,其他的火鹰在搜索空间中完成了下一个最近的猎物,这证明了最强的火鹰比较弱的鸟完成了更成功的狩猎。
 在算法的下一个阶段,火鹰从主火收集燃烧的木棍,以便在选定的区域点火。在这一阶段,每只鸟都会捡起一根燃烧的棍子,然后把它扔到自己的特定领地,迫使猎物匆忙逃离。与此同时,一些鸟渴望使用来自火鹰其他领地的燃烧棒。因此,这两种行为可作为FHO主搜索循环中的位置更新过程,如下式所示:
     
      
       
        
         
         
          
           
            F
           
           
            
             H
            
            
             l
            
            
             
              n
             
             
              e
             
             
              w
             
            
           
           
            =
           
           
            F
           
           
            
             H
            
            
             l
            
           
           
            +
           
           
            (
           
           
            
             r
            
            
             1
            
           
           
            ×
           
           
            G
           
           
            B
           
           
            −
           
           
            
             r
            
            
             2
            
           
           
            ×
           
           
            F
           
           
            
             H
            
            
             
              N
             
             
              e
             
             
              a
             
             
              r
             
            
           
           
            )
           
           
            ,
             
           
            l
           
           
            =
           
           
            1
           
           
            ,
           
           
            2
           
           
            ,
           
           
            …
           
           
            ,
           
           
            n
           
          
         
         
         
          
           (6)
          
         
        
       
       
        FH_l^{new}=FH_l+(r_1\times GB-r_2\times FH_{Near}),\,\,l=1,2,\ldots,n\tag{6}
       
      
     FHlnew=FHl+(r1×GB−r2×FHNear),l=1,2,…,n(6)其中,
    
     
      
       
        F
       
       
        
         H
        
        
         l
        
        
         
          n
         
         
          e
         
         
          w
         
        
       
      
      
       FH_l^{new}
      
     
    FHlnew为第
    
     
      
       
        l
       
      
      
       l
      
     
    l只火鹰(
    
     
      
       
        F
       
       
        
         H
        
        
         l
        
       
      
      
       FH_l
      
     
    FHl)的新位置向量;
    
     
      
       
        G
       
       
        B
       
      
      
       GB
      
     
    GB是搜索空间中的全局最优解,被认为是主火;
    
     
      
       
        F
       
       
        
         H
        
        
         
          N
         
         
          e
         
         
          a
         
         
          r
         
        
       
      
      
       FH_{Near}
      
     
    FHNear是搜索空间中的另一只火鹰;
    
     
      
       
        
         r
        
        
         1
        
       
      
      
       r_1
      
     
    r1和
    
     
      
       
        
         r
        
        
         2
        
       
      
      
       r_2
      
     
    r2是在
    
     
      
       
        (
       
       
        0
       
       
        ,
       
       
        1
       
       
        )
       
      
      
       (0,1)
      
     
    (0,1)范围内均匀分布的随机数,用于确定火鹰向主火和其他火鹰领地的移动。
 在算法的下一个阶段,猎物在每只火鹰的领地内的移动被认为是动物行为的一个关键方面,用于位置更新过程。当火鹰扔下一根燃烧的棍子时,猎物决定躲藏,逃跑,或者会误朝火鹰跑去。在位置更新过程中可以考虑这些动作,使用以下式子更新:
     
      
       
        
         
         
          
           
            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
                 
                
               
              
             
            
           
          
         
         
         
          
           (7)
          
         
        
       
       
        PR_q^{new}=PR_q+(r_3\times FH_l-r_4\times SP_l),\,\,\begin{dcases}l=1,2,\ldots,n\\q=1,2,\ldots,r\end{dcases}\tag{7}
       
      
     PRqnew=PRq+(r3×FHl−r4×SPl),{l=1,2,…,nq=1,2,…,r(7)其中,
    
     
      
       
        P
       
       
        
         R
        
        
         q
        
        
         
          n
         
         
          e
         
         
          w
         
        
       
      
      
       PR_q^{new}
      
     
    PRqnew为被第
    
     
      
       
        l
       
      
      
       l
      
     
    l只火鹰(
    
     
      
       
        F
       
       
        
         H
        
        
         l
        
       
      
      
       FH_l
      
     
    FHl)包围的第
    
     
      
       
        q
       
      
      
       q
      
     
    q个猎物(
    
     
      
       
        P
       
       
        
         R
        
        
         q
        
       
      
      
       PR_q
      
     
    PRq)的新位置向量;
    
     
      
       
        G
       
       
        B
       
      
      
       GB
      
     
    GB是搜索空间中的全局最优解,被认为是主火;
    
     
      
       
        S
       
       
        
         P
        
        
         l
        
       
      
      
       SP_l
      
     
    SPl是第
    
     
      
       
        l
       
      
      
       l
      
     
    l只火鹰属下的一个安全地点;
    
     
      
       
        
         r
        
        
         3
        
       
      
      
       r_3
      
     
    r3和
    
     
      
       
        
         r
        
        
         4
        
       
      
      
       r_4
      
     
    r4是在
    
     
      
       
        (
       
       
        0
       
       
        ,
       
       
        1
       
       
        )
       
      
      
       (0,1)
      
     
    (0,1)范围内均匀分布的随机数,用于确定猎物向火鹰和安全地点的移动。
 此外,猎物可能会向其他火鹰的领地移动,而猎物也有可能在附近的伏击中更接近火鹰,甚至试图躲到火鹰领地之外更安全的地方。在位置更新过程中可以考虑这些动作,使用以下公式:
     
      
       
        
         
         
          
           
            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
                 
                
               
              
             
            
           
          
         
         
         
          
           (8)
          
         
        
       
       
        PR_q^{new}=PR_q+(r_5\times FH_{Alter}-r_6\times SP),\,\,\begin{dcases}l=1,2,\ldots,n\\q=1,2,\ldots,r\end{dcases}\tag{8}
       
      
     PRqnew=PRq+(r5×FHAlter−r6×SP),{l=1,2,…,nq=1,2,…,r(8)其中,
    
     
      
       
        P
       
       
        
         R
        
        
         q
        
        
         
          n
         
         
          e
         
         
          w
         
        
       
      
      
       PR_q^{new}
      
     
    PRqnew为第
    
     
      
       
        q
       
      
      
       q
      
     
    q个猎物被第
    
     
      
       
        l
       
      
      
       l
      
     
    l个火鹰包围的新位置向量(
    
     
      
       
        P
       
       
        
         R
        
        
         q
        
       
      
      
       PR_q
      
     
    PRq);
    
     
      
       
        F
       
       
        
         H
        
        
         
          A
         
         
          l
         
         
          t
         
         
          e
         
         
          r
         
        
       
      
      
       FH_{Alter}
      
     
    FHAlter是搜索空间中的另一个火鹰;
    
     
      
       
        S
       
       
        P
       
      
      
       SP
      
     
    SP是火鹰第
    
     
      
       
        l
       
      
      
       l
      
     
    l团领地之外的安全地带;
    
     
      
       
        
         r
        
        
         5
        
       
      
      
       r_5
      
     
    r5和
    
     
      
       
        
         r
        
        
         6
        
       
      
      
       r_6
      
     
    r6是在
    
     
      
       
        (
       
       
        0
       
       
        ,
       
       
        1
       
       
        )
       
      
      
       (0,1)
      
     
    (0,1)范围内均匀分布的随机数,用于确定猎物向其他火鹰和领土外的安全地点移动。
 基于自然界中的安全场所是大多数动物聚集在一起的场所,以便在危险期间保持安全和健康的事实,
    
     
      
       
        S
       
       
        
         P
        
        
         l
        
       
      
      
       SP_l
      
     
    SPl和
    
     
      
       
        S
       
       
        P
       
      
      
       SP
      
     
    SP的数学表达式如下:
     
      
       
        
         
         
          
           
            S
           
           
            
             P
            
            
             l
            
           
           
            =
           
           
            
             
              
               ∑
              
              
               
                q
               
               
                =
               
               
                1
               
              
              
               r
              
             
             
              P
             
             
              
               R
              
              
               q
              
             
            
            
             r
            
           
           
            ,
             
           
            
             {
            
            
             
              
               
                
                 
                  l
                 
                 
                  =
                 
                 
                  1
                 
                 
                  ,
                 
                 
                  2
                 
                 
                  ,
                 
                 
                  …
                 
                 
                  ,
                 
                 
                  n
                 
                
               
              
             
             
              
               
                
                 
                  q
                 
                 
                  =
                 
                 
                  1
                 
                 
                  ,
                 
                 
                  2
                 
                 
                  ,
                 
                 
                  …
                 
                 
                  ,
                 
                 
                  r
                 
                
               
              
             
            
           
          
         
         
         
          
           (9)
          
         
        
       
       
        SP_l=\frac{\sum_{q=1}^rPR_q}{r},\,\,\begin{dcases}l=1,2,\ldots,n\\q=1,2,\ldots,r\end{dcases}\tag{9}
       
      
     SPl=r∑q=1rPRq,{l=1,2,…,nq=1,2,…,r(9)
     
      
       
        
         
         
          
           
            S
           
           
            P
           
           
            =
           
           
            
             
              
               ∑
              
              
               
                k
               
               
                =
               
               
                1
               
              
              
               m
              
             
             
              P
             
             
              
               R
              
              
               k
              
             
            
            
             m
            
           
           
            ,
             
           
            k
           
           
            =
           
           
            1
           
           
            ,
           
           
            2
           
           
            ,
           
           
            …
           
           
            ,
           
           
            m
           
          
         
         
         
          
           (10)
          
         
        
       
       
        SP=\frac{\sum_{k=1}^mPR_k}{m},\,\,k=1,2,\ldots,m\tag{10}
       
      
     SP=m∑k=1mPRk,k=1,2,…,m(10)其中,
    
     
      
       
        P
       
       
        
         R
        
        
         q
        
       
      
      
       PR_q
      
     
    PRq是被第
    
     
      
       
        l
       
      
      
       l
      
     
    l只火鹰(
    
     
      
       
        F
       
       
        
         H
        
        
         l
        
       
      
      
       FH_l
      
     
    FHl)包围的第
    
     
      
       
        q
       
      
      
       q
      
     
    q个猎物;
    
     
      
       
        P
       
       
        
         R
        
        
         k
        
       
      
      
       PR_k
      
     
    PRk是搜索空间中的第
    
     
      
       
        k
       
      
      
       k
      
     
    k个猎物。
2、FHO算法伪代码
图1给出了FHO算法的伪代码。
 
二、仿真实验与结果分析
将FHO与CS、MVO、SCA和ASO进行对比,实验设置种群规模为30,最大迭代次数为500,每个算法独立运行30次,以文献[2]表1中的F2、F5、F9、F12、F19、F20为例,结果显示如下:
 
 
 
 
 
 
函数:F2
CS:最差值: -24.1568,最优值:-24.1568,平均值:-24.1568,标准差:1.859e-14,秩和检验:2.8991e-11
MVO:最差值: -24.1568,最优值:-24.1568,平均值:-24.1568,标准差:9.844e-06,秩和检验:0.016955
SCA:最差值: -23.7608,最优值:-24.1523,平均值:-24.0896,标准差:0.082235,秩和检验:3.0199e-11
ASO:最差值: -24.1568,最优值:-24.1568,平均值:-24.1568,标准差:1.086e-14,秩和检验:2.0668e-11
FHO:最差值: -24.1568,最优值:-24.1568,平均值:-24.1568,标准差:8.2549e-06,秩和检验:1
函数:F5
CS:最差值: -176.1376,最优值:-176.1376,平均值:-176.1376,标准差:2.2545e-09,秩和检验:3.018e-11
MVO:最差值: -90.8845,最优值:-176.1375,平均值:-145.9469,标准差:27.745,秩和检验:0.077272
SCA:最差值: -174.9205,最优值:-176.072,平均值:-175.7971,标准差:0.2496,秩和检验:0.051877
ASO:最差值: -174.4688,最优值:-176.1376,平均值:-176.056,标准差:0.31906,秩和检验:1.1652e-09
FHO:最差值: -174.6498,最优值:-176.1358,平均值:-175.5762,标准差:0.42623,秩和检验:1
函数:F9
CS:最差值: 28.3278,最优值:22.4495,平均值:25.5358,标准差:1.587,秩和检验:3.0199e-11
MVO:最差值: 28.944,最优值:12.5698,平均值:18.4464,标准差:4.0713,秩和检验:3.0199e-11
SCA:最差值: 17.9536,最优值:0.1324,平均值:6.4182,标准差:4.8785,秩和检验:3.0199e-11
ASO:最差值: 2.8213,最优值:0.012917,平均值:0.60252,标准差:0.76176,秩和检验:3.0199e-11
FHO:最差值: 6.7388e-22,最优值:4.8612e-25,平均值:1.0095e-22,标准差:1.8365e-22,秩和检验:1
函数:F12
CS:最差值: -8.3158,最优值:-11.4563,平均值:-9.6363,标准差:0.93867,秩和检验:3.0199e-11
MVO:最差值: -5.6063,最优值:-12.0308,平均值:-8.3491,标准差:1.5287,秩和检验:3.0199e-11
SCA:最差值: -11.096,最优值:-19.4145,平均值:-14.1445,标准差:2.035,秩和检验:1.0937e-10
ASO:最差值: -12.7339,最优值:-21.8777,平均值:-16.4089,标准差:2.3121,秩和检验:7.1186e-09
FHO:最差值: -16.2835,最优值:-45.1872,平均值:-28.7838,标准差:8.8617,秩和检验:1
函数:F19
CS:最差值: 31.6907,最优值:22.6836,平均值:26.437,标准差:2.1178,秩和检验:3.0199e-11
MVO:最差值: 69.9174,最优值:45.083,平均值:58.079,标准差:6.1903,秩和检验:3.0199e-11
SCA:最差值: 94.7724,最优值:80.3177,平均值:90.0727,标准差:3.2913,秩和检验:3.0199e-11
ASO:最差值: 35.6872,最优值:17.571,平均值:28.0979,标准差:4.0029,秩和检验:3.0199e-11
FHO:最差值: 5.6983e-28,最优值:3.5571e-33,平均值:2.799e-29,标准差:1.0564e-28,秩和检验:1
函数:F20
CS:最差值: -366,最优值:-426,平均值:-386.6333,标准差:13.0608,秩和检验:1.1931e-12
MVO:最差值: -383,最优值:-467,平均值:-432.2333,标准差:19.493,秩和检验:1.2068e-12
SCA:最差值: -211,最优值:-253,平均值:-230.6667,标准差:10.9461,秩和检验:1.1892e-12
ASO:最差值: -250,最优值:-309,平均值:-280.4667,标准差:13.8159,秩和检验:1.2068e-12
FHO:最差值: -575,最优值:-575,平均值:-575,标准差:0,秩和检验:NaN
实验结果表明:FHO算法比文献中比较的算法具有更好的性能。
三、参考文献
[1] Mahdi Azizi, Siamak Talatahari, Amir H. Gandomi. Fire Hawk Optimizer: a novel metaheuristic algorithm[J]. Artificial Intelligence Review, 2022.
 [2] Mahdi Azizi. Atomic orbital search: A novel metaheuristic algorithm[J]. Applied Mathematical Modelling, 2021, 93: 657-683.



















