粒子群算法

简介

粒子群算法

位置更新

\[ v_i^d = wv_i^d + c_1 r_1 (p_i^d - x_i^d) + c_2 r_2 (p_g^d - x_i^d) \ , \]

\[ x_i^d = x_i^d + \alpha v_i^d \]

假设在一个D维的目标搜索空间中,有 m 个粒子组成一群体

其中,第 i 个粒子(i = 1,2, ...,m) 位置表示为 \(X_i = (x_i^1, x_i^2, ..., x_i^D)\), 即第 i 个在D维搜索空间中的位置时 \(X_i\)

公式解析

\(v_i^d = (v_i^1, v_i^2, ..., v_i^D), \ v_i^d \in [-v_{max}^d, v_{max}^d]\) : 第d维空间 第i个体 当前速度,若某时刻粒子在某维速度 \(v_i^d\) 更新后超过该维允许最大速度 \(v_{max}^d\),则当前时刻该维速度被限制在 \(v_{max}^d\) ,即速度赋值为 \(v_{max}^d\)

\(p_i^d = (p_i^1, p_i^2, ..., p_i^D)\) : 第d维空间 第i个体 经过的最好位置

\(p_g^d = (p_g^1, p_g^2, ..., p_g^D)\) : 第d维空间 整个群体所有个体 经过的最好位置

\(x_i^d = (x_i^1, x_i^2, ..., x_i^D)\) : 第d维空间 第i个体 当前位置

\(w\) : 惯性因子,非负数

\(\alpha\) : 约束因子,目的:控制速度的权重

\(v_{max}^d = (v_{max}^1, v_{max}^2, ..., v_{max}^D)\) : 第d维空间 允许最大速度

\(c_1, c_2\) : 加速常数,非负常数

\(r_1, r_2\) : \([0, 1]\) 内随机数

在基本粒子群算法中,

粒子数 \(m\) 、惯性因子 \(w\)、最大飞翔速度 \(v_{max}\) 和 加速常数 \(c_1\)\(c_2\) 等几个参数对算法寻优性能的影响非常显著

步骤

Q&A

补充

参考