智能优化算法:猎食者优化算法-附代码

智能优化算法:猎食者优化算法


摘要:猎食者优化算法(Hunter–prey optimization,HPO),是于2022年提出的一种新型智能优化算法,该算法通过模拟动物猎食的过程,来对问题进行寻优,具有收敛速度快,寻优能力强的特点。

1.算法原理

1.初始化

与其他优化算法一样,猎食者种群在搜索范围内随机初始化位置。
x i = rand ⁡ ( 1 , d ) . ∗ ( u b − l b ) + l b (1) x_{i} = \operatorname{rand}(1, d) . *(u b-l b)+l b \tag{1} xi=rand(1,d).(ublb)+lb(1)
其中, x i x_i xi是猎食的位置, l b lb lb是问题变量的最小值(下界), u b ub ub是问题变量的最大值(上界), d d d是问题变量的数量(维度)。

2.猎食者搜索

对于猎食者的搜索机制,式(2)给出了其数学模型:
x i , j ( t + 1 ) = x i , j ( t ) + 0.5 [ ( 2 C Z P p o s ( j ) − x i , j ( t ) ) + ( 2 ( 1 − C ) Z μ ( j ) − x i , j ( t ) ) ] (2) x_{i, j}(t+1)=x_{i, j}(t)+0.5\left[\left(2 C Z P_{p o s(j)}-x_{i, j}(t)\right)+\left(2(1-C) Z \mu(j)-x_{i, j}(t)\right)\right] \tag{2} xi,j(t+1)=xi,j(t)+0.5[(2CZPpos(j)xi,j(t))+(2(1C)Zμ(j)xi,j(t))](2)
其中, x ( t ) x(t) x(t)是当前猎食者位置, x ( t + 1 ) x(t+1) x(t+1)是猎食者的下一次迭代位置,是 P p o s P_{pos} Ppos猎物的位置, μ \mu μ是所有位置的平均值, Z Z Z是由式(3)计算的自适应参数:
P = R ⃗ 1 < C ; I D X = ( P = = 0 ) Z = R 2 ⊗ I D X + R ⃗ 3 ⊗ ( ∼ I D X ) (3) \begin{array}{l} P=\vec{R}_{1}<C ; I D X=(P==0) \\ Z=R_{2} \otimes I D X+\vec{R}_{3} \otimes(\sim I D X) \end{array} \tag{3} P=R 1<C;IDX=(P==0)Z=R2IDX+R 3(IDX)(3)
其中, R → 1 \overrightarrow R1 R 1 R → 3 \overrightarrow R3 R 3 是[0,1]内的随机向量, P P P R → 1 < C \overrightarrow R1<C R 1<C的索引值, R → 2 \overrightarrow R2 R 2是[ 0 , 1 ] 内的随机数, I D X IDX IDX是满足条件( P = = 0 P==0 P==0)的向量 R → 1 \overrightarrow R1 R 1 的索引值, C C C是探索和开发之间的平衡参数,其值在迭代过程中从1减小到0.02,计算如下:
C = 1 − i t ( 0.98 M a x I t ) (4) C=1-i t\left(\frac{0.98}{M a x I t}\right) \tag{4} C=1it(MaxIt0.98)(4)
其中, i t it it是当前迭代次数, M a x I t MaxIt MaxIt是最大迭代次数。计算猎物的位置( P p o s P_{pos} Ppos),以便首先根据式(5)计算所有位置的平均值( μ \mu μ),然后计算每个搜索个体与该平均位置的距离。
μ = 1 n ∑ i = 1 n x ⃗ i (5) \mu=\frac{1}{n} \sum_{i=1}^{n} \vec{x}_{i} \tag{5} μ=n1i=1nx i(5)
根据式(6)计算欧几里得距离:
D e u c ( i ) = ( ∑ j = 1 d ( x i , j − μ j ) 2 ) 1 2 (6) D_{e u c(i)}=\left(\sum_{j=1}^{d}\left(x_{i, j}-\mu_{j}\right)^{2}\right)^{\frac{1}{2}}\tag{6} Deuc(i)=(j=1d(xi,jμj)2)21(6)
根据式(7),距离位置平均值最大的搜索代理被视为猎物( P p o s P_{pos} Ppos):
P ⃗ pos  = x ⃗ i ∣ i  is index of  Max ⁡ ( e n d ) sort ⁡ ( D euc  ) (7) \vec{P}_{\text {pos }}=\vec{x}_{i} \mid i \text { is index of } \operatorname{Max}(\mathrm{end}) \operatorname{sort}\left(D_{\text {euc }}\right) \tag{7} P pos =x ii is index of Max(end)sort(Deuc )(7)
如果每次迭代都考虑到搜索代理与平均位置( μ \mu μ)之间的最大距离,则该算法将具有延迟收敛性。根据狩猎场景,当猎食者捕获猎物时,猎物会死亡,而下一次,猎食者会移动到新的猎物位置。为了解决这个问题,考虑一种递减机制,如式(8)所示:
 kbest  = round ⁡ ( C × N ) (8) \text { kbest }=\operatorname{round}(C \times N) \tag{8}  kbest =round(C×N)(8)
