基于饥饿博弈搜索算法的函数寻优算法

文章目录

  • 一、理论基础
    • 1、饥饿博弈搜索算法
      • (1)接近食物
      • (2)饥饿角色
    • 2、算法伪代码
  • 二、实验及分析
  • 三、参考文献

一、理论基础

在本章中,详细描述了提出的饥饿博弈搜索(Hunger games search, HGS)算法的数学模型。请注意,我们必须根据饥饿驱动的活动和行为选择建立一个数学模型,该模型应尽可能简单,同时也是最有效的表现。

1、饥饿博弈搜索算法

(1)接近食物

为了用数学公式表示其接近行为,使用以下公式模拟收缩模式: X ( t + 1 ) = { X ( t ) ⋅ ( 1 + r a n d n ( 1 ) ) ,     r 1 < l W 1 ⋅ X b + R ⋅ W 2 ⋅ ∣ X b − X ( t ) ∣ , r 1 > l , r 2 > E W 1 ⋅ X b − R ⋅ W 2 ⋅ ∣ X b − X ( t ) ∣ , r 1 > l , r 2 < E (1) X(t+1)=\begin{dcases}X(t)\cdot\left(1+randn(1)\right),\quad\quad\quad\quad\,\,\, r_1l,r_2>E\\W_1\cdot X_b-R\cdot W_2\cdot|X_b-X(t)|,\quad r_1>l,r_2X(t+1)=X(t)(1+randn(1)),r1<lW1Xb+RW2XbX(t),r1>l,r2>EW1XbRW2XbX(t),r1>l,r2<E(1)其中, R R R是介于 [ − a , a ] [-a,a] [a,a]的随机数; r 1 r_1 r1 r 2 r_2 r2均为 [ 0 , 1 ] [0,1] [0,1]之间的随机数; r a n d n ( 1 ) randn(1) randn(1)是满足标准正态分布的随机数; t t t为当前迭代次数; W 1 W_1 W1 W 2 W_2 W2表示饥饿权重; X b X_b Xb表示全局最优位置; X ( t ) X(t) X(t)表示当前个体位置; l l l是设置的常数。
E E E的计算公式如下: E = sech ( ∣ F ( i ) − B F ∣ ) (2) E=\text{sech}(|F(i)-BF|)\tag{2} E=sech(F(i)BF)(2)其中, i ∈ 1 , 2 , ⋯   , N i\in1,2,\cdots,N i1,2,,N F ( i ) F(i) F(i) i i i个个体的适应度值; B F BF BF是当前最优适应度值。 sech \text{sech} sech是一个双曲函数, sech ( x ) = 2 e x + e − x \text{sech}(x)=\frac{2}{e^x+e^{-x}} sech(x)=ex+ex2
R R R的计算公式如下: R = 2 × a × r a n d − a (3) R=2×a×rand-a\tag{3} R=2×a×randa(3) a = 2 × ( 1 − t M a x _ i t e r ) (4) a=2×(1-\frac{t}{Max\_iter})\tag{4} a=2×(1Max_itert)(4)其中, r a n d rand rand [ 0 , 1 ] [0,1] [0,1]之间的随机数; M a x _ i t e r Max\_iter Max_iter表示最大迭代次数。

(2)饥饿角色

对搜索中个体的饥饿特征进行了数学模拟。
W 1 W_1 W1的计算如式(5)所示: W 1 i = { h u n g r y ( i ) ⋅ N S H u n g r y × r 4 , r 3 < l 1 ,    r 3 > l (5) W_1^i=\begin{dcases}hungry(i)\cdot\frac{N}{SHungry}×r_4,\quad r_3l \end{dcases}\tag{5} W1i=hungry(i)SHungryN×r4,r3<l1,r3>l(5)W_2的计算如式(6)所示: W 2 i = ( 1 − exp ⁡ ( − ∣ h u n g r y ( i ) − S H u n r g y ∣ ) ) × r 5 × 2 (6) W_2^i=\left(1-\exp(-|hungry(i)-SHunrgy|)\right)×r_5×2\tag{6} W2i=(1exp(hungry(i)SHunrgy))×r5×2(6)其中, h u n g r y hungry hungry表示每个个体的饥饿程度; N N N表示所有个体的总数; S H u n g r y SHungry SHungry表示所有个体饥饿程度的总和,即 s u m ( h u n g r y ) sum(hungry) sum(hungry) r 3 , r 4 r_3,r_4 r3,r4 r 5 r_5 r5均为 [ 0 , 1 ] [0,1] [0,1]之间的随机数。
h u n g r y ( i ) hungry(i) hungry(i)计算如下: h u n g r y ( i ) = { 0 , A l l F i t n e s s ( i ) = = B F h u n g r y ( i ) + H , A l l F i t n e s s ( i ) ≠ B F (7) hungry(i)=\begin{dcases}0,\quad\quad\quad\quad\quad\quad\quad AllFitness(i)==BF\\hungry(i)+H,\quad AllFitness(i)≠BF\end{dcases}\tag{7} hungry(i)={0,AllFitness(i)==BFhungry(i)+H,AllFitness(i)=BF(7)其中, A l l F i t n e s s ( i ) AllFitness(i) AllFitness(i)表示每个个体的适应度值。
H H H计算如下: T H = F ( i ) − B F W F − B F × r 6 × 2 × ( U B − L B ) (8) TH=\frac{F(i)-BF}{WF-BF}×r_6×2×(UB-LB)\tag{8} TH=WFBFF(i)BF×r6×2×(UBLB)(8) H = { L H × ( 1 + r ) , T H < L H T H ,   T H ≥ L H (9) H=\begin{dcases}LH×(1+r),\quad THH={LH×(1+r),TH<LHTH,THLH(9)其中, r 6 r_6 r6 [ 0 , 1 ] [0,1] [0,1]之间的随机数; F ( i ) F(i) F(i)为每个个体的适应度值; B F BF BF为当前最优适应度值; W F WF WF为当前最差适应度值; U B UB UB L B LB LB分别表示搜索空间的上限和下限; L H LH LH H H H的下界。

2、算法伪代码

HGS算法伪代码如图1所示。
基于饥饿博弈搜索算法的函数寻优算法_第1张图片

图1 HGS算法伪代码

二、实验及分析

以文献[1]中的F1、F2(单峰函数/30维)、F9、F10(多峰函数/30维)、F16、F17(固定维度的多峰函数/2维)为例,将HGS算法分别与花授粉算法(FPA)、鲸鱼优化算法(WOA)、飞蛾火焰优化算法(MFO)、正弦余弦算法(SCA)以及灰狼优化算法(GWO)进行对比,设置种群规模为30,最大迭代次数为1000,每个算法独立运行30次。HGS中设置 l = 0.03 l=0.03 l=0.03 L H = 100 LH=100 LH=100
结果显示如下:
基于饥饿博弈搜索算法的函数寻优算法_第2张图片
基于饥饿博弈搜索算法的函数寻优算法_第3张图片
基于饥饿博弈搜索算法的函数寻优算法_第4张图片
基于饥饿博弈搜索算法的函数寻优算法_第5张图片
基于饥饿博弈搜索算法的函数寻优算法_第6张图片
基于饥饿博弈搜索算法的函数寻优算法_第7张图片

函数:F1
FPA:最差值: 0.37143,最优值:0.051982,平均值:0.17557,标准差:0.075872
WOA:最差值: 9.0799e-152,最优值:4.1248e-169,平均值:3.5901e-153,标准差:1.6578e-152
MFO:最差值: 20000,最优值:1.4307e-05,平均值:2666.6672,标准差:5208.3044
SCA:最差值: 0.21401,最优值:2.2612e-07,平均值:0.018106,标准差:0.053456
GWO:最差值: 1.7613e-58,最优值:1.0784e-61,平均值:2.9179e-59,标准差:4.5517e-59
HGS:最差值: 9.7144e-227,最优值:1.0951e-266,平均值:3.7625e-228,标准差:0
函数:F2
FPA:最差值: 0.67052,最优值:0.25951,平均值:0.43488,标准差:0.1091
WOA:最差值: 1.0844e-103,最优值:4.8097e-112,平均值:9.0573e-105,标准差:2.6323e-104
MFO:最差值: 80,最优值:0.00059191,平均值:38.6657,标准差:22.704
SCA:最差值: 0.0001082,最优值:4.5564e-08,平均值:9.7311e-06,标准差:2.0091e-05
GWO:最差值: 6.0477e-34,最优值:6.5351e-36,平均值:1.2765e-34,标准差:1.3477e-34
HGS:最差值: 1.7403e-116,最优值:1.4912e-142,平均值:9.8321e-118,标准差:3.4852e-117
函数:F9
FPA:最差值: 141.9644,最优值:82.7476,平均值:113.3436,标准差:12.5937
WOA:最差值: 5.6843e-14,最优值:0,平均值:1.8948e-15,标准差:1.0378e-14
MFO:最差值: 250.1599,最优值:104.5414,平均值:172.0961,标准差:33.5805
SCA:最差值: 116.2791,最优值:1.1251e-05,平均值:17.9381,标准差:27.6715
GWO:最差值: 7.5422,最优值:0,平均值:0.50163,标准差:1.6412
HGS:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F10
FPA:最差值: 15.3991,最优值:0.18265,平均值:5.3648,标准差:4.3423
WOA:最差值: 7.9936e-15,最优值:8.8818e-16,平均值:4.4409e-15,标准差:2.4685e-15
MFO:最差值: 19.9613,最优值:0.0018039,平均值:12.2932,标准差:7.8713
SCA:最差值: 20.3029,最优值:0.00012705,平均值:12.5608,标准差:9.6735
GWO:最差值: 2.2204e-14,最优值:1.1546e-14,平均值:1.6046e-14,标准差:2.7886e-15
HGS:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F16
FPA:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:6.3208e-16
WOA:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:2.7538e-11
MFO:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:6.7752e-16
SCA:最差值: -1.0315,最优值:-1.0316,平均值:-1.0316,标准差:1.8779e-05
GWO:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:6.6161e-09
HGS:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:6.7752e-16
函数:F17
FPA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0
WOA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:1.2986e-06
MFO:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0
SCA:最差值: 0.39984,最优值:0.39792,平均值:0.39853,标准差:0.00056102
GWO:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:2.133e-07
HGS:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0

结果表明,HGS算法具有更快的收敛速度、更高的收敛精度以及更好的寻优能力。

三、参考文献

[1] Yutao Yang, Huiling Chen, Ali Asghar Heidari, Amir H Gandomi. Hunger Games Search: Visions, Conception, Implementation, Deep Analysis, Perspectives, and Towards Performance Shifts[J]. Expert Systems with Applications, 2021, 177: 114864.

你可能感兴趣的:(matlab,最优化问题,matlab,探路者算法,金鹰优化算法)