智能优化算法:金鹰优化算法-附代码

金鹰优化算法(GEO)是2020年提出的一种高效智能优化算法,模仿金鹰狩猎策略。算法包括猎物选择、攻击行为、巡航行为和位置更新四个阶段。金鹰通过调整攻击和巡航行为,在搜索空间中寻找最优解。攻击向量表示金鹰对猎物的直接接近,巡航向量则代表金鹰的螺旋运动。在每次迭代中,金鹰更新其位置,如果新位置更优则更新记忆。算法以快速收敛和全局寻优能力为特点。
摘要由CSDN通过智能技术生成

智能优化算法:金鹰优化算法


摘要:金鹰优化算法(Golden Eagle Optimizer,GEO)是于2020年提出的新型智能优化算法,具有收敛速度快,寻优能力强的特点。

1.算法原理

GEO灵感来自于金鹰的智慧,它们在螺旋轨迹的不同阶段调整速度,进行狩猎。在狩猎的初期,它们表现出更多的巡游和寻找猎物的倾向,在最后阶段,它们表现出更多的攻击倾向。金鹰调整这两个部分,以便在最短的时间内,在可行的区域内捕捉到最佳的猎物。这种行为是数学模型,以突出探索和全局优化方法的开发。GEO是基于金鹰的螺旋运动。正如前面提到的,每只金鹰都记住了它到目前为止所到过的最佳位置。鹰同时具有攻击猎物和巡航寻找更好食物的吸引力。

1.1 猎物选择

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

1.2 攻击行为

攻击行为可以通过一个矢量来模拟,从金鹰当前的位置开始,到金鹰记忆中猎物的位置结束。通过式(1)可以计算出金鹰的攻击矢量:
A i ⃗ = X f ∗ ⃗ − X i ⃗ (1) \vec{A_i}=\vec{X^*_f}-\vec{X_i}\tag{1} Ai =Xf Xi (1)
A i ⃗ \vec{A_i} Ai 为第 i i i只金鹰的攻击矢量, X f ∗ ⃗ \vec{X^*_f} Xf 为当前金鹰所到达的最佳地点(猎物), X i ⃗ \vec{X_i} Xi ​第i只老鹰目前的位置。

1.3 巡航行为

巡航向量是根据攻击向量计算的。巡航向量是圆的切向量,垂直于攻击向量。巡航也可以被认为是金鹰相对于猎物的线性速度。三维巡航矢量位于与圆相切的超平面内,因此,为了计算巡航矢量,我们必须首先计算切超平面的方程。超平面的维数方程可以由超平面的任意点和与超平面垂直的向量确定,这个向量称为超平面的法向量。方程(2)表示了超平面方程在三维空间中的标量形式。
h 1 x 1 + h 2 x 2 + . . . + h n x n = d ⟹ ∑ j = 1 n h j x j = d (2) h_1x_1+h_2x_2+...+h_nx_n=d\Longrightarrow \sum_{j=1}^nh_jx_j=d\tag{2} h1x1+h2x2+...+hnxn=dj=1nhjxj=d(2)
此处, H = [ h 1 , h 2 , . . . , h n ] H=[h_1,h_2,...,h_n] H=[h1,h2,...,hn]为法向量, X = [ x 1 , x 2 , . . . , x n ] X=[x_1,x_2,...,x_n] X=[x1,x2,...,xn]为变量向量,设 P ⃗ = [ p 1 , p 2 , . . . , p n ] \vec{P}=[p_1,p_2,...,p_n] P =[p1,p2,...,pn]为超平面上的任意点, d = H ⃗ P ⃗ = ∑ i = 1 n h j p j d=\vec{H}\vec{P}=\sum_{i=1}^nh_jp_j d=H P =i=1nhjpj

