粒子群优化算法(PSO)
一.惯性权重
1.惯性权重
控制粒子先前速度对当前速度的影响程度
在PSO算法中,速度更新公式为
其中:
是惯性权重
是粒子i在时间t的速度
是学习因子
是[0,1]范围内的随机数
是粒子i的历史最佳位置
是全局最佳位置
是粒子i在时间t的位置
2.惯性权重的作用
- 探索与开发的平衡:较大的
值有利于全局探索(探索新区域);较小的
值有利于局部开发(精细搜索当前区域)
- 收敛性能:适当的
值可以改善算法的性能;不适当的
值可能导致早熟收敛或者无法收敛
3.惯性权重的设置
有很多方法,最常用的策略是随着迭代次数线性递减惯性权重
其数学表达式为:
其中:
是第t次迭代的惯性权重
是初始惯性权重(通常0.9~1.2)
是最终惯性权重(通常0.4~0.6)
t是当前迭代次数
是最大迭代次数
这样设计的数学表达式可以早期阶段(探索阶段)较大的惯性权重使得粒子保持较大的速度,使粒子可以快速探索整个搜索空间,避免过早陷入局部最优,增强算法的全局搜索能力;而在后期阶段(开发阶段)较小的惯性权重使粒子速度减慢,粒子能够在有希望的领域进行精细搜索,提高算法的局部搜索能力和收敛精度;同时线性递减提供了探索到开发的平滑过渡,避免了搜索的突然变化,使算法更加稳定
二.速度更新
1.惯性部分
是惯性部分,这一部分代表了粒子对当前运动状态的 ”记忆“或”惯性“
其作用是保持粒子运动的连续性,避免运动轨迹过于随机;同时平衡探索与开发,较大的促进探索,较小的
促进开发
2.认知部分
是认知部分,这一部分代表了粒子对自身经验的认知
是粒子当前位置与其个体历史最佳位置之间的向量差
是认知系数,控制粒子向自身经验学习的程度
是随机数,引入随机性以避免确定性行为
其作用是
使粒子向自己曾经找到的最佳位置移动
保持种群的多样性,避免所有粒子过早收敛到同一区域
通过随机因子r1r1,确保即使在同一位置,不同粒子的行为也有所不同
3.社会部分
是社会部分
这一部分代表了粒子对社会信息的"学习"
是粒子当前位置与群体全局最佳位置之间的向量差
是社会系数,控制粒子向群体经验学习的程度
是随机数,引入随机性以避免确定性行为
其作用是:
使粒子向群体中找到的最佳位置移动
促进信息共享和协作,加速收敛到有希望的区域
通过随机因子r2r2,确保社会学习不是完全确定性的
三.位置更新
1.公式
其中是粒子i在时间t+1时的速度
2.理解
可以理解为物理学中的位移公式
位移 = 当前位置 + 速度 × 时间
在PSO中,时间步长通常设为1,因此简化为:
新位置 = 当前位置 + 速度
3.为什么要更新位置
- 位置更新使粒子可以在搜索空间中移动,这是算法能够找到最优解的基础
- 位置更新可以将速度信息转化为实际的搜索行为。速度方向决定了粒子的移动方向和距离,位置更新将这种转换为实际的位置变化
- 实现信息共享。通过位置更新,粒子能够解决个体历史最佳位置(pbest),解决全局最佳位置(gbest),实现个体经验和群体知识的结合
维持群种多样性。保持群种多样性,避免早熟收敛;平衡探索和开发的不同需求
四.其他的一些相关概念
1.收敛
指的是算法经过多次迭代后,其解逐渐接近并稳定在某个最优解(可能是全局最优或局部最优)的过程。当算法收敛时,解的改进变得非常小或者停止改进,可以认为算法已经找到了一个满意的解
对于最小化问题,收敛可以表示为
其中是第t次迭代的最佳适应度,
是全局最优适应度
可以将收敛类比为:
爬山过程:当你接近山顶时,每一步的爬升高度越来越小
降温过程:温度逐渐降低直至达到环境温度
学习过程:学习曲线逐渐平缓,进步越来越小
2.早熟收敛
也称过早收敛,指的是优化算法过早的停止搜索,陷入一个局部最优解而不是全局最优解的情况。在这种情况下,算法认为它已经找到了全局最优解,但实际上还有更好的解未被发现
早熟收敛的原因
种群多样性丧失:所有粒子都聚集在一个小区域内
参数设置不当:惯性权重过小,学习因子过大等
问题特性:多峰函数中存在许多局部最优解
搜索空间限制:边界处理不当导致搜索受限
早熟收敛的识别特征
适应度过早稳定:适应度值在早期迭代中就停止显著改进
粒子聚集:所有粒子位置非常接近
速度接近零:粒子速度过早减小到接近零
无法找到已知最优解:算法结果明显差于已知的全局最优解
4.搜索空间
优化问题中所有可能解决方案的集合,是算法进行搜索的整个区域。它定义了问题的解的范围、维度和约束条件,是优化算法工作的”舞台“
其中搜索空间的维度由决策变量的个数决定
每个维度都有其取值范围,称为边界
搜索空间的类型可以是离散的、连续的或者混合的(连续搜索空间中变量可以在范围内取任何实数值,离散搜索空间变量只能取特定的离散值,混合搜索空间同时包含离散和连续变量,约束搜索空间是包含约束条件的搜索空间)
5.为什么需要初始化粒子位置
- 建立搜索起点
- 影响收敛速度。好的初始化可以显著加快收敛速度
- 避免早熟收敛
- 提高找到全局最优的概率
6.适应度
适应度是优化算法中用于评估方案的数值指标,它量化了一个解相对于目标问题的优劣程度,是优化算法进行选择和决策的基础
在粒子群优化算法中,每一个粒子代表了一个潜在的解决方案,而适应度函数评估这个解决方案的质量,算法会根据适应度值决定如何更新粒子的位置和速度
适应度的数学表达通常是目标函数的映射。对于最小化问题,适应度值越小越好;对于最大化问题,适应度值越大越好