粒子群优化(PSO)是一种计算方法,通过模拟群体(如鸟群)的集体行为来解决优化问题。它使用一个粒子群体,其中每个粒子代表搜索空间中的一个潜在解决方案。每个粒子都有一个位置(一组参数)和一个引导其移动的速度。粒子通过根据自身已知的最佳位置(个人最佳位置,或pbest)以及群体中任何粒子找到的最佳位置(全局最佳位置,或gbest)调整其速度来探索搜索空间。经过多次迭代,粒子群会收敛到搜索空间的最佳区域。
在每次迭代过程中,粒子使用两个关键方程式更新其速度和位置。速度更新结合了三个组成部分:惯性(粒子当前的方向)、认知影响(对pbest的吸引力)和社会影响(对gbest的吸引力)。例如,在优化函数(如 f(x, y) = x^2 + y^2)时,粒子的位置可以是 ((x, y)),其速度决定了它如何朝着最小值 (0,0) 移动。速度方程为: [v_{new} = w \cdot v_{current} + c_1 \cdot rand() \cdot (pbest - x) + c_2 \cdot rand() \cdot (gbest - x)] 这里,(w) 是一个惯性权重,(c_1) 和 (c_2) 控制个体和群体行为之间的平衡,而 (rand()) 添加了随机性。然后,位置更新为 (x_{new} = x_{current} + v_{new})。此过程重复进行,直到满足停止条件(例如,最大迭代次数)。
PSO 对于具有不可微或复杂目标函数的问题特别有用。例如,开发人员可以使用它来优化机器学习模型中的超参数或校准传感器网络。一个关键优势是它的简单性 - 实现 PSO 只需要基本的线性代数运算和一些需要调整的参数(例如,群体大小,(c_1),(c_2))。但是,性能取决于参数选择:高惯性权重鼓励探索,而较低的值侧重于利用。开发人员经常试验这些设置以平衡收敛速度和解决方案质量。尽管 PSO 具有随机性,但其灵活性使其成为各种优化任务的实用工具。