IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 智能优化算法:天鹰优化算法-附代码 -> 正文阅读

[数据结构与算法]智能优化算法:天鹰优化算法-附代码

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


摘要:天鹰优化算法(Aquila Optimizer,AO)是于2021年提出的一种新型智能优化算法,该算法主要模拟天鹰在捕捉猎物过程中的自然行为,来达到寻优的目的,具有寻优能力强,收敛速度快等特点。

1.算法原理

1.1 初始化

与其他优化算法一样,种群在搜索范围内随机初始化位置。
X i j = rand ? × ( U B j ? L B j ) + L B j , i = 1 , 2 , ? ? , N j = 1 , 2 , ? ? , ?Dim? (1) X_{i j}=\operatorname{rand} \times\left(U B_{j}-L B_{j}\right)+L B_{j}, i=1,2, \cdots, N j=1,2, \cdots, \text { Dim } \tag{1} Xij?=rand×(UBj??LBj?)+LBj?,i=1,2,?,Nj=1,2,?,?Dim?(1)
其中, r a n d rand rand是一个随机向量, L B j LB_j LBj?表示给定问题的第 j j j个下界, U B j UB_j UBj?表示给定问题的第 j j j个上界。

AO算法的优化过程用四种方法表示:通过垂直俯冲的高空飞行选择搜索空间、通过短滑翔攻击的等高线飞行在发散搜索空间内探索、通过慢速下降攻击的低空飞行在收敛搜索空间内开发、通过徒步猛扑并抓住猎物。如果 t ≤ 2 3 T t\leq\frac{2}{3}T t32?T,则AO算法可使用不同的行为从探索步骤转移到开发步骤;否则,将很好地执行开发步骤。