其中 N N N是搜索代理的数量。改变式(7),将猎物的位置计算为式(9):
P ⃗ pos  = x ⃗ i ∣ i  is sorted  D euc  (  kbest  ) (9) \vec{P}_{\text {pos }}=\vec{x}_{i} \mid i \text { is sorted } D_{\text {euc }}(\text { kbest }) \tag{9} P pos =x ii is sorted Deuc ( kbest )(9)
在算法开始时, k b e s t kbest kbest的值等于 N N N。最后一个距离搜索个体的平均位置( μ \mu μ)最远的搜索个体被选择为猎物,并被猎食者捕获。假设最佳安全位置是最佳全局位置,因为这将使猎物有更好的生存机会,猎食者可能会选择另一个猎物。式(10)用于更新猎物位置:
x i , j ( t + 1 ) = T p o s ( j ) + C Z cos ⁡ ( 2 π R 4 ) × ( T p o s ( j ) − x i , j ( t ) ) (10) x_{i, j}(t+1)=T_{p o s(j)}+C Z \cos \left(2 \pi R_{4}\right) \times\left(T_{p o s(j)}-x_{i, j}(t)\right)\tag{10} xi,j(t+1)=Tpos(j)+CZcos(2πR4)×(Tpos(j)xi,j(t))(10)
其中, x ( t ) x(t) x(t)是猎物的当前位置; x ( t + 1 ) x(t+1) x(t+1)是猎物的下一次迭代位置; T p o s T_{pos} Tpos是全局最优位置; Z Z Z是由式(3)计算的自适应参数; R 4 R_4 R4是范围[ − 1 , 1 ]内的随机数; C C C是探索和开发之间的平衡参数,其值在算法的迭代过程中减小,并由式(4)计算; c o s cos cos函数及其输入参数允许下一个猎物位置在不同半径和角度的全局最优位置,并提高开发阶段的性能。为了选择猎食者和猎物,结合式(2)和(10)提出了式(11):
x i ( t + 1 ) = { x i ( t ) + 0.5 [ ( 2 C Z P pos  ( j ) − x i ( t ) ) + ( 2 ( 1 − C ) Z μ ( j ) − x i ( t ) ) ]  if  R 5 < β T pos  + C Z cos ⁡ ( 2 π R 4 ) × ( T pos  − x i ( t ) )  else  (11) x_{i}(t+1)=\left\{\begin{array}{ll} x_{i}(t)+0.5\left[\left(2 C Z P_{\text {pos }(j)}-x_{i}(t)\right)+\left(2(1-C) Z \mu(j)-x_{i}(t)\right)\right] & \text { if } R_{5}<\beta \\ T_{\text {pos }}+C Z \cos \left(2 \pi R_{4}\right) \times\left(T_{\text {pos }}-x_{i}(t)\right) & \text { else } \end{array}\right .\tag{11} xi(t+1)={xi(t)+0.5[(2CZPpos (j)xi(t))+(2(1C)Zμ(j)xi(t))]Tpos +CZcos(2πR4)×(Tpos xi(t)) if R5<β else (11)
其中, R 5 R_5 R5是[ 0 , 1 ] 范围内的随机数, β \beta β是一个调节参数。

算法流程:

步骤1:设置算法相关参数;并初始化种群。

步骤2:计算适应度值,并记录最优位置。

步骤3:根据(11)对猎食者或猎物位置进行更新。

步骤4:判断是否满足停止条件,如果满足则输出最优解,否则充分步骤2-3。

2.实验结果

请添加图片描述

3.参考文献

[1] Naruei, I., Keynia, F., Sabbagh Molahosseini, A. Hunter-prey optimization: algorithm and applications[J]. Soft Computing, 2022, 26: 1279-1314.

4.Matlab

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值