基于帝企鹅优化算法的函数寻优算法

本文介绍了帝企鹅优化(EPO)算法,这是一种由Dhiman和Kumar在2018年提出的生物启发式算法。EPO模拟帝企鹅在极端环境下集群取暖的行为,用于解决工程问题。算法包括确定集群边界、计算温度、计算距离、位置更新等步骤,并通过仿真实验验证其性能。在Sphere函数测试中,EPO展现出良好的优化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、理论基础

帝企鹅优化(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=Wxtmaxtmax(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,d0.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(Γ)=(ξex/φex )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算法伪代码

在这里插入图片描述

图1 EPO算法伪代码

二、仿真实验

对Sphere函数进行测试,参数如下:种群规模 N = 80 N=80 N=80,变量维数 D = 5 D=5 D=5,每个变量的上下限均为 30 30 30 − 30 -30 30,迭代500次。
EPO算法的进化曲线如下:
在这里插入图片描述

图2 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.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心️升明月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值