一种随机调整控制参数的鲸鱼优化算法
一种随机调整控制参数的鲸鱼优化算法
文章目录
摘要:针对标准鲸鱼优化算法在处理复杂优化问题时出现搜索精度低和易出现早熟收敛等缺点,提出一种随机调整控制参数的改进鲸鱼优化算法(EWOA)。受粒子群优化算法中惯性权重的启发,利用随机分布的方式调整控制参数,以平衡鲸鱼优化算法的全局搜索和局部搜索能力。对当前最优个体执行服从正态分布的变异扰动,以避免算法出现早熟收敛现象。此外,采取佳点集方法替代随机方法产生初始个体以提高算法的全局收敛速度。
1.鲸鱼优化算法
基础鲸鱼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107559167
2. 改进鲸鱼优化算法
2.1 佳点集方法初始化
文献 [13] 指出, 种群初始化在群体智能优化算 法中显得尤为重要, 原因在于它影响着算法的解精 度和收玫速度。由于对问题的全局最优解没有任何 先验知识的前提下, 一般采用随机方法生成初始种 群, 然而, 随机方法生成的初始群体不能保证能有效 地提取解空间的有用信息, 从而在一定程度上会影 响算法的求解效率。
佳点集是一种能均匀取点的、有效的实验方法, 与随机方法相比, 利用佳点集方法所选取的点能均 匀地分布在该对象中。为了使初始种群个体尽可能 表征解空间的信息, 本文采用佳点集方法进行种群 初始化, 其具体步骤如算法 1 所示。
for
i
=
1
to
N
do
for
j
=
1
to
d
do
p
=
2
d
+
3
r
(
j
)
=
2
cos
(
2
π
j
/
p
)
X
i
j
=
l
i
j
+
m
o
d
(
r
(
j
)
i
,
1
)
(
u
i
j
−
l
i
j
)
end for
end for
\begin{aligned} &\text { for } i=1 \text { to } N \text { do }\\ &\text { for } j=1 \text { to } d \text { do }\\ &p=2 d+3\\ &r(j)=2 \cos (2 \pi j / p)\\ &X_{i}^{j}=l_{i}^{j}+\bmod (r(j) i, 1)\left(u_{i}^{j}-l_{i}^{j}\right)\\ &\text { end for }\\ &\text { end for } \end{aligned}
for i=1 to N do for j=1 to d do p=2d+3r(j)=2cos(2πj/p)Xij=lij+mod(r(j)i,1)(uij−lij) end for end for
2.2 随机调整控制参数策略
控制参数
a
\boldsymbol{a}
a 若设定为服从某种分布的随机数, 利用随机变量的特性调整控制参数, 有利于算法跳 出局部最优 ; 若在最优个体附近, 则随机分布控制参 数能产生相对较小的值, 这样有利于加快算法的收 玫速度。原因在于随机性使得控制参数既能在进化 初期有机会取得较大或较小的值, 又能在进化后期 取得较小或较大的值。基于上述分析, 本文提出一 种随机分布调整控制参数策略, 即
a
(
t
)
=
(
a
max
−
a
min
)
rand
(
)
+
σrandn
(
)
(7)
\boldsymbol{a}(t)=\left(\boldsymbol{a}_{\max }-\boldsymbol{a}_{\text {min }}\right) \text { rand }()+\operatorname{\sigma randn}()\tag{7}
a(t)=(amax−amin ) rand ()+σrandn()(7)
式 (7) 中,
a
max
\boldsymbol{a}_{\text {max }}
amax 和
a
min
\boldsymbol{a}_{\text {min }}
amin 分别为控制参数
a
\boldsymbol{a}
a 的最大值和 最小值,
rand
(
)
\operatorname{rand}(\mathrm{)}
rand() 为
[
0
,
1
]
[0,1]
[0,1] 均匀分布的随机数,
randn
(
)
\operatorname{randn}()
randn() 为正态分布的随机数,
σ
\sigma
σ (方差) 用来度量 随机变量收玫因子
a
a
a 与其数学期望(即均值)之间 的偏离程度, 是为了控制取值中的控制参数误差, 使 控制参数有利于向期望控制参数方向进化。由 式 (7) 可知, 控制参数
a
a
a 在进化过程中随机变化, 从 而协调 WOA 算法的探索和开发能力。
2.3正态变异算子
在 WOA 算法进化后期, 群体中所有个体均向 最优个体区域靠拢, 导致群体多样性下降, 易陷入早 熟收敛, 这也是群体智能优化算法的固有特点。为 了有效地避免算法陷入局部最优, 引入变异算子是 一种常见的方式。
正态变异来源于正态分布(也称高斯分布)。 若随机变量
σ
\sigma
σ 服从一个数学期望为
μ
\mu
μ 、方差为
σ
2
\sigma^{2}
σ2 的 正态分布, 记为
N
(
μ
,
σ
2
)
N\left(\mu, \sigma^{2}\right)
N(μ,σ2) 。当
σ
=
1
、
μ
=
0
\sigma=1 、 \mu=0
σ=1、μ=0 时为标 准正态分布。其概率密度函数为
f
(
x
)
=
1
2
π
σ
exp
[
−
(
x
−
μ
)
/
2
σ
2
]
(8)
f(x)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left[-(x-\mu) / 2 \sigma^{2}\right] \tag{8}
f(x)=2πσ1exp[−(x−μ)/2σ2](8)
文献 [14]已经证明正态分布具有较好的局部 搜索能力。因此, 本文引入一个服从正态分布的随 机扰动项, 对当前最优个体产生扰动变异, 就可以使 得鲸鱼个体进入解空间的其他区域进行搜索, 扩大 搜索范围, 提高群体多样性, 从而避免算法陷入局部 最优,其定义为
X
best
j
=
X
best
j
+
N
(
0
,
1
)
X
best
j
(9)
X_{\text {best }}^{j}=X_{\text {best }}^{j}+N(0,1) X_{\text {best }}^{j} \tag{9}
Xbest j=Xbest j+N(0,1)Xbest j(9)
式 (9) 中,
X
best
j
X_{\text {best }}^{j}
Xbest j 为当前最优个体的第
j
j
j 维,
N
(
0
,
1
)
N(0,1)
N(0,1) 为服从均值为 0 , 方差为 1 的标准正态分布。
3.实验结果
4.参考文献
[1]钟明辉,龙文.一种随机调整控制参数的鲸鱼优化算法[J].科学技术与工程,2017,17(12):68-73.
5.Matlab代码
6.Python代码
相关文章
- pso粒子群优化算法_粒子群算法优化神经网络
- 常见算法时间复杂度
- 人工智能:智能优化算法
- 优化算法——模拟退火算法
- 遗传算法优化bp神经网络matlab代码_神经网络进化算法
- AVX图像算法优化系列一: 初步接触AVX。
- Python冒泡排序算法及其优化「建议收藏」
- 联邦元学习算法Per-FedAvg的PyTorch实现
- MD5算法应用
- 前端leetcde算法之--堆
- C++ 不知算法系列之初识动态规划算法思想
- C++ 数学与算法系列之认识格雷码
- 排序算法比较
- 一文学透Crane DSP预测算法
- 三维声技术在赛事直播中的应用,TWS耳机中音频技术落地实践,通话降噪算法落地应用及挑战
- 顺序表应用1:多余元素删除之移位算法(SDUT 3324)
- 模型调参与算法优化技巧实战,AI工程师必备一课
- MySQL索引优化:实现更高效的查询算法(mysql索引算法)
- 宜远智能CEO吴博:医学影像的数据标注、算法方法与算力优化
- 优化Redis集群连接的新算法(Redis集群连接算法)
- 基于Redis的路由算法优化实现(redis路由算法)
- 稳健运算Redis贪心算法实现优化(redis贪心算法)
- Redis实现自适应删除算法优化性能(redis自适应删除算法)
- [视频]MIT设计无人机算法 可在不坠机情况下找到绕过障碍物的最快路线
- 使用PHP实现二分查找算法代码分享
- Java递归算法的使用分析