1.2 扩大搜索( X 1 X_1 X1?

在第一种方法 ( X 1 ) (X_1) (X1?)中,天鹰识别猎物区域,并通过垂直弯腰的高飞选择最佳狩猎区域。此时,AO让来自高空的探险者四处飞翔,以确定猎物所在的搜索空间区域。该行为的数学模型如式(2)所示:
X 1 ( t + 1 ) = X b e s t ( t ) × ( 1 ? t T ) + ( X M ( t ) ? X b e s t ( t ) ? r a n d ) (2) X_{1}(t+1)=X_{b e s t}(t) \times\left(1-\frac{t}{T}\right)+\left(X_{M}(t)-X_{b e s t}(t) * r a n d\right)\tag{2} X1?(t+1)=Xbest?(t)×(1?Tt?)+(XM?(t)?Xbest?(t)?rand)(2)

X M ( t ) = 1 N ∑ i = 1 N X i ( t ) , ? j = 1 , 2 , ? ? , ?Dim? (3) X_{M}(t)=\frac{1}{N} \sum_{i=1}^{N} X_{i}(t), \forall j=1,2, \cdots, \text { Dim } \tag{3} XM?(t)=N1?i=1N?Xi?(t),?j=1,2,?,?Dim?(3)

其中, X 1 ( t + 1 ) X_1(t+1) X1?(t+1)是由第一种搜索方法 ( X 1 ) (X_1) (X1?)生成的第 t + 1 t+1 t+1次迭代的解; X b e s t ( t ) X_{best}(t) Xbest?(t)是在第 t t t次迭代之前获得的最佳解,这反映了猎物的近似位置; ( 1 ? t T ) (1-\frac{t}{T}) (1?Tt?)用于通过迭代次数控制扩展搜索(探索); X M ( t ) X_M(t) XM?(t)表示在第 t t t次迭代时当前解的平均值,该平均值使用式(3)计算; r a n d rand rand是介于0和1之间的随机值; r r r T T T分别表示当前迭代和最大迭代次数。 D i m Dim Dim是问题的维度大小, N N N是候选解的数量(种群规模)。

1.3 缩小搜索( X 2 X_2 X2?

在第二种方法( X 2 X_2 X2?)中,当从高空发现猎物区域时,天鹰在目标猎物上方盘旋,准备着陆陆地,然后攻击,这种方法称为短滑翔攻击的等高线飞行。在这里,AO狭窄地探索目标猎物的选定区域,为攻击做准备。该行为的数学模式如式(4)所示:
X 2 ( t + 1 ) = X best? ( t ) × Levy ? ( D ) + X R ( t ) + ( y ? x ) ? ?rand? (4) X_{2}(t+1)=X_{\text {best }}(t) \times \operatorname{Levy}(D)+X_{R}(t)+(y-x) * \text { rand } \tag{4} X2?(t+1)=Xbest??(t)×Levy(D)+XR?(t)+(y?x)??rand?(4)
其中, X 2 ( t + 1 ) X_{2}(t+1) X2?(t+1)是由第二个搜索方法( X 2 X_2 X2?)生成的第 t + 1 t+1 t+1次迭代的解; D D D是维度空间大小; L e v y ( D ) Levy(D) Levy(D)是Levy飞行分布函数,使用式(5)计算; X R ( t ) X_R(t) XR?(t)是在第 t t t次迭代时在 [ 1 , N ] [1,N] [1,N]范围内获得的随机解。
Levy ? ( D ) = s × u × σ ∣ v ∣ 1 β (5) \operatorname{Levy}(D)=s \times \frac{u \times \sigma}{|v|^{\frac{1}{\beta}}} \tag{5} Levy(D)=s×vβ1?u×σ?(5)
其中, s = 0.01 s=0.01 s=0.01 u u u v v v分别为服从 N ( 0 , σ 2 ) N ( 0 , σ^2 ) N(0,σ2) N ( 0 , 1 ) N(0,1) N(0,1)的高斯分布随机数, σ \sigma σ计算如式(6)所示。
σ = ( Γ ( 1 + β ) × sin ? ( π β 2 ) Γ ( 1 + β 2 ) × β × 2 ( β ? 1 2 ) ) 1 β (6) \sigma=\left(\frac{\Gamma(1+\beta) \times \sin \left(\frac{\pi \beta}{2}\right)}{\Gamma\left(\frac{1+\beta}{2}\right) \times \beta \times 2\left(\frac{\beta-1}{2}\right)}\right)^{\frac{1}{\beta}} \tag{6} σ=???Γ(21+β?)×β×2(2β?1?)Γ(1+β)×sin(2πβ?)????β1?(6)
其中 β = 1.5 \beta=1.5 β=1.5。在式(4)中, y y y x x x用于表示搜索中的螺旋形状,计算如下:
y = r × cos ? ( θ ) (7) y=r \times \cos (\theta) \tag{7} y=r×cos(θ)(7)

x = r × sin ? ( θ ) (8) x=r \times \sin (\theta) \tag{8} x=r×sin(θ)(8)

其中:
r = r 1 + U × D 1 (9) r=r_{1}+U \times D_{1} \tag{9} r=r1?+U×D1?(9)

θ = ? ω × D 1 + θ 1 (10) \theta=-\omega \times D_{1}+\theta_{1} \tag{10} θ=?ω×D1?+θ1?(10)

θ 1 = 3 × π 2 (11) \theta_{1}=\frac{3 \times \pi}{2} \tag{11} θ1?=23×π?(11)

r 1 r_1 r1?取1到20之间的值,用于固定搜索周期数; U U U是固定为0.00565的值; D 1 D_1 D1?是从1到搜索空间维数( D i m Dim Dim)的整数; ω \omega ω是固定为0.005的值。

1.4 扩大开发( X 3 X_3 X3?

在第三种方法( X 3 X_3 X3?)中,当天鹰准确地指定了猎物区域,并且准备好着陆和攻击时,天鹰垂直下降并进行初步攻击,以发现猎物反应。这种方法称为低空慢降攻击。在这里,AO利用目标的选定区域接近猎物并进行攻击。这种行为在数学上如式(12)所示:
X 3 ( t + 1 ) = ( X best? ( t ) ? X M ( t ) ) × α ? ?rand? + ( ( U B ? L B ) × ?rand? + L B ) × δ (12) X_{3}(t+1)=\left(X_{\text {best }}(t)-X_{M}(t)\right) \times \alpha-\text { rand }+((U B-L B) \times \text { rand }+L B) \times \delta \tag{12} X3?(t+1)=(Xbest??(t)?XM?(t))×α??rand?+((UB?LB)×?rand?+LB)×δ(12)
其中, X 3 ( t + 1 ) X_3(t+1) X3?(t+1)是由第三种搜索方法( X 3 X_3 X3?)生成的第 t + 1 t+1 t+1次迭代的解; X b e s t ( t ) X_{best}(t) Xbest?(t)表示第 t t t次迭代前猎物的近似位置(获得的最佳解); X M ( t ) X_M(t) XM?(t)表示第 t t t次迭代时当前解的平均值,该平均值使用式(3)计算; r a n d rand rand是一个介于0和1之间的随机值; α \alpha α δ \delta δ是本文中固定为较小值(0.1)的开发调整参数; L B LB LB表示给定问题的下界, U B UB UB表示给定问题的上界。

1.5扩大开发( X 4 X_4 X4?

在第三种方法( X 4 X_4 X4?)中,当天鹰接近猎物时,它根据其随机运动在陆地上攻击猎物。这种方法称为“行走并抓住猎物”,AO在最后一个位置攻击猎物。该行为的数学模型如式(13)所示:
X 4 ( t + 1 ) = Q F ( t ) × X b e s t ( t ) ? ( G 1 × X ( t ) × rand ? ) ? G 2 × Levy ? ( D ) + rand ? × G 1 (13) X_{4}(t+1)=Q F(t) \times X_{b e s t}(t)-\left(G_{1} \times X(t) \times \operatorname{rand}\right)-G_{2} \times \operatorname{Levy}(D)+\operatorname{rand} \times G_{1} \tag{13} X4?(t+1)=QF(t)×Xbest?(t)?(G1?×X(t)×rand)?G2?×Levy(D)+rand×G1?(13)
其中, X 4 ( t + 1 ) X_4(t+1) X4?(t+1)是由第四种搜索方法( X 4 X_4 X4?)生成的第 t + 1 t+1 t+1次迭代的解; Q F ( t ) QF(t) QF(t)表示在第 t t t次迭代时用于平衡搜索策略的质量函数,其使用式(14)计算; G 1 G_1 G1?表示在搜索猎物期间用于跟踪猎物的AO的各种运动,其使用式(15)计算; G 2 G_2 G2?呈现从2到0的递减值,表示AO的飞行速率,AO用于在从第一个位置到最后一个位置的过程中跟踪猎物,使用式(16)产生; X ( t ) X(t) X(t)是第 t t t次迭代的当前解。
Q F ( t ) = t 2 × ?rand? ? 1 ( 1 ? T ) 2 (14) Q F(t)=t^{\frac{2 \times \text { rand }-1}{(1-T)^{2}}} \tag{14} QF(t)=t(1?T)22×?rand??1?(14)

G 1 = 2 × ?rand? ? 1 (15) G_{1}=2 \times \text { rand }-1 \tag{15} G1?=2×?rand??1(15)

G 2 = 2 × ( 1 ? t T ) (16) G_{2}=2 \times\left(1-\frac{t}{T}\right) \tag{16} G2?=2×(1?Tt?)(16)

其中, r a n d rand rand是介于0和1之间的随机值; t t t T T T分别表示当前迭代和最大迭代次数。

算法伪代码如下:

1: Initialization phase:
2: Initialize the population X of the AO.
3: Initialize the parameters of the AO (i.e.,  α ,δ, etc).
4: WHILE (The end condition is not met) do
5: Calculate the fitness function values.
6: X best (t)= Determine the best obtained solution according to the fitness values.
7: for (i = 1,2…,N) do
8: Update the mean value of the current solution X M (t).
9: Update the x,y,G 1 ,G 2 , Levy(D), etc.
10: if t?( 2
3 )?T then
11:  if rand?0.5 then
12:  ? Step 1: Expanded exploration (X 1 )
13:  Update the current solution using Eq. (2).
14:  if Fitness(X 1 (t + 1)) < Fitness(X(t)) then
15:  X(t) =(X 1 (t + 1))
16:  if Fitness(X 1 (t + 1)) < Fitness(X best (t)) then
17:  X best (t) =X 1 (t + 1)
18:  end if
19:  end if
20:  else
21:  {? Step 2: Narrowed exploration (X 2 )}
22:  Update the current solution using Eq. (4).
23:  if Fitness(X 2 (t + 1)) < Fitness(X(t)) then
24:  X(t) =(X 2 (t + 1))
25:  if Fitness(X 2 (t + 1)) < Fitness(X best (t)) then
26:  X best (t) =X 2 (t + 1)
27:  end if
28:  end if
29:  end if
30:  else
31:  if rand?0.5 then
32:  {? Step 3: Expanded exploitation (X 3 )}
33:  Update the current solution using Eq. (12).
34:  if Fitness(X 3 (t + 1)) < Fitness(X(t)) then
35:  X(t) =(X 3 (t + 1))
36:  if Fitness(X 3 (t + 1)) < Fitness(X best (t)) then
37:  X best (t) =X 3 (t + 1)
38:  end if
39:  end if
40:  else
41:  ? Step 4: Narrowed exploitation (X 4 )
42:  Update the current solution using Eq. (13).
43:  if Fitness(X 4 (t + 1)) < Fitness(X(t)) then
44:  X(t) =(X 4 (t + 1))
45:  ifFitness(X 4 (t + 1)) < Fitness(X best (t)) then
46:  X best (t) =X 4 (t + 1)
47:  end if
48:  end if
49:  end if
50:  end if
51:  end for
52: end while
53: return The best solution (X best ).

2.实验结果

请添加图片描述

3.参考文献

[1] Abualigah L , Yousri D , Elaziz M A , et al. Matlab Code of Aquila Optimizer: A novel meta-heuristic optimization algorithm[J]. Computers & Industrial Engineering, 2021.

4.MATLAB代码

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:50:27  更:2022-03-15 22:51:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 13:41:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码