一种非线性动态自适应惯性权重PSO算法-附代码
一种非线性动态自适应惯性权重PSO算法
摘要:传统的时变惯性权重粒子群优化算法对于求解一般的全局最优问题具有良好的效果,而对于复杂高维的优化问题易陷入局部收敛、存在早熟等缺点。针对以上存在的缺点,提出了种群进化离散度的概念,并考虑Sigmoid函数在线性与非线性之间较好的平衡性能,给出一种非线性动态自适应惯性权重的粒子群优化算法。该算法充分考虑进化过程中种群粒子之间进化差异,自适应地赋予不同的惯性权重因子,满足粒子群优化算法在不同进化时期对全局探索和局部开发能力的需求。
1.粒子群优化算法
基础粒子群算法的具体原理参考网络资料
2. 改进粒子群算法
2.1 改进的动态自适应惯性权重 PSO 算法
在 PSO 算法初期, 粒子种群中的个体模式集中在适应度 值较低的个体上, 粒子速度的更新主要由
w
×
v
\mathrm{w} \times \mathrm{v}
w×v 所决定的, 若 采用较低的惯性权重, 种群很难在整个空间 “探索”。进化后 期, 个体模式朝高适应度的个体集中, 此时粒子的速度也快 速降低, 若一直采用低惯性权重, 种群的 “开发”能力有限, 存 在早熟收敛, 无法跳出局部极值。因此, 设计动态自适应惯 性权重因子的基本思想是应满足在算法进化前期主要对搜 索空间进行探索以期尽快达到较优区域; 在迭代后期主要对 较优区域进行开发以期尽快找到最优解 。
为描述种群进化整体适应度值的变化, 给出了进化离散 度的定义, 将第
t
\mathrm{t}
t 代种群与第
(
t
−
1
)
(\mathrm{t}-1)
(t−1) 代种群的适应度值标准 差之比值定义为进化离散度
k
(
t
)
\mathrm{k}(\mathrm{t})
k(t) :
{
k
(
t
)
=
1
,
t
=
1
k
(
t
)
=
StdFit
(
t
)
StdFit
(
t
−
1
)
,
t
>
1
(6)
\left\{\begin{array}{l} k(t)=1 \quad, t=1 \\ k(t)=\frac{\operatorname{StdFit}(t)}{\text { StdFit }(t-1)}, t>1 \end{array}\right.\tag{6}
{k(t)=1,t=1k(t)= StdFit (t−1)StdFit(t),t>1(6)
在神经网络中常用 Sigmoid函数来构造神经元激活函 数, 其定义为
S
(
x
)
=
1
1
+
exp
(
−
x
)
(7)
S(x)=\frac{1}{1+\exp (-x)}\tag{7}
S(x)=1+exp(−x)1(7)
联合进化离散度
k
(
t
)
\mathrm{k}(\mathrm{t})
k(t) 和 Sigmoid 函数, 给出一种称之为 非线性动态自适应惯性权重因子 (DAIW) 计算公式, 即
ω
(
t
)
=
ω
max
+
(
ω
min
−
ω
max
)
1
1
+
exp
[
−
10
b
(
2
t
k
(
t
)
⋅
T
−
1
)
]
(8)
\omega(t)=\omega_{\max }+\left(\omega_{\min }-\omega_{\max }\right) \frac{1}{1+\exp \left[-10 b\left(\frac{2 t}{\mathrm{k}(\mathrm{t}) \cdot T}-1\right)\right]} \tag{8}
ω(t)=ωmax+(ωmin−ωmax)1+exp[−10b(k(t)⋅T2t−1)]1(8)
式 (8) 中, ω max 、 ω min 、 t 、 T max \omega_{\text {max }} 、 \omega_{\text {min }} 、 t 、 T_{\max } ωmax 、ωmin 、t、Tmax 含义同式 (3), k ( t ) k(t) k(t) 为种群进化离 散度参数, b b b 为阻尼因子, 一般取值为 [ 0 , 1 ] [0,1] [0,1] 。
3.实验结果
4.参考文献
[1]王生亮,刘根友.一种非线性动态自适应惯性权重PSO算法[J].计算机仿真,2021,38(04):249-253+451.
5.Matlab代码
6.Python代码
相关文章
- Java实现 蓝桥杯VIP 算法提高 统计单词数
- Java实现 蓝桥杯VIP 算法提高 产生数
- 风控算法相关
- XAI之ALE:基于titanic泰坦尼克数据集对RF算法利用ALE累积局部效应图可视化算法进而实现模型可解释性案例
- DL之RetinaNet:基于RetinaNet算法(keras框架)利用resnet50_coco数据集(.h5文件)实现目标检测
- Java 地下迷宫·算法·(ACM/蓝桥杯)·递归解法
- 【路径优化】基于改进的RRT算法的全局路径规划(Matlab代码实现)
- 基于混合VNS(变邻域搜索算法)的PSO(粒子群优化算法)的任务分配问题(Matlab代码实现)
- 基于蜻蜓优化算法的配电网重构求解(Python代码实现)【IEEE123节点算例】
- 基于麻雀算法改进的LSTM分类算法-附代码
- 智能优化算法:平衡优化器算法 -附代码
- 智能优化算法:风驱动优化算法-附代码
- 混合模拟退火和教与学的鸽群优化算法-附代码
- 具有动态自适应学习机制的教与学优化算法-附代码
- 基于逐维反向学习的动态适应布谷鸟算法-附代码
- 收敛因子和黄金正弦指引机制的蝴蝶优化算法-附代码
- 基于变因子加权学习与邻代维度交叉策略的改进乌鸦算法 -附代码
- 【数据结构与算法】用 golang 实现 LSM Tree 代码
- (转载)算法面试题
- 混合灰狼和布谷鸟搜索优化算法(Matlab完整代码实现)
- 【鲁棒性、不确定性】基于交替方向乘法器(ADMM)算法的动态积分二次约束的鲁棒输出-反馈综合问题研究(Matlab代码实现)
- 基于典型相关分析的故障检测和过程监控算法研究(Matlab代码实现)
- matlab图像处理:一个提取缝隙的图像处理算法