zl程序教程

您现在的位置是:首页 >  后端

当前栏目

一种非线性动态自适应惯性权重PSO算法-附代码

算法代码 动态 一种 适应 权重 非线性 pso
2023-09-14 09:06:12 时间

一种非线性动态自适应惯性权重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) (t1) 代种群的适应度值标准 差之比值定义为进化离散度 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 (t1)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)T2t1)]1(8)

式 (8) 中, ω max  、 ω min  、 t 、 T max ⁡ \omega_{\text {max }} 、 \omega_{\text {min }} 、 t 、 T_{\max } ωmax ωmin tTmax 含义同式 (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代码