A i ⃗ \vec{A_i} Ai (攻击向量)看作超平面的法线,那么 C i t ⃗ \vec{C_i^t} Cit (在迭代中的金鹰巡航向量)就可以根据方程(3)表示出它所属的超平面。
∑ j = 1 n a j x j = ∑ j = 1 n a j t x j ∗ (3) \sum_{j=1}^na_jx_j=\sum_{j=1}^na_j^tx_j^*\tag{3} j=1najxj=j=1najtxj(3)
此处, A = [ a 1 , a 2 , . . . , a n ] A=[a_1,a_2,...,a_n] A=[a1,a2,...,an]为攻击向量, X = [ x 1 , x 2 , . . . , x n ] X=[x_1,x_2,...,x_n] X=[x1,x2,...,xn]为决策/设计变量向量, X ∗ = [ x 1 ∗ , x 2 ∗ , . . . , x n ∗ ] X^*=[x_1^*,x_2^*,...,x_n^*] X=[x1,x2,...,xn]​为被选中的猎物的位置。

为了在巡航超平面上找到一个随机矢量,我们必须首先在这个超平面上找到一个随机目的点,而不是我们已经有的那个(金鹰的当前位置)。注意到巡航矢量的起点是金鹰的当前位置。由于超平面比它们的环境空间小一维,我们不能简单地生成一个随机的 1 × n 1×n 1×n点。三维空间中的简单随机点不能保证位于巡航超平面上。位于三维巡航超平面上的一个新点具有自由度,意味着维度可以自由选择,但超平面方程决定了最后的1维度,如方程式(2)所示。必须选择最后一个维数使其满足超平面方程,因此,我们有自由变量和一个固定变量。我们使用下面的程序来找到一个随机维度的目的地点,位于金鹰的巡航超平面上。具体步骤如下:

第一步:从变量中随机选择一个变量作为固定变量。

第二步:将随机值赋给除第k个变量以外的所有变量,因为第k个变量是固定的。

第二步:用方程(4)求出固定变量的值。
c k = d − ∑ j , j ≠ k a j a k (4) c_k=\frac{d-\sum_{j,j\neq k}a_j}{a_k}\tag{4} ck=akdj,j=kaj(4)
此处 c k c_k ck为目标点 C C C的第 k k k个元素, a j a_j aj攻击向量的 A i ⃗ \vec{A_i} Ai j j j个元素, k k k为固定变量的编号。找到了巡航的随机目的地。方程(5)显示了巡航超平面上目的点的一般表示。
C i ⃗ = { c 1 = r a n d o m , c 2 = r a n d o m , . . . , c k = d − ∑ j , j ≠ k a j a k , . . . , c n = r a n d o m } (5) \vec{C_i}=\{c_1=random,c_2=random,...,c_k=\frac{d-\sum_{j,j\neq k}a_j}{a_k},...,c_n=random\}\tag{5} Ci ={c1=random,c2=random,...,ck=akdj,j=kaj,...,cn=random}(5)

1.4 移动到新的位置

金鹰的位移由攻击和向量组成。我们将金鹰迭代的步长向量定义为方程(6)和(7)。
Δ x i = r 1 ⃗ p a A i ⃗ ∣ ∣ A i ⃗ ∣ ∣ + r 2 ⃗ p c C i ⃗ ∣ ∣ C i ⃗ ∣ ∣ (6) \Delta x_i = \vec{r_1}p_a\frac{\vec{A_i}}{||\vec{A_i}||}+\vec{r_2}p_c\frac{\vec{C_i}}{||\vec{C_i}||}\tag{6} Δxi=r1 paAi Ai +r2 pcCi Ci (6)

∣ ∣ A i ⃗ ∣ ∣ = ∑ j n a j 2 , ∣ ∣ C i ⃗ ∣ ∣ = ∑ j n c j 2 (7) ||\vec{A_i}||=\sqrt{\sum_j^na_j^2},||\vec{C_i}||=\sqrt{\sum_j^nc_j^2}\tag{7} Ai =jnaj2 ,Ci =jncj2 (7)

