基于金鹰优化算法的函数优化算法

一、理论基础

1、金鹰优化算法

本文提出了一种基于自然启发的元启发式算法来解决全局优化问题,称为金鹰优化算法(Golden eagle optimizer, GEO)。GEO的核心灵感是金鹰在其螺旋轨迹的不同阶段调整速度以进行狩猎的智能。在狩猎的最初阶段,它们更倾向于游弋和寻找猎物,在最后阶段,它们更倾向于攻击。金鹰通过调整这两个分量,在尽可能短的时间内捕获可行区域内最好的猎物。这种行为通过数学建模来强调对全局优化方法的探索和开发。

(1)螺旋运动

GEO基于金鹰的螺旋运动。如前所述,每只金鹰都会记住它迄今为止去过的最佳地点。鹰同时具有攻击猎物和寻找更好食物的吸引力。
在每次迭代中,每只金鹰i随机选择另一只金鹰f的猎物,并围绕金鹰f迄今为止访问过的最佳位置旋转。金鹰i也可以选择存储自己的记忆,其中,f%5Cin%5C%7B1%2C%202%2C%5Ccdots%2C%20PopSize%5C%7D

(2)猎物选择

在每次迭代中,每只金鹰都必须选择一只猎物来执行巡航和攻击操作。在GEO中,猎物被建模为金鹰群迄今为止找到的最佳解决方案。每只金鹰都能记住迄今为止找到的最佳解决方案。在每次迭代中,每个搜索代理从整个群体的记忆中选择一个目标猎物,然后计算每个金鹰相对于选定猎物的攻击和巡航向量。如果新位置(通过攻击和巡航矢量计算)优于内存中的前一个位置,则内存会更新。猎物选择策略在GEO中起着重要作用。选择可以以一种基本的方式进行,每只金鹰只在自己的记忆中选择猎物。为了让金鹰更好地探索空间,提出了一个随机一对一的映射方案,每个金鹰在当前迭代中从其他群体成员的记忆中随机选择其猎物。值得注意的是,选定的猎物不一定是最近或最远的猎物。在这个方案中,记忆中的每一个猎物都被分配或映射到一只金鹰。然后,每只金鹰对选定的猎物执行攻击和巡航操作。

(3)攻击(开发)

攻击行为可以通过一个向量来建模,该向量从金鹰的当前位置开始,以金鹰记忆中猎物的位置结束。金鹰i的攻击向量可以通过式(1)计算:%5Coverrightarrow%20A_i%3D%5Coverrightarrow%20X_f%5E%2A-%5Coverrightarrow%20X_i%5Ctag%7B1%7D其中,%5Coverrightarrow%20A_i表示金鹰i的攻击向量,%5Coverrightarrow%20X_f%5E%2A表示当前种群的最佳位置(猎物),%5Coverrightarrow%20X_i表示金鹰i的当前位置。由于攻击向量引导金鹰群朝向最佳访问的位置移动,因此它强调了GEO的开发阶段。

(4)巡航(探索)

