一、理论基础
帝企鹅优化(Emperor Penguin Optimizer,EPO)算法是Dhiman G和Kumar V于2018年提出的一种新型群智能算法,该算法具有参数少、收敛精度高等特点。帝企鹅从事各种活动,如狩猎、群体觅食,是群居性动物。每当恶劣的气候来临,它们会挤在一起防风御寒。帝企鹅在南极极端冬季期间主要以集群的方式互相取暖来度过−40℃的冬季。为了保证每只企鹅都能取暖,因此每只企鹅都在平等地做出贡献,同时它们的社交行为极为团结以及分工明确。集群的行为可归纳如下。
1、确定集群边界范围
设定在帝企鹅蜷缩取暖的过程中所选择的位置范围在多边形的网格范围内,帝企鹅在聚集的过程中至少与两只以上的帝企鹅相邻,邻居的选择是随机的;而在帝企鹅集群过程中范围的边界是不规则的多边形,因此用围绕住帝企鹅集群的风的梯度来表示整体集群的边界,在此定义风速 γ \gamma γ和其梯度 α \alpha α、 β \beta β,集群边界 μ \mu μ,可表示为 γ = Δ α (1) \gamma=\Delta\alpha\tag{1} γ=Δα(1) μ = α + i β (2) \mu=\alpha+i\beta\tag{2} μ=α+iβ(2)
2、计算集群层次周围的温度
南极严酷的外界环境使得帝企鹅在迁徙过程中面对寒冷天气会采取集群取暖来保持温度。若当前聚集半径
d
>
0.5
d>0.5
d>0.5时,其温度
W
=
0
W=0
W=0;当
d
<
0.5
d<0.5
d<0.5时,其温度
W
=
1
W=1
W=1。温度梯度曲
线
W
‾
\overline W
W可以描述为
W
‾
=
W
−
t
m
a
x
x
−
t
m
a
x
(3)
\overline{W}=W-\frac{t_{max}}{x-t_{max}}\tag{3}
W=W−x−tmaxtmax(3)其中,
t
m
a
x
t_{max}
tmax为最大迭代次数,
x
x
x为当前迭代次数,温度
W
W
W的表达式
W
=
{
0
,
d
>
0.5
;
1
,
d
≤
0.5.
(4)
W=\begin{dcases}0,\quad d>0.5;\\1,\quad d≤0.5.\end{dcases}\tag{4}
W={0,d>0.5;1,d≤0.5.(4)
3、计算帝企鹅间的距离
在集群范围内帝企鹅间的距离表示为该个体与集群中心帝企鹅的距离,集群距离公式如下: L e p = ∣ ∣ F ( Γ ) O b e s t ( x ) − I O e p ( x ) ∣ ∣ (5) \boldsymbol L_{ep}=||F(\boldsymbol\Gamma)\boldsymbol O_{best}(x)-\boldsymbol I\boldsymbol O_{ep}(x)||\tag{5} Lep=∣∣F(Γ)Obest(x)−IOep(x)∣∣(5)其中, L e p \boldsymbol L_{ep} Lep表示帝企鹅距中心的距离; x x x表示当前迭代次数; Γ \boldsymbol\Gamma Γ和 I \boldsymbol I I用于帝企鹅体积设置的影响向量因子,避免个体间的冲突; O b e s t ( x ) \boldsymbol O_{best}(x) Obest(x)为 x x x轮最优解; O e p ( x ) \boldsymbol O_{ep}(x) Oep(x)表示当前帝企鹅的位置向量; F ( ) F() F()定义帝企鹅的主体社会地位,负责区别最优个体与普通个体。向量 Γ \boldsymbol\Gamma Γ和 I \boldsymbol I I计算如下: Γ = ( B m o v e × ( W + P a c c ) × Random() ) − W ‾ (6) \boldsymbol\Gamma=(B_{move}×(\boldsymbol W+P_{acc})×\text{Random()})-\overline W\tag{6} Γ=(Bmove×(W+Pacc)×Random())−W(6) P a c c = ∣ ∣ O b e s t ( x ) − O e p ( x ) ∣ ∣ (7) P_{acc}=||\boldsymbol O_{best}(x)-\boldsymbol O_{ep}(x)||\tag{7} Pacc=∣∣Obest(x)−Oep(x)∣∣(7) I = Random([0,1]) (8) \boldsymbol I=\text{Random([0,1])}\tag{8} I=Random([0,1])(8)其中, B m o v e B_{move} Bmove是移动步长,这里 B m o v e B_{move} Bmove的值设置为2.5; P a c c P_{acc} Pacc通过比较与最优的差异来定义多边形网格精度。函数 F ( Γ ) F(\boldsymbol\Gamma) F(Γ)计算如下: F ( Γ ) = ( ξ e − x / φ − e − x ) 2 (9) F(\boldsymbol\Gamma)=(\sqrt{\xi e^{-x/\varphi}-e^{-x}})^2\tag{9} F(Γ)=(ξe−x/φ−e−x)2(9)其中, ξ \xi ξ和 φ \varphi φ是控制参数,其值分别在(2,3)(1.5,2)的范围内能得出更好的结果。
4、帝企鹅位置更新
帝企鹅集群中的个体通过向集群中心帝企鹅 Q Q Q的方向移动更新位置信息,其位置更新公式如下: O e p ( x + 1 ) = O b e s t ( x ) − Γ L e p (10) \boldsymbol O_{ep}(x+1)=\boldsymbol O_{best}(x)-\boldsymbol{\Gamma L}_{ep}\tag{10} Oep(x+1)=Obest(x)−ΓLep(10)其中, O e p ( x + 1 ) \boldsymbol O_{ep}(x+1) Oep(x+1)表示帝企鹅的下一代更新位置。在迭代过程中,一旦移动者重新定位,帝企鹅的上述参数将被重新计算。
5、EPO算法伪代码
二、仿真实验
对Sphere函数进行测试,参数如下:种群规模
N
=
80
N=80
N=80,变量维数
D
=
5
D=5
D=5,每个变量的上下限均为
30
30
30和
−
30
-30
−30,迭代500次。
EPO算法的进化曲线如下:
三、参考文献
[1] Gaurav Dhiman, Vijay Kumar. Emperor Penguin Optimizer: A Bio-inspired Algorithm for Engineering Problems[J]. Knowledge-Based Systems, 2018, 159: 20-50.
[2] 唐菁敏, 曲文博, 苏慧慧, 等. 一种基于帝企鹅差分算法的WSN覆盖优化[J]. 云南大学学报(自然科学版), 2021, 43(1): 46-51.