此处, p a p_a pa为攻击系数, p c p_c pc为巡航系数。 r 1 ⃗ \vec{r_1} r1 r 2 ⃗ \vec{r_2} r2 为[0,1]内的随机向量。因此,通过将迭代中的步向量加到迭代中的位置,可以简单地计算出金鹰在迭代中的位置:
x t + 1 = x t + Δ x i t (8) x^{t+1}=x^t+\Delta x_i^t \tag{8} xt+1=xt+Δxit(8)
此处, x t + 1 x^{t+1} xt+1为金鹰的第 t + 1 t+1 t+1次的位置, x t x^t xt为金鹰的第 t t t次的位置, Δ x i t \Delta x_i^t Δxit​为金鹰的移动的步长大小。

如果金鹰新位置的适应性比它记忆中的位置更好,这只鹰的记忆会随着新位置而更新。否则,记忆仍然完好无损,但是鹰会在新的位置上。在新的迭代中,每只金鹰从种群中随机选择一只金鹰,围绕其最佳访问位置旋转,计算攻击矢量,计算巡航矢量,最后计算下一次迭代的步长矢量和新位置。这个循环将一直执行,直到满足任何终止条件。我们提到方程(6)中有两个系数,即攻击系数和巡航系数见式(9),用来控制攻击和巡航向量对步长矢量的影响。
{ p a = p a 0 + t T ∣ p a T − p a 0 ∣ p c = p c 0 + t T ∣ p c T − p c 0 ∣ (9) \begin{cases} p_a=p_a^0+\frac{t}{T}|p_a^T-p_a^0|\\ p_c=p_c^0+\frac{t}{T}|p_c^T-p_c^0| \end{cases}\tag{9} {pa=pa0+TtpaTpa0pc=pc0+TtpcTpc0(9)
此处, p a 0 p_a^0 pa0 p a T p_a^T paT p a p_a pa的初始和最终的值, p c 0 p_c^0 pc0 p c T p_c^T pcT p c p_c pc的初始和最终的值。

算法流程:

步骤1:初始化金鹰的数量。

步骤2:计算适应度函数初始化群体记忆。

步骤3:初始化 p a p_a pa p c p_c pc

步骤4:根据式(9)更新 p a p_a pa p c p_c pc.

步骤5:从种群的记忆计算攻击向量中随机选择猎物见式(1)。

步骤6:计算巡航向量(方程式(2)-(5))计算步长向量(方程式(6)-(8))更新位置(方程式(8))评估新位置的适应度函数。

步骤7:更新最优解及最优位置。

步骤7:判断是否满足最大迭代次数,若满足,则输出最优金鹰位置和全局最优解,否则,返回步骤4重新迭代计算。

2.算法结果

请添加图片描述

3.参考文献

[1] Mohammadi-Balani, A., Dehghan Nayeri, M., Azar, A., Taghizadeh-Yazdi, M., Golden Eagle Optimizer: A nature-inspired metaheuristic algorithm, Computers & Industrial Engineering (2020).

4.Matlab代码

多目标金鹰优化算法(MOGEO)是一种基于金鹰优化算法(GEO)的多目标优化求解方法。金鹰优化算法是由Abdolkarim等人于2020年提出的,它模拟了金鹰狩猎行为,具有收敛速度快、寻优能力强的特点。MOGEO则是在金鹰优化算法的基础上进行了改进,用于解决多目标优化问题。 MOGEO的原理可以参考Mohammadi-Balani等人的论文《Golden Eagle Optimizer: A nature-inspired metaheuristic algorithm》。该算法结合了金鹰的搜索策略和多目标优化技术,通过模拟金鹰的狩猎行为来进行优化。它通过调整种群的位置和速度来搜索最优解的近似集合,以找到多个同时优化的目标的最佳解。 MOGEO的matlab源码可以在【多目标优化求解】基于金鹰算法(MOGEO)的多目标优化求解matlab源码.md中找到。这个源码提供了使用MOGEO算法解决多目标优化问题的实现示例,可以作为研究和实践的参考。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【多目标优化求解】基于金鹰算法(MOGEO)的多目标优化求解matlab源码.md](https://download.csdn.net/download/m0_60703264/21458356)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [多目标优化算法:多目标金鹰优化算法MOGEO(提供MATLAB代码)](https://blog.csdn.net/weixin_46204734/article/details/124462102)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值