• 基于北方苍鹰优化算法的函数寻优算法


    一、理论基础

    1、北方苍鹰优化算法

    受北方苍鹰捕食行为的启发,文献[1]提出了一种新的基于种群的优化算法——北方苍鹰优化(Northern goshawk optimization, NGO)算法。

    (1)初始化阶段

    在算法开始时,种群成员在搜索空间中随机初始化,如式(1)所示: X = [ X 1 ⋮ X i ⋮ X N ] N × m = [ x 1 , 1 ⋯ x 1 , j ⋯ x 1 , m ⋮ ⋱ ⋮ ⋱ ⋮ x i , 1 ⋯ x i , j ⋯ x i , m ⋮ ⋱ ⋮ ⋱ ⋮ x N , 1 ⋯ x N , j ⋯ x N , m ] N × m (1) X=

    [X1XiXN]" role="presentation" style="position: relative;">[X1XiXN]
    _{N\times m}=
    [x1,1x1,jx1,mxi,1xi,jxi,mxN,1xN,jxN,m]" role="presentation" style="position: relative;">[x1,1x1,jx1,mxi,1xi,jxi,mxN,1xN,jxN,m]
    _{N\times m}\tag{1} X= X1XiXN N×m= x1,1xi,1xN,1x1,jxi,jxN,jx1,mxi,mxN,m N×m(1)其中, X X X表示北方苍鹰种群的矩阵, X i X_i Xi是第 i i i个个体的初始解, x i , j x_{i,j} xi,j是第 i i i个个体第 j j j维的值, N N N是种群成员的数量, m m m是问题空间的维度。
    北方苍鹰种群的目标函数值可以用目标函数值向量表示,如式(2)所示: F ( X ) = [ F 1 = F ( X 1 ) ⋮ F i = F ( X i ) ⋮ F N = F ( X N ) ] N × 1 (2) F(X)=
    [F1=F(X1)Fi=F(Xi)FN=F(XN)]" role="presentation" style="position: relative;">[F1=F(X1)Fi=F(Xi)FN=F(XN)]
    _{N\times 1}\tag{2}
    F(X)= F1=F(X1)Fi=F(Xi)FN=F(XN) N×1(2)
    其中, F F F是获得的目标函数值的向量, F i F_i Fi是第 i i i个解获得的目标函数值。

    (2)第一阶段:猎物识别(探索)

    苍鹰在狩猎的第一阶段,随机选择一个猎物,然后迅速攻击它。由于搜索空间中猎物的随机选择,该阶段增加了NGO的探索能力。该阶段导致搜索空间的全局搜索,目的是识别最优区域。建模如式(3)~(5): P i = X k , i = 1 , 2 , ⋯   , N , k = 1 , 2 , ⋯   , i − 1 , i + 1 , ⋯   , N (3) P_i=X_k,i=1,2,\cdots,N,k=1,2,\cdots,i-1,i+1,\cdots,N\tag{3} Pi=Xk,i=1,2,,N,k=1,2,,i1,i+1,,N(3) X i , j n e w , P 1 = { x i , j + r ( p i , j − I x i , j ) , F P i < F i x i , j + r ( x i , j − p i , j ) ,     F P i ≥ F i (4) X_{i,j}^{new,P1}=

    \begin{dcases}x_{i,j}+r(p_{i,j}-Ix_{i,j}),\quad F_{P_i}<F_i\\[2ex]x_{i,j}+r(x_{i,j}-p_{i,j}),\quad\,\,\, F_{P_i}\geq F_i\end{dcases}" role="presentation" style="position: relative;">