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


文章目录

  • 智能优化算法:天鹰优化算法
  • 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 初始化

与其他优化算法一样,种群在搜索范围内随机初始化位置。
智能优化算法:天鹰优化算法-附代码_机器学习
其中,智能优化算法:天鹰优化算法-附代码_优化算法_02是一个随机向量,智能优化算法:天鹰优化算法-附代码_机器学习_03表示给定问题的第智能优化算法:天鹰优化算法-附代码_优化算法_04个下界,智能优化算法:天鹰优化算法-附代码_算法_05表示给定问题的第智能优化算法:天鹰优化算法-附代码_优化算法_04个上界。

AO算法的优化过程用四种方法表示:通过垂直俯冲的高空飞行选择搜索空间、通过短滑翔攻击的等高线飞行在发散搜索空间内探索、通过慢速下降攻击的低空飞行在收敛搜索空间内开发、通过徒步猛扑并抓住猎物。如果 智能优化算法:天鹰优化算法-附代码_线性代数_07,则AO算法可使用不同的行为从探索步骤转移到开发步骤;否则,将很好地执行开发步骤。

1.2 扩大搜索(智能优化算法:天鹰优化算法-附代码_线性代数_08

在第一种方法智能优化算法:天鹰优化算法-附代码_机器学习_09中,天鹰识别猎物区域,并通过垂直弯腰的高飞选择最佳狩猎区域。此时,AO让来自高空的探险者四处飞翔,以确定猎物所在的搜索空间区域。该行为的数学模型如式(2)所示:
智能优化算法:天鹰优化算法-附代码_优化算法_10

智能优化算法:天鹰优化算法-附代码_算法_11

其中,智能优化算法:天鹰优化算法-附代码_优化算法_12是由第一种搜索方法智能优化算法:天鹰优化算法-附代码_机器学习_09生成的第智能优化算法:天鹰优化算法-附代码_优化算法_14次迭代的解;智能优化算法:天鹰优化算法-附代码_算法_15是在第智能优化算法:天鹰优化算法-附代码_算法_16次迭代之前获得的最佳解,这反映了猎物的近似位置;智能优化算法:天鹰优化算法-附代码_优化算法_17用于通过迭代次数控制扩展搜索(探索);智能优化算法:天鹰优化算法-附代码_线性代数_18表示在第智能优化算法:天鹰优化算法-附代码_算法_16次迭代时当前解的平均值,该平均值使用式(3)计算;智能优化算法:天鹰优化算法-附代码_优化算法_02是介于0和1之间的随机值;智能优化算法:天鹰优化算法-附代码_优化算法_21智能优化算法:天鹰优化算法-附代码_线性代数_22分别表示当前迭代和最大迭代次数。智能优化算法:天鹰优化算法-附代码_机器学习_23是问题的维度大小,智能优化算法:天鹰优化算法-附代码_搜索_24是候选解的数量(种群规模)。

1.3 缩小搜索(智能优化算法:天鹰优化算法-附代码_线性代数_25

在第二种方法(智能优化算法:天鹰优化算法-附代码_线性代数_25)中,当从高空发现猎物区域时,天鹰在目标猎物上方盘旋,准备着陆陆地,然后攻击,这种方法称为短滑翔攻击的等高线飞行。在这里,AO狭窄地探索目标猎物的选定区域,为攻击做准备。该行为的数学模式如式(4)所示:
智能优化算法:天鹰优化算法-附代码_搜索_27
其中,智能优化算法:天鹰优化算法-附代码_优化算法_28是由第二个搜索方法(智能优化算法:天鹰优化算法-附代码_线性代数_25)生成的第智能优化算法:天鹰优化算法-附代码_优化算法_14次迭代的解;智能优化算法:天鹰优化算法-附代码_搜索_31是维度空间大小;智能优化算法:天鹰优化算法-附代码_机器学习_32是Levy飞行分布函数,使用式(5)计算;智能优化算法:天鹰优化算法-附代码_线性代数_33是在第智能优化算法:天鹰优化算法-附代码_算法_16次迭代时在智能优化算法:天鹰优化算法-附代码_机器学习_35范围内获得的随机解。
智能优化算法:天鹰优化算法-附代码_算法_36
其中,智能优化算法:天鹰优化算法-附代码_优化算法_37智能优化算法:天鹰优化算法-附代码_算法_38智能优化算法:天鹰优化算法-附代码_优化算法_39分别为服从智能优化算法:天鹰优化算法-附代码_优化算法_40智能优化算法:天鹰优化算法-附代码_算法_41的高斯分布随机数,智能优化算法:天鹰优化算法-附代码_优化算法_42计算如式(6)所示。
智能优化算法:天鹰优化算法-附代码_机器学习_43
其中 智能优化算法:天鹰优化算法-附代码_搜索_44。在式(4)中,智能优化算法:天鹰优化算法-附代码_线性代数_45智能优化算法:天鹰优化算法-附代码_线性代数_46用于表示搜索中的螺旋形状,计算如下:
智能优化算法:天鹰优化算法-附代码_线性代数_47

智能优化算法:天鹰优化算法-附代码_算法_48

其中:
智能优化算法:天鹰优化算法-附代码_线性代数_49

智能优化算法:天鹰优化算法-附代码_算法_50

智能优化算法:天鹰优化算法-附代码_算法_51

智能优化算法:天鹰优化算法-附代码_机器学习_52取1到20之间的值,用于固定搜索周期数;智能优化算法:天鹰优化算法-附代码_机器学习_53是固定为0.00565的值; 智能优化算法:天鹰优化算法-附代码_优化算法_54是从1到搜索空间维数(智能优化算法:天鹰优化算法-附代码_机器学习_23)的整数;智能优化算法:天鹰优化算法-附代码_线性代数_56是固定为0.005的值。

1.4 扩大开发(智能优化算法:天鹰优化算法-附代码_算法_57

在第三种方法(智能优化算法:天鹰优化算法-附代码_算法_57)中,当天鹰准确地指定了猎物区域,并且准备好着陆和攻击时,天鹰垂直下降并进行初步攻击,以发现猎物反应。这种方法称为低空慢降攻击。在这里,AO利用目标的选定区域接近猎物并进行攻击。这种行为在数学上如式(12)所示:
智能优化算法:天鹰优化算法-附代码_搜索_59
其中,智能优化算法:天鹰优化算法-附代码_机器学习_60是由第三种搜索方法(智能优化算法:天鹰优化算法-附代码_算法_57)生成的第智能优化算法:天鹰优化算法-附代码_优化算法_14次迭代的解;智能优化算法:天鹰优化算法-附代码_算法_15表示第智能优化算法:天鹰优化算法-附代码_算法_16次迭代前猎物的近似位置(获得的最佳解);智能优化算法:天鹰优化算法-附代码_线性代数_18表示第智能优化算法:天鹰优化算法-附代码_算法_16次迭代时当前解的平均值,该平均值使用式(3)计算;智能优化算法:天鹰优化算法-附代码_优化算法_02是一个介于0和1之间的随机值;智能优化算法:天鹰优化算法-附代码_线性代数_68智能优化算法:天鹰优化算法-附代码_机器学习_69是本文中固定为较小值(0.1)的开发调整参数;智能优化算法:天鹰优化算法-附代码_搜索_70表示给定问题的下界,智能优化算法:天鹰优化算法-附代码_算法_71表示给定问题的上界。

1.5扩大开发(智能优化算法:天鹰优化算法-附代码_算法_72

在第三种方法(智能优化算法:天鹰优化算法-附代码_算法_72)中,当天鹰接近猎物时,它根据其随机运动在陆地上攻击猎物。这种方法称为“行走并抓住猎物”,AO在最后一个位置攻击猎物。该行为的数学模型如式(13)所示:
智能优化算法:天鹰优化算法-附代码_机器学习_74
其中,智能优化算法:天鹰优化算法-附代码_优化算法_75是由第四种搜索方法(智能优化算法:天鹰优化算法-附代码_算法_72)生成的第智能优化算法:天鹰优化算法-附代码_优化算法_14次迭代的解;智能优化算法:天鹰优化算法-附代码_优化算法_78表示在第智能优化算法:天鹰优化算法-附代码_算法_16次迭代时用于平衡搜索策略的质量函数,其使用式(14)计算;智能优化算法:天鹰优化算法-附代码_搜索_80表示在搜索猎物期间用于跟踪猎物的AO的各种运动,其使用式(15)计算;智能优化算法:天鹰优化算法-附代码_优化算法_81呈现从2到0的递减值,表示AO的飞行速率,AO用于在从第一个位置到最后一个位置的过程中跟踪猎物,使用式(16)产生;智能优化算法:天鹰优化算法-附代码_搜索_82是第智能优化算法:天鹰优化算法-附代码_算法_16次迭代的当前解。
智能优化算法:天鹰优化算法-附代码_搜索_84

智能优化算法:天鹰优化算法-附代码_线性代数_85

智能优化算法:天鹰优化算法-附代码_算法_86

其中,智能优化算法:天鹰优化算法-附代码_优化算法_02是介于0和1之间的随机值;智能优化算法:天鹰优化算法-附代码_算法_16智能优化算法:天鹰优化算法-附代码_线性代数_22分别表示当前迭代和最大迭代次数。

算法伪代码如下:

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.实验结果

智能优化算法:天鹰优化算法-附代码_算法_90

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代码