智能优化算法:鹈鹕优化算法-附代码

智能优化算法:鹈鹕优化算法

1.鹈鹕优化算法简介

鹈鹕优化算法(Pelican Optimization Algorithm,POA)是2022年由Pavel Trojovský和Mohammad Dehghani 提出的,该算法模拟了鹈鹕在狩猎过程中的自然行为。

2.鹈鹕优化算法基本原理

2.1灵感来源和鹈鹕在狩猎时的行为

鹈鹕很大,喙很长,喉咙里有一个大袋子,用来捕捉和吞咽猎物。这种鸟喜欢群体和社交生活,并以数百只鹈鹕为一群生活。鹈鹕的外观如下:它们的体重约为2.75至15公斤,高度约为1.06至1.83米,翼展约为0.5至3米。鹈鹕的食物主要是以鱼类为主,不常吃的是青蛙、海龟和甲壳类动物;如果它很饿,它甚至会吃海鲜。鹈鹕经常组团一起捕猎,鹈鹕在确定猎物的位置后,从10-20米的高度俯冲到猎物身上。当然,有些物种也会在低海拔地区找到它们的猎物。然后,它们在水面上展开翅膀,迫使鱼进入浅水区,以便它们能很容易地抓住鱼。当捕获鱼后,大量的水进入鹈鹕的喙,在吞下鱼之前将头部向前移动以除去多余的水。

鹈鹕在捕猎时的行为和策略是一个智能的行为过程,使得这种鸟类成为熟练的猎手。该鹈鹕优化算法设计的主要灵感来自于上述策略的建模。

2.2算法的数学模型

在鹈鹕优化算法中,模拟了鹈鹕在攻击和狩猎时的行为和策略,以此来更新候选解。该狩猎过程分为两个阶段:逼近猎物(勘探阶段),水面飞行(开发阶段)。

2.2.1 初始化

鹈鹕种群初始化数学描述如下:
x i , j = l j + r a n d ⋅ ( u j − l j ) , i = 1 , 2 , … , N , j = 1 , 2 , … , m (1) {x_{i,j}} = {l_j} + rand \cdot \left( {{u_j} - {l_j}} \right),i = 1,2, \ldots ,N,j = 1,2, \ldots ,m \tag{1} xi,j=lj+rand(ujlj),i=1,2,,N,j=1,2,,m(1)
式中: x i , j x_{i,j} xi,j为第i个鹈鹕的第j维的位置;N为鹈鹕的种群数量;m为求解问题的维度; r a n d rand rand是[0,1]范围内的随机数;和 u j u_j uj l j l_j lj分别是求解问题的第j维的上下边界。

在鹈鹕优化算法中,鹈鹕种群可以用以下种群矩阵表示:
X = [ X 1 ⋮ X i ⋮ X N ] N × m = [ x 1 , 1 ⋯ x 1 , j ⋯ x 1 , m ⋮ ⋱ ⋮ ⋮ x i , 1 ⋯ x i , j ⋯ x i , m ⋮ ⋮ ⋱ ⋮ x N , 1 ⋯ x N , j ⋯ x N , m ] N × m (2) X=\left[\begin{array}{c} X_{1} \\ \vdots \\ X_{i} \\ \vdots \\ X_{N} \end{array}\right]_{N \times m}=\left[\begin{array}{ccccc} x_{1,1} & \cdots & x_{1, j} & \cdots & x_{1, m} \\ \vdots & \ddots & \vdots & & \vdots \\ x_{i, 1} & \cdots & x_{i, j} & \cdots & x_{i, m} \\ \vdots & & \vdots & \ddots & \vdots \\ x_{N, 1} & \cdots & x_{N, j} & \cdots & x_{N, m} \end{array}\right]_{N \times m} \tag{2} X=X1XiXNN×m=x1,1xi,1xN,1x1,jxi,jxN,jx1,mxi,mxN,mN×m(2)
式中: X X X为鹈鹕的种群矩阵; X i X_i Xi为第i个鹈鹕的位置;

在鹈鹕优化算法中,求解问题的目标函数可以用来计算鹈鹕的目标函数值;鹈鹕种群的目标函数值可以用目标函数值向量表示:
F = [ F 1 ⋮ F i ⋮ F N ] N × 1 = [ F ( X 1 ) ⋮ F ( X i ) ⋮ F ( X N ) ] N × 1 (3) F=\left[\begin{array}{c} F_{1} \\ \vdots \\ F_{i} \\ \vdots \\ F_{N} \end{array}\right]_{N \times 1}=\left[\begin{array}{c} F\left(X_{1}\right) \\ \vdots \\ F\left(X_{i}\right) \\ \vdots \\ F\left(X_{N}\right) \end{array}\right]_{N \times 1}\tag{3} F=F1FiFNN×1=F(X1)F(Xi)F(XN)N×1(3)
式中: F F F为鹈鹕种群的目标函数向量; F i F_i Fi为第i个鹈鹕的目标函数值。

2.2.2 第一阶段:逼近猎物(勘探阶段)

