分数阶粒子群算法
摘要:通过引入粒子进化因子,利用粒子的状态信息自适应更改分数阶次 α ,通过速度增量为零来更新粒子速度、位置值;结合传统粒子群粒子更新公式,采用粒子对称分布的改进粒子群算法。
1.粒子群优化算法
基础粒子群算法的具体原理参考网络资料
2. 改进粒子群算法
2.1 分数阶粒子群算法
为防止传统粒子群算法陷入局部最优、早熟收敛等问题的发生,同时为了加快算法的收敛速度,由于基于分数阶的学习训练算法很容易跳出局部极值点,且能克服基于一阶梯度的传统学习训练算法易陷入局部极值的缺点,本文将粒子群算法与分数阶微分相结合,通过粒子群粒子的速度、位置的重新组合来自适应调整速度导数的阶次 α 。并通过 对 粒 子 当 前 的 速 度 求 α 阶 导 数 来 更 新 其 速 度、位置值。
根据分数阶微分的 G − L \mathrm{G}-\mathrm{L} G−L 定义, 当信号持续 3 个单位即 n = 3 n=3 n=3 时, 根据分数阶微分的差值表达式 (9), 令当前时刻 导数为 0 , 即速度增量为零时求当前时刻速度, 如下式
d a v ( t ) d ( t ) α ≈ v ( t ) + ( − α ) v ( t − 1 ) + ( − α ) ( − α + 1 ) 2 v ( t − 2 ) + \frac{d^a v(t)}{d(t)^\alpha} \approx v(t)+(-\alpha) v(t-1)+\frac{(-\alpha)(-\alpha+1)}{2} v(t-2)+ d(t)αdav(t)≈v(t)+(−α)v(t−1)+2(−α)(−α+1)v(t−2)+ ( − α ) ( − α + 1 ) ( − α + 2 ) 6 v ( t − 3 ) = 0 ( 12 ) \frac{(-\alpha)(-\alpha+1)(-\alpha+2)}{6} v(t-3)=0 (12) 6(−α)(−α+1)(−α+2)v(t−3)=0(12)
可得
v ( t ) = ( α ) v ( t − 1 ) + ( α ) ( − α + 1 ) 2 v ( t − 2 ) + ( α ) ( − α + 1 ) ( − α + 2 ) 6 v ( t − 3 ) (13) v(t)=(\alpha) v(t-1)+\frac{(\alpha)(-\alpha+1)}{2} v(t-2)+\frac{(\alpha)(-\alpha+1)(-\alpha+2)}{6} v(t-3) \tag{13} v(t)=(α)v(t−1)+2(α)(−α+1)v(t−2)+6(α)(−α+1)(−α+2)v(t−3)(13)
设式 (10) 中 ω = 1 \omega=1 ω=1, 则粒子速度按下列公式更新
v ( t + 1 ) = α v ( t − 1 ) + 1 2 α ( 1 − α ) v ( t − 2 ) + 1 6 α ( 1 − α ) ( 2 − α ) v ( t − 3 ) + c 1 r 1 d ( p i d ( t ) − x i d ( t ) ) + c 2 r 2 d ( p g d ( t ) − x i d ( t ) ) (14) \begin{gathered} v(t+1)=\alpha v(t-1)+\frac{1}{2} \alpha(1-\alpha) v(t-2)+\frac{1}{6} \alpha(1-\alpha)(2-\alpha) v(t-3)+c_1 r_{1 d}\left(p_{i d}(t)-\right. \\ \left.x_{i d}(t)\right)+c_2 r_{2 d}\left(p_{g d}(t)-x_{i d}(t)\right) \end{gathered}\tag{14} v(t+1)=αv(t−1)+21α(1−α)v(t−2)+61α(1−α)(2−α)v(t−3)+c1r1d(pid(t)−xid(t))+c2r2d(pgd(t)−xid(t))(14)
其中, α \alpha α 为分数阶次。粒子位置按照式 (11) 进行不断调整 更新, 直到找到最佳位置。
由于本文分数阶粒子群算法的分数阶次 α \alpha α 采用的是自 适应参数调整机制, 通过引入进化因子 f f f, 利用粒子的位 置、速度状态来自适应改变分数阶次 α \alpha α 。对于粒子群算法中 的每个粒子i, 粒子到其它粒子的平均距离公式如下
d i x = 1 N − 1 ∑ j = 1 , j = i N ∑ k = 1 D ( x i k − x j k ) 2 (15) d_{i x}=\frac{1}{N-1} \sum_{j=1, j=i}^N \sqrt{\sum_{k=1}^D\left(x_{i k}-x_{j k}\right)^2} \tag{15} dix=N−11j=1,j=i∑Nk=1∑D(xik−xjk)2(15)
其中, N N N 和 D D D 分别为粒子群个数和空间维数。
在进化过程中, 进化因子 (evolutionary factor) f f f 决定 系统当前的进化状态, 其定义为
f = d g − d min d max − d min ∈ [ 0 , 1 ] (16) f=\frac{d_g-d_{\min }}{d_{\max }-d_{\min }} \in[0,1] \tag{16} f=dmax−dmindg−dmin∈[0,1](16)
其中, d g d_g dg 为全局最优位置到其它粒子的平均距离, d max d_{\max } dmax 和 d min d_{\min } dmin 为所有 d i x d_{i x} dix 中的最大值和最小值。
根据进化因子 f f f, 鉴于分数阶次 α \alpha α 在 [ 0.5 , 0.8 ] [0.5,0.8] [0.5,0.8] 范围 内算法能够获得吏快的收敛速度 [ 13 ] { }^{[13]} [13], 故提出 α \alpha α 的动态调整 等式如下, 此时的 α \alpha α 变化与迭代次数无关
α ( f ) = 1 / 2 e − 0.47 f ∈ [ 0.5 , 0.8 ] (17) \alpha(f)=1 / 2 e^{-0.47 f} \in[0.5,0.8] \tag{17} α(f)=1/2e−0.47f∈[0.5,0.8](17)
3.实验结果
4.参考文献
[1]魏晶茹,马瑜,夏瑞,蒋海波,周亭亭.基于分数阶粒子群的Otsu图像分割算法[J].计算机工程与设计,2017,38(12):3284-3290.DOI:10.16208/j.issn1000-7024.2017.12.017.