智能优化算法:天鹰优化算法
文章目录
- 智能优化算法:天鹰优化算法
- 1.算法原理
- 1.1 初始化
- 1.2 扩大搜索($X_1$)
- 1.3 缩小搜索($X_2$)
- 1.4 扩大开发($X_3$)
- 1.5扩大开发($X_4$)
- 2.实验结果
- 3.参考文献
- 4.MATLAB代码
摘要:天鹰优化算法(Aquila Optimizer,AO)是于2021年提出的一种新型智能优化算法,该算法主要模拟天鹰在捕捉猎物过程中的自然行为,来达到寻优的目的,具有寻优能力强,收敛速度快等特点。
1.算法原理
1.1 初始化
与其他优化算法一样,种群在搜索范围内随机初始化位置。
其中,是一个随机向量,表示给定问题的第个下界,表示给定问题的第个上界。
AO算法的优化过程用四种方法表示:通过垂直俯冲的高空飞行选择搜索空间、通过短滑翔攻击的等高线飞行在发散搜索空间内探索、通过慢速下降攻击的低空飞行在收敛搜索空间内开发、通过徒步猛扑并抓住猎物。如果 ,则AO算法可使用不同的行为从探索步骤转移到开发步骤;否则,将很好地执行开发步骤。
1.2 扩大搜索()
在第一种方法中,天鹰识别猎物区域,并通过垂直弯腰的高飞选择最佳狩猎区域。此时,AO让来自高空的探险者四处飞翔,以确定猎物所在的搜索空间区域。该行为的数学模型如式(2)所示:
其中,是由第一种搜索方法生成的第次迭代的解;是在第次迭代之前获得的最佳解,这反映了猎物的近似位置;用于通过迭代次数控制扩展搜索(探索);表示在第次迭代时当前解的平均值,该平均值使用式(3)计算;是介于0和1之间的随机值;和分别表示当前迭代和最大迭代次数。是问题的维度大小,是候选解的数量(种群规模)。
1.3 缩小搜索()
在第二种方法()中,当从高空发现猎物区域时,天鹰在目标猎物上方盘旋,准备着陆陆地,然后攻击,这种方法称为短滑翔攻击的等高线飞行。在这里,AO狭窄地探索目标猎物的选定区域,为攻击做准备。该行为的数学模式如式(4)所示:
其中,是由第二个搜索方法()生成的第次迭代的解;是维度空间大小;是Levy飞行分布函数,使用式(5)计算;是在第次迭代时在范围内获得的随机解。
其中,,和分别为服从 和的高斯分布随机数,计算如式(6)所示。
其中 。在式(4)中,和用于表示搜索中的螺旋形状,计算如下:
其中:
取1到20之间的值,用于固定搜索周期数;是固定为0.00565的值; 是从1到搜索空间维数()的整数;是固定为0.005的值。
1.4 扩大开发()
在第三种方法()中,当天鹰准确地指定了猎物区域,并且准备好着陆和攻击时,天鹰垂直下降并进行初步攻击,以发现猎物反应。这种方法称为低空慢降攻击。在这里,AO利用目标的选定区域接近猎物并进行攻击。这种行为在数学上如式(12)所示:
其中,是由第三种搜索方法()生成的第次迭代的解;表示第次迭代前猎物的近似位置(获得的最佳解);表示第次迭代时当前解的平均值,该平均值使用式(3)计算;是一个介于0和1之间的随机值;和是本文中固定为较小值(0.1)的开发调整参数;表示给定问题的下界,表示给定问题的上界。
1.5扩大开发()
在第三种方法()中,当天鹰接近猎物时,它根据其随机运动在陆地上攻击猎物。这种方法称为“行走并抓住猎物”,AO在最后一个位置攻击猎物。该行为的数学模型如式(13)所示:
其中,是由第四种搜索方法()生成的第次迭代的解;表示在第次迭代时用于平衡搜索策略的质量函数,其使用式(14)计算;表示在搜索猎物期间用于跟踪猎物的AO的各种运动,其使用式(15)计算;呈现从2到0的递减值,表示AO的飞行速率,AO用于在从第一个位置到最后一个位置的过程中跟踪猎物,使用式(16)产生;是第次迭代的当前解。
其中,是介于0和1之间的随机值;和分别表示当前迭代和最大迭代次数。
算法伪代码如下:
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代码