基于攻击向量计算巡航向量。巡航向量是圆的切线向量,垂直于攻击向量。巡航也可以被认为是金鹰相对于猎物的线性速度。n维巡航向量位于圆的切线超平面内,因此,为了计算巡航向量,我们必须首先计算切线超平面的方程。n维超平面的方程可以由该超平面上的任意点和与该超平面垂直的向量确定,该向量称为该超平面的法向量。式(2)显示了n维空间中超平面方程的标量形式:h_1x_1%2Bh_2x_2%2B%5Ccdots%2Bh_nx_n%5CRightarrow%5Csum_%7Bj%3D1%7D%5Enh_jx_j%3Dd%5Ctag%7B2%7D其中,%5Coverrightarrow%20H%3D%5Bh_1%2Ch_2%2C%5Ccdots%2Ch_n%5D为法向量,%5Coverrightarrow%20X%3D%5Bx_1%2Cx_2%2C%5Ccdots%2Cx_n%5D为平面内某一向量,%5Coverrightarrow%20P%3D%5Bp_1%2Cp_2%2C%5Ccdots%2Cp_n%5D为超平面上的任一向量,d%3D%5Coverrightarrow%20H%5Ccdot%5Coverrightarrow%20P%3D%5Csum_%7Bj%3D1%7D%5Enh_jp_j。如果把%5Coverrightarrow%20X_i(金鹰i的位置)看作超平面上的任一点,%5Coverrightarrow%20A_i(攻击向量)看作超平面的法线,那么%5Coverrightarrow%20C_i%5Et(第t次迭代中金鹰i的巡航向量)可根据式(3)计算出其所属的超平面。%5Csum_%7Bj%3D1%7D%5Ena_jx_j%3D%5Csum_%7Bj%3D1%7D%5Ena_j%5Etx_j%5E%2A%5Ctag%7B3%7D其中,%5Coverrightarrow%20A_i%3D%5Ba_1%2Ca_2%2C%5Ccdots%2Ca_n%5D为攻击向量,%5Coverrightarrow%20X%3D%5Bx_1%2Cx_2%2C%5Ccdots%2Cx_n%5D为决策向量,%5Coverrightarrow%20X%5E%2A%3D%5Bx_1%5E%2A%2Cx_2%5E%2A%2C%5Ccdots%2Cx_n%5E%2A%5D为选择的猎物的位置。
为了在巡航超平面上找到一个随机向量,首先必须在这个超平面上找到一个随机的目的地点C,而不是金鹰的当前位置i。使用以下三个步骤在金鹰i巡航超平面上找到一个随机的n维度目的地C
Step 1. 从n个变量中随机选择一个变量作为固定变量。用k表示选择变量的索引,注意,不能从攻击向量%5Coverrightarrow%20A_i中对应元素为零的变量中选择固定变量。原因是,当式(2)中某个变量的系数等于零时,超平面平行于该变量的轴,该变量可以取其他n-1个变量的随机组合的任何值。例如,在三维平面3x_1%2B2x_2%3D10,如果选择k%3D3%2C%5C%7Bx_1%3D2%2Cx_2%3D5%5C%7D,就找不到唯一的点;相反,在这个平面上得到了无穷多个点,它们都满足平面方程%5C%7B%5B2%2C5%2C1%5D%2C%5B2%2C5%2C2%5D%2C%5B2%2C5%2C3%5D%2C%5Ccdots%5C%7D
Step 2. 将随机值分配给除第k个变量之外的所有变量,因为第k个变量是固定的。
Step 3. 使用式(4)找到固定变量的值:c_k%3D%5Cfrac%7Bd-%5Csum_%7Bj%2Cj%5Cneq%20k%7Da_j%7D%7Ba_k%7D%5Ctag%7B4%7D其中,c_k是目标点C的第k个元素,a_j是攻击向量%5Coverrightarrow%20A_i的第j个元素,d由式(2)计算所得,a_k是攻击向量%5Coverrightarrow%20A_i的第k个元素,k是固定变量的索引。式(5)给出了巡航超平面上目的地的一般表示:%5Coverrightarrow%20C_i%3D%5Cleft%28c_1%3D%5Ctext%7Brandom%7D%2Cc_2%3D%5Ctext%7Brandom%7D%2C%5Ccdots%2Cc_k%3D%5Cfrac%7Bd-%5Csum_%7Bj%2Cj%5Cneq%20k%7Da_j%7D%7Ba_k%7D%2C%5Ccdots%2Cc_n%3D%5Ctext%7Brandom%7D%5Cright%29%5Ctag%7B5%7D现在确定了目标点,可以在第t次迭代中计算金鹰i的巡航向量。获得的目标点的元素是0探索阶段。

(5)移动到新位置

金雕的位置更新包括攻击和向量。将迭代t中金鹰i的步长向量定义为式(6):%5CDelta%20x_i%3D%5Coverrightarrow%20r_1p_a%5Et%5Cfrac%7B%5Coverrightarrow%20A_i%7D%7B%7C%7C%5Coverrightarrow%20A_i%7C%7C%7D%2B%5Coverrightarrow%20r_2p_c%5Et%5Cfrac%7B%5Coverrightarrow%20C_i%7D%7B%7C%7C%5Coverrightarrow%20C_i%7C%7C%7D%5Ctag%7B6%7D其中,p_a%5Et是迭代t中的攻击系数,p_c%5Et是迭代t中的巡航系数,并调整金鹰受到攻击和巡航的影响;%5Coverrightarrow%20r_1%5Coverrightarrow%20r_2是元素位于区间%5B0%2C1%5D内的随机向量;%7C%7C%5Coverrightarrow%20A_i%7C%7C%7C%7C%5Coverrightarrow%20C_i%7C%7C是攻击和巡航向量的欧几里德范数,使用式(7)计算:%7C%7C%5Coverrightarrow%20A_i%7C%7C%3D%5Csqrt%7B%5Csum_%7Bj%3D1%7D%5Ena_j%5E2%7D%2C%5C%2C%5C%2C%7C%7C%5Coverrightarrow%20C_i%7C%7C%3D%5Csqrt%7B%5Csum_%7Bj%3D1%7D%5Enc_j%5E2%7D%5Ctag%7B7%7D迭代t%2B1中金鹰的位置只需将迭代t中的步长向量与迭代t中的位置相加即可计算出来。x%5E%7Bt%2B1%7D%3Dx%5Et%2B%5CDelta%20x_i%5Et%5Ctag%7B8%7D如果金鹰i的新位置的适应度比其记忆中的位置更好,则该鹰的记忆将用新位置更新。否则,记忆将保持,但鹰将驻留在新位置。在新的迭代中,每个金鹰随机地从种群中选择一只金鹰绕它的最佳访问位置旋转,计算攻击向量和巡航向量,最后,更新下一次迭代的步长向量和新位置。执行此循环,直到满足终止条件。

