求解大规模优化问题的改进鲸鱼优化算法
作者:互联网
文章目录
一、理论基础
1、鲸鱼优化算法
请参考这里。
2、改进鲸鱼优化(IWOA)算法
(1)基于对立学习的种群初始化
WOA算法在产生初始种群个体时通常采用随机方法,然而,随机方法所产生的初始群体不能保证其多样性,不能有效地提取搜索空间的有用信息,从而在一定程度上会影响算法的搜索效率。
对立学习(opposition-based learning, OBL)策略是近年来智能计算领域出现的一种新技术,目前已在PSO算法、DE算法等群体智能优化算法中得到了成功的应用。因此,本文将对立学习策略嵌入到WOA算法中进行种群初始化。
定义1 对立点(opposite point)。假设在
[
l
,
u
]
[l,u]
[l,u]上存在数
x
x
x,则
x
x
x的对立点定义为
x
′
=
l
+
u
−
x
x'=l+u-x
x′=l+u−x。将对立点的定义扩展到
d
d
d维空间,设
p
=
(
x
1
,
x
2
,
⋯
,
x
d
)
p=(x_1,x_2,\cdots,x_d)
p=(x1,x2,⋯,xd)为
d
d
d维空间中的一个点,其中
x
i
∈
[
l
i
,
u
i
]
,
i
=
1
,
2
,
⋯
,
d
x_i\in[l_i,u_i],\,i=1,2,\cdots,d
xi∈[li,ui],i=1,2,⋯,d,则其对立点为
p
′
=
(
x
1
′
,
x
2
′
,
⋯
,
x
d
′
)
p'=(x_1',x_2',\cdots,x_d')
p′=(x1′,x2′,⋯,xd′),其中
x
i
′
=
l
i
+
u
i
−
x
i
x_i'=l_i+u_i-x_i
xi′=li+ui−xi。
根据上述定义,利用对立学习策略产生初始群体的具体步骤如算法1所示。
(2)非线性变化收敛因子
在设计收敛因子 a a a时,应考虑在搜索前期以较小的值随迭代次数增大而递增,当增大到一个较大值后,再快速递减到一个较小值,最后,以较慢的速度再递增。鉴于此,本文提出一种随进化迭代次数而非线性变化的收敛因子更新公式: a = ( a i n i t i a l − a f i n a l ) + 1 − t / t max 1 − μ ⋅ t / t max (1) a=(a_{initial}-a_{final})+\frac{1-t/t_{\max}}{1-\mu\cdot t/t_{\max}}\tag{1} a=(ainitial−afinal)+1−μ⋅t/tmax1−t/tmax(1)其中, a i n i t i a l a_{initial} ainitial和 a f i n a l a_{final} afinal分别为收敛因子 a a a的初始值和终止值 , μ > 0 \mu>0 μ>0称为非线性调节系数, t t t为当前迭代次数, t max t_{\max} tmax为最大迭代次数。
(3)多样性变异操作
为了减少WOA算法出现早熟收敛现象的概率,本文对当前最优鲸鱼个体执行多样性变异操作,其步骤如下:
假设某个体
X
i
=
(
x
i
1
,
x
i
2
,
⋯
,
x
i
d
)
X_i=(x_{i1},x_{i2},\cdots,x_{id})
Xi=(xi1,xi2,⋯,xid),以概率
1
/
d
1/d
1/d随机从个体
X
i
X_i
Xi中选取一个元素
x
k
(
k
=
1
,
2
,
⋯
,
d
)
x_k(k=1,2,\cdots,d)
xk(k=1,2,⋯,d),然后在
[
l
i
,
u
i
]
[l_i,u_i]
[li,ui]范围内随机产生一个实数替代个体
X
i
X_i
Xi中的元素
x
i
k
x_{ik}
xik,从而产生一个新的个体
X
i
′
=
(
x
i
1
′
,
x
i
2
′
,
⋯
,
x
i
d
′
)
X_i'=(x_{i1}',x_{i2}',\cdots,x_{id}')
Xi′=(xi1′,xi2′,⋯,xid′)。多样性变异操作为:
X
i
′
=
{
l
i
+
λ
⋅
(
u
i
−
l
i
)
,
i
=
=
k
X
i
,
o
t
h
e
r
w
i
s
e
(2)
X_i'=\begin{dcases}l_i+\lambda\cdot(u_i-l_i),\quad i==k\\X_i,\quad\quad\quad\quad\quad\,\,\,\,\, otherwise\end{dcases}\tag{2}
Xi′={li+λ⋅(ui−li),i==kXi,otherwise(2)其中,
l
i
l_i
li和
u
i
u_i
ui分别为变量
x
i
x_i
xi的上界和下界,
λ
∈
[
0
,
1
]
\lambda\in[0,1]
λ∈[0,1]为随机数。
(4)IWOA算法步骤
综上所述,本文提出的IWOA算法步骤如算法2所示。
二、数值实验及分析
将本文提出的IWOA算法与基本的WOA算法进行比较,设置种群规模为30,最大迭代次数为500,每个算法独立运行30次。以文献[1]中表1所列的F1和F13(200/500/1000维)为例,结果显示如下:
函数:F1, 维数:d=200
WOA:最差值: 5.0103e-68, 最优值: 5.9476e-86, 平均值: 1.6893e-69, 标准差: 9.1441e-69, 秩和检验: 3.0199e-11
IWOA:最差值: 3.395e-109, 最优值: 1.9278e-125, 平均值: 1.4162e-110, 标准差: 6.337e-110, 秩和检验: 1
函数:F1, 维数:d=500
WOA:最差值: 4.1537e-67, 最优值: 8.018e-86, 平均值: 1.3862e-68, 标准差: 7.5834e-68, 秩和检验: 3.0199e-11
IWOA:最差值: 7.0128e-111, 最优值: 2.3582e-127, 平均值: 3.9579e-112, 标准差: 1.3709e-111, 秩和检验: 1
函数:F1, 维数:d=1000
WOA:最差值: 2.1951e-66, 最优值: 2.8106e-81, 平均值: 7.3216e-68, 标准差: 4.0076e-67, 秩和检验: 3.0199e-11
IWOA:最差值: 1.6056e-108, 最优值: 3.3474e-125, 平均值: 5.6455e-110, 标准差: 2.9282e-109, 秩和检验: 1
函数:F13, 维数:d=200
WOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
IWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F13, 维数:d=500
WOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
IWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F13, 维数:d=1000
WOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
IWOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
结果表明,IWOA在求解精度和收敛速度方面明显优于其他对比算法。
三、参考文献
[1] 龙文, 蔡绍洪, 焦建军, 唐明珠, 伍铁斌. 求解大规模优化问题的改进鲸鱼优化算法[J]. 系统工程理论与实践, 2017, 37(11): 2983-2994.
标签:IWOA,优化,算法,标准差,鲸鱼,差值,最优,WOA 来源: https://blog.csdn.net/weixin_43821559/article/details/122155355