粒子群优化(Particle Swarm Optimization, PSO)是一种基于群体智能的随机优化算法,模拟鸟群、鱼群的群体觅食行为,通过个体间的信息共享和协作在解空间中寻找最优解。
在自然界中,鸟群觅食会表现出两个核心特征:
-
社会信息共享: 单只鸟不知道食物(最优解)在哪里,但会关注附近哪些鸟发现了更好的食物源,并向其靠拢。
-
个体经验记忆: 每只鸟也会记住自己曾经找到过的、最好的食物位置,并倾向于返回或在其附近探索。
PSO的对应机制:
-
粒子(Particle): 算法中的每个“粒子”模拟一只鸟(或一条鱼),代表优化问题的一个潜在解。粒子在解空间(搜索空间)中“飞行”。
-
位置(Position): 粒子的当前位置对应一个具体的解(例如,
[x, y]坐标可能代表一个工程设计参数)。 -
速度(Velocity): 粒子的飞行速度,决定了它下一步将飞向哪里,即解的更新方向和步长。
-
个体最优(pBest): 每个粒子会记住自己在整个飞行过程中找到的历史最佳位置。这模仿了“个体经验记忆”。
-
全局最优(gBest): 整个粒子群会共享信息,共同知道迄今为止所有粒子发现过的全局最佳位置。这模仿了“社会信息共享”中最优个体的引领。
速度更新公式: 新速度 = 惯性权重 * 旧速度 + 认知系数 * 随机数 * (个体最佳位置 - 当前位置) + 社会系数 * 随机数 * (全局最佳位置 - 当前位置)位置更新公式: 新位置 = 当前位置 + 新速度
惯性权重 * 旧速度: 代表粒子的运动惯性,使其有保持原有搜索方向和趋势的倾向。这模拟了生物运动的连续性。
认知部分:认知系数 * 随机数 * (个体最佳位置 - 当前位置): 这是向个体历史最佳位置学习的驱动力。粒子被自己的成功经验所吸引,驱使它在自己的“经验宝地”附近进行更精细的探索。这模仿了“返回曾经找到过好食物的地方”。
社会部分:社会系数 * 随机数 * (全局最佳位置 - 当前位置): 这是向群体中最佳个体学习的驱动力。所有粒子都会受到当前找到最优解的粒子的吸引,向它靠拢。这直接模仿了鸟群中个体看到有同伴找到好食物后,集体飞向该处的行为。
一、 核心原理
1. 基本思想
2. 核心更新公式
(1)速度更新公式
(2)位置更新公式








