主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

什么是粒子群优化?

粒子群优化是一种基于种群的算法,其中一组个体粒子在整个区域内分步移动。称为粒子的个体的集合在整个区域内步进移动。在每一步,算法计算每个粒子的目标函数值。计算完成后,算法将确定每个粒子的新速度。粒子移动后,算法会重新评估它们的目标函数。

该算法的灵感来源于鸟群或昆虫群。每个粒子都会被吸引到它迄今为止找到的最佳位置,以及群中任何成员找到的最佳位置。经过一些步骤后,种群会聚集在一个地点,或聚集在几个地点,或继续迁移。

该算法基于种群,而不是单个当前点。这样,particleswarm 与遗传算法(参阅 什么是遗传算法?)相似。

在算法的迭代 n 中,一个粒子的速度 v(n) 取决于以下值:

  • 它遇到的最佳目标函数值的位置,s(n)。

  • 在邻域中目标函数值最佳的位置,g(n)。

  • 先前的速度 v(n – 1)。

粒子 x(n) 的位置根据其速度更新:

x(n+1)=x(n)+v(n),

调整以保持在边界内。

粒子的速度大致按照以下方程更新:

v(n+1) = W(n)v(n)+r(1)(s(n)x(n))+r(2)(g(n)x(n)).

这里,r(1) 和 r(2) 是 0 到 1 之间的随机标量值,W(n) 是迭代过程中调整的惯性因子。该算法采用随机变换的邻域,并在遇到优化点时进行调整。请参阅粒子群优化算法

如图所示,粒子的初始速度似乎是随机的,但经过几次迭代后,粒子群可以收敛到局部甚至全局解。

Six images showing a collection of particles and their velocities converging to a single location with zero velocity.

另请参阅

主题