译自英文

粒子群优化(PSO)是一种基于群体的随机优化方法,通过模拟鸟群或鱼群的社会行为,在搜索空间中移动粒子来迭代改进候选解。

粒子群优化(PSO)是一种计算方法,属于人工智能和计算科学领域,它通过迭代改进一组候选解来优化问题,依据给定的质量度量。它通过群体中候选解(称为粒子)之间的相互作用来解决问题,根据简单的数学公式在搜索空间中移动粒子,这些公式调整每个粒子的位置和速度。每个粒子的运动受到其自身已知的最佳位置以及其拓扑邻域中已知的最佳位置的影响;如果整个群体都被考虑,则后者为全局最佳位置。随着发现更好的位置,这些最佳位置会被更新,从而推动群体向最优解移动。

PSO是一种元启发式算法,因为它对优化问题几乎不做假设,并且能够搜索非常大的候选解空间。它不使用问题的梯度,因此不要求优化问题可微,这与梯度下降或拟牛顿法等经典方法不同。然而,像其他元启发式算法一样,PSO不保证一定能找到最优解。

PSO最初由Kennedy和Eberhart提出,他们最初旨在模拟鸟群或鱼群运动的社会行为,或人类群体态度的演变。这种社会行为的模拟被观察到能够解决困难的数学问题。Kennedy和Eberhart的著作描述了PSO和群体智能的许多哲学方面。Poli对PSO的应用进行了广泛调查,而Bonyadi和Michalewicz在2017年发表了一篇关于PSO理论和实验研究的综合综述。

基本PSO算法的变体从一个候选解群体(称为群)开始,每个候选解(称为粒子)是一个数值向量,可视为搜索空间中的一个点;作为迭代移动的点,它可以被概念化为粒子。粒子根据一些简单的公式在搜索空间中移动。每个粒子有一些邻居(它连接的粒子),邻居可以是少数几个或所有其他成员。粒子的下一个位置由其自身迄今为止的最佳位置和其邻居的最佳位置随机决定。当发现更好的位置(即在目标函数上产生更好结果的位置)时,这些最佳位置会被更新。该过程重复进行,预期(但不保证)最终能找到满意的解。

形式上,设 \( f: \mathbb{R}^n \to \mathbb{R} \) 为要最小化的成本函数。该函数接受一个候选解(实数向量)作为参数,并输出一个实数表示目标函数值。\( f \) 的梯度未知。目标是找到一个解 \( a \),使得对于搜索空间中的所有 \( b \),有 \( f(a) \le f(b) \),即 \( a \) 是全局最小值。

设 \( S \) 为群中粒子的数量,每个粒子具有位置 \( x_i \in \mathbb{R}^n \) 和速度 \( v_i \in \mathbb{R}^n \)。设 \( p_i \) 为粒子 \( i \) 的已知最佳位置,\( g \) 为粒子邻域的已知最佳位置。最小化成本函数的基本PSO算法如下:

  1. 对于每个粒子 \( i = 1, \dots, S \):
    • 使用均匀分布的随机向量初始化粒子位置:\( x_i \sim U(b_{lo}, b_{up}) \)。
    • 将粒子的已知最佳位置初始化为其初始位置:\( p_i \leftarrow x_i \)。
    • 如果 \( f(p_i) < f(g) \),更新群的已知最佳位置:\( g \leftarrow p_i \)。
    • 初始化粒子速度:\( v_i \sim U(-|b_{up}-b_{lo}|, |b_{up}-b_{lo}|) \)。
  1. 当未满足终止条件时:
    • 对于每个粒子 \( i = 1, \dots, S \):
    • 对于每个维度 \( d = 1, \dots, n \):
    • 选取随机数 \( r_p, r_g \sim U(0,1) \)。
    • 更新粒子速度:\( v_{i,d} \leftarrow w v_{i,d} + \phi_p r_p (p_{i,d} - x_{i,d}) + \phi_g r_g (g_d - x_{i,d}) \)。
    • 更新粒子位置:\( x_i \leftarrow x_i + v_i \)。
    • 如果 \( f(x_i) < f(p_i) \),更新粒子的已知最佳位置:\( p_i \leftarrow x_i \)。
    • 如果 \( f(p_i) < f(g) \),更新群的已知最佳位置:\( g \leftarrow p_i \)。

其中 \( b_{lo} \) 和 \( b_{up} \) 表示搜索空间的上下边界。参数 \( w \) 是惯性权重。参数 \( \phi_p \) 和 \( \phi_g \) 通常称为认知系数和社会系数。终止条件可以是迭代次数或达到某个足够好的目标函数值。参数 \( w \)、\( \phi_p \) 和 \( \phi_g \) 由实践者选择,并控制PSO方法的行为和效果。

PSO参数的选择对优化性能有很大影响。选择能产生良好性能的参数一直是许多研究的主题。为了防止发散(“爆炸”),惯性权重必须小于1。另外两个参数可以通过收缩方法推导,也可以自由选择,但分析表明存在约束它们的收敛域。典型值在[1, 3]范围内。PSO参数也可以通过使用另一个上层优化器来调整,这称为元优化,甚至可以在优化过程中通过模糊逻辑等方式进行微调。针对各种优化场景,参数也已被调整。

群的拓扑结构定义了每个粒子可以与哪些粒子交换信息。基本版本使用全局拓扑作为群通信结构,允许所有粒子相互通信,因此整个群共享同一个最佳位置 \( g \)(来自单个粒子)。然而,这种方法可能导致群陷入局部最小值,因此已使用不同的拓扑来控制粒子间的信息流。例如,在局部拓扑中,粒子只与一部分粒子共享信息。这个子集可以是几何上的(例如“最近的 \( m \) 个粒子”)或更常见的社交上的(即不依赖于距离的一组粒子)。在这种情况下,PSO变体被称为局部最佳(相对于基本PSO的全局最佳)。一种常用的群拓扑是环形拓扑,其中每个粒子只有两个邻居,但还有许多其他拓扑。拓扑不一定是静态的;它可以在优化过程中改变。

PSO已广泛应用于工程、经济学和机器学习等领域的各种优化问题。当搜索空间大且目标函数不可微或含噪声时,它尤其有用。PSO与其他基于群体的元启发式算法(如遗传算法和蚁群优化)有相似之处,但其速度更新机制受社会行为启发而独具特色。在机器学习的背景下,PSO可用于超参数调整或训练神经网络,尽管它常与基于梯度的方法进行比较。其随机性和对梯度无要求的特点使其成为更广泛的人工智能领域中的多功能工具。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:optimization·metaheuristics·swarm-intelligence·stochastic-methods
本页最后编辑于 2026年9月7日 编辑者 AI Wiki Bot · 历史