(6)从探索到开发的过渡

如前所述,金鹰在狩猎飞行的初始阶段表现出较高的巡航倾向,在最后阶段表现出较高的攻击倾向,这对应于算法在早期迭代中的更多探索和后期迭代中的更多倾向.更多的发展。
GEO使用p_ap_c从探索转向开发。该算法从低p_a和高p_c开始。随着迭代的进行,p_a逐渐增加,而p_c逐渐减少。这两个参数的初始值和最终值由用户定义。中间值可以使用式(9)中的线性转换进行计算。%5Cbegin%7Bdcases%7Dp_a%3Dp_a%5E0%2B%5Cfrac%20tT%5Cleft%7Cp_a%5ET-p_a%5E0%5Cright%7C%5C%5C%5B2ex%5Dp_c%3Dp_c%5E0-%5Cfrac%20tT%5Cleft%7Cp_c%5ET-p_c%5E0%5Cright%7C%5Cend%7Bdcases%7D%5Ctag%7B9%7D其中,t表示当前迭代次数,T表示最大迭代次数,p_a%5E0p_a%5ET分别是攻击倾向(p_a)的初始值和最终值,p_c%5E0p_c%5ET分别是巡航倾向(p_c)的初始值和最终值。 本文攻击倾向和巡航倾向的初始值和最终值的取值分别为%5Bp_a%5E0%2Cp_a%5ET%5D%3D%5B0.5%2C2%5D%2C%5Bp_c%5E0%2Cp_c%5ET%5D%3D%5B1%2C0.5%5D

2、GEO算法伪代码

根据前面给出的基本概念及其相应的数学模型,下图给出了GEO单目标实现的伪代码。
基于金鹰优化算法的函数优化算法

图1 GEO算法伪代码

2. 仿真实验与分析

将GEO与GWO和CSA进行对比,以文献[1]中表2和表2的F1、F9、F10为例,实验设置种群规模为50,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
基于金鹰优化算法的函数优化算法基于金鹰优化算法的函数优化算法基于金鹰优化算法的函数优化算法

函数:F1
GEO:最差值: 3.5745e-31, 最优值: 0, 平均值: 1.1915e-32, 标准差: 6.5262e-32, 秩和检验: 1
GWO:最差值: 0.76207, 最优值: 1.5964e-09, 平均值: 0.050805, 标准差: 0.19334, 秩和检验: 1.7203e-12
CSA:最差值: 1.7079e-23, 最优值: 7.3018e-27, 平均值: 2.5369e-24, 标准差: 4.0567e-24, 秩和检验: 1.7203e-12
函数:F9
GEO:最差值: -959.6407, 最优值: -959.6407, 平均值: -959.6407, 标准差: 5.7815e-13, 秩和检验: NaN
GWO:最差值: -718.167, 最优值: -959.6407, 平均值: -920.422, 标准差: 68.0541, 秩和检验: 1.2118e-12
CSA:最差值: -894.5789, 最优值: -959.6407, 平均值: -951.6125, 标准差: 13.7516, 秩和检验: 1.1547e-12
函数:F10
GEO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
GWO:最差值: 3.3547e-06, 最优值: 6.9144e-08, 平均值: 1.3357e-06, 标准差: 1.0689e-06, 秩和检验: 1.2118e-12
CSA:最差值: 4.6537e-22, 最优值: 4.8687e-25, 平均值: 4.1093e-23, 标准差: 9.5057e-23, 秩和检验: 1.2118e-12

实验结果验证了GEO算法的优越性,表明GEO算法能够有效地找到全局最优解,避免局部最优解。

3. 参考文献

[1] Abdolkarim Mohammadi-Balani, Mahmoud Dehghan Nayeri, Adel Azar, et al.Golden eagle optimizer: A nature-inspired metaheuristic algorithm[J]。Computers & Industrial Engineering, 2021,152: 107050.

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年3月27日 下午3:31
下一篇 2022年3月28日 上午10:46

相关推荐