粒子群优化算法-PSO

粒子群优化算法是一种全局随机搜索算法。简写PSO(Particle Swarm Optimization)

其产生来源借助了鸟群的群体思想。

利用群算法思想进行迭代,逐步搜索得到全局(局部)最优解。

每一步迭代都会依据条件(是否优于之前全局最优位置)决定是否更新全局最优位置,并根据当前迭代步的最优位置及前一步的全局最优位置更新速度(v)及位置(x)。

$v_{i}^{(k+1)} = wv_{i}^{(k)} + c_1r_{i}^{(k)}(p_{i}^{(k)} - x_{i}^{(k)}) + c_2s_{i}^{(k)}(g_{i}^{(k)} - x_{i}^{(k)})$
$x_{i}^{(k+1)} = x_{i}^{(k)} + v_{i}^{(k+1)}$

$k$:表示迭代步数
$i$:表示种群中第$i$个粒子
$x_{i}$:表示种群中第$i$个粒子的位置,是一个$n$维向量,即空间位置
$r_{i},s_{i}$:表示$n$维随机向量,用于加入随机性改变位置,以达到全局搜索的目的
$c_1,c_2$:表示当前迭代步的最优位置与前一步全局最优位置的权重

以上便是PSO算法。

ps:个人有点小问题没太想得清楚,如果在n维空间中都随机向随机方向及步长进行搜索,效率高吗?会一直向最优的方向前进吗?待思考[20180716],偏导数?