在第一阶段,鹈鹕确定猎物的位置,然后向这个确定的区域移动。对鹈鹕逼近猎物策略进行建模,使得POA算法可以对搜索空间进行扫描,进而发挥POA算法在搜索空间中的不同区域的勘探能力。在POA算法中,需要重视的一点是:猎物的位置在搜索空间中是随机生成的,这样增加了POA算法在解决精确搜索问题上的勘探能力。对上述概念和逼近猎物策略进行数学建模,如下:
x i , j P 1 = { x i , j +  rand  ⋅ ( p j − I ⋅ x i , j ) , F p < F i x i , j +  rand  ⋅ ( x i , j − p j ) ,  else  (4) x_{i, j}^{P_{1}}=\left\{\begin{array}{ll} x_{i, j}+\text { rand } \cdot\left(p_{j}-I \cdot x_{i, j}\right), & F_{p}<F_{i} \\ x_{i, j}+\text { rand } \cdot\left(x_{i, j}-p_{j}\right), & \text { else } \end{array}\right.\tag{4} xi,jP1={xi,j+ rand (pjIxi,j),xi,j+ rand (xi,jpj),Fp<Fi else (4)
式中: x i , j P 1 x_{i,j}^{P_1} xi,jP1为基于第1阶段更新后第i个鹈鹕的第j维的位置;rand是[0,1]范围内的随机数; I I I为1或2的随机整数; p j p_j pj为猎物的第j维的位置; F p F_p Fp为猎物的目标函数值。

在POA算法中,如果目标函数值在该位置得到改善,则接受鹈鹕的新位置。在这种类型的更新中,也被称为有效更新,该算法不能移动到非最优区域。这个过程可以如下公式描述:
X i = { X i P 1 , F i P 1 < F i X i ,  else  (5) X_{i}=\left\{\begin{array}{cc} X_{i}^{P_{1}}, & F_{i}^{P_{1}}<F_{i} \\ X_{i}, & \text { else } \end{array}\right. \tag{5} Xi={XiP1,Xi,FiP1<Fi else (5)
式中: X i P 1 X_i^{P_1} XiP1为第i个鹈鹕的新位置; F i P 1 F_i^{P_1} FiP1为基于第一阶段更新后的第i个鹈鹕的新位置的目 X i P 1 X_i^{P_1} XiP1标函数值。

2.2.3 第二阶段:水面飞行(开发阶段)

在第二阶段,当鹈鹕到达水面后,它们在水面上展开翅膀,将鱼向上移动,然后把猎物放在它们的喉咙袋里。鹈鹕水面飞行的这种策略可以使得它们在被攻击区域内捕获更多的鱼。对鹈鹕的这种行为过程进行建模,可以使得POA算法收敛到狩猎区域更好的位置,这样增加了POA算法的局部搜索能力和开发能力。从数学的视角来看,该算法必须检查鹈鹕位置附近的位置,以便算法可以收敛到更好的位置。鹈鹕在狩猎过程中的这种行为在数学建模为:
x i , j P 2 = x i , j + R ⋅ ( 1 − t T ) ⋅ ( 2 ⋅ r a n d − 1 ) ⋅ x i , j (6) x_{i,j}^{{P_2}} = {x_{i,j}} + R \cdot \left( {1 - \frac{t}{T}} \right) \cdot (2 \cdot rand - 1) \cdot {x_{i,j}}\tag{6} xi,jP2=xi,j+R(1Tt)(2rand1)xi,j(6)
式中: x i , j P 2 x_{i,j}^{P_2} xi,jP2为基于第2阶段更新后第i个鹈鹕的第j维的位置;rand是[0,1]范围内的随机数; R R R为0或2的随机整数;t为当前迭代次数;T为最大迭代次数。

算法流程图如下:

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1] Trojovský P, Dehghani M. Pelican Optimization Algorithm: A Novel Nature-Inspired Algorithm for Engineering Applications. Sensors (Basel). 2022 Jan 23;22(3):855. doi: 10.3390/s22030855. PMID: 35161600; PMCID: PMC8838090.

5.Matlab代码

鹈鹕优化算法是一种基于群体智能优化算法,用于优化LSTM模型。下面是LSTM的原理和流程的简要介绍: LSTM(Long Short-Term Memory)是一种特殊的循环神经网络(RNN),在处理序列数据时具有很强的记忆能力。LSTM的主要思想是通过门控机制来控制信息的流动,以解决传统RNN存在的梯度消失和梯度爆炸等问题。 LSTM的核心是记忆单元(Memory Cell),其中包含了一个遗忘门(Forget Gate)、输入门(Input Gate)和输出门(Output Gate)。遗忘门决定了前一时刻记忆的保留程度,输入门决定了当前时刻输入的重要程度,输出门则控制了输出的内容。 LSTM的流程如下: 1. 输入层接收序列数据,并通过全连接层传递给LSTM层。 2. LSTM层中,通过遗忘门、输入门和输出门对输入信息进行筛选、更新和输出。 3. 记忆单元根据遗忘门和输入门的控制,决定是否保留前一时刻的记忆,并将当前时刻的输入信息加入到记忆中。 4. 经过计算和更新后,输出门控制着记忆单元中的信息输出到下一层或最终输出层。 5. 根据网络的具体任务,在输出层进行适当的处理和预测。 鹈鹕优化算法可以应用于LSTM模型的参数优化过程。该算法通过模拟鹈鹕觅食的过程,使用种群中个体之间的信息交流和合作,来寻找最优的LSTM模型参数设置。具体而言,鹈鹕优化算法通过迭代更新个体的位置和速度,并根据适应度函数评估个体的优劣,从而找到最优解。 希望以上内容对您有所帮助!如果还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值