当前位置: 首页 > news >正文

粒子群优化算法(PSO)

一.惯性权重

1.惯性权重

控制粒子先前速度对当前速度的影响程度

在PSO算法中,速度更新公式

V_{i}(t+1) = w *V _{i}(t) + c_{1} *r _{1} * (pbest_{i} - x_{i}(t)) + c_{2} *r _{2} * (gbest_{i} - x_{i}(t))

其中:

w是惯性权重

V_{i}(t)是粒子i在时间t的速度   

c_{1},c_{2}是学习因子

r_{1},r_{2}是[0,1]范围内的随机数

pbest_{i}是粒子i的历史最佳位置

gbest_{i}是全局最佳位置

x_{i}(t)是粒子i在时间t的位置

2.惯性权重的作用

  • 探索与开发的平衡:较大的w值有利于全局探索(探索新区域);较小的w值有利于局部开发(精细搜索当前区域)
  • 收敛性能:适当的w值可以改善算法的性能;不适当的w值可能导致早熟收敛或者无法收敛

3.惯性权重的设置

有很多方法,最常用的策略是随着迭代次数线性递减惯性权重

其数学表达式为:

w_{t} = w_{max} - \frac{w_{max} - w_{min}} {t_{max}} * t

其中:

w_{t}是第t次迭代的惯性权重

w_{max}是初始惯性权重(通常0.9~1.2)

w_{min}是最终惯性权重(通常0.4~0.6)

t是当前迭代次数

t_{max}是最大迭代次数

这样设计的数学表达式可以早期阶段(探索阶段)较大的惯性权重使得粒子保持较大的速度,使粒子可以快速探索整个搜索空间,避免过早陷入局部最优,增强算法的全局搜索能力;而在后期阶段(开发阶段)较小的惯性权重使粒子速度减慢,粒子能够在有希望的领域进行精细搜索,提高算法的局部搜索能力和收敛精度;同时线性递减提供了探索到开发的平滑过渡,避免了搜索的突然变化,使算法更加稳定

二.速度更新

1.惯性部分

w *V _{i}(t)是惯性部分,这一部分代表了粒子对当前运动状态的 ”记忆“或”惯性“

其作用是保持粒子运动的连续性,避免运动轨迹过于随机;同时平衡探索与开发,较大的w促进探索,较小的w促进开发

2.认知部分

c_{1} *r _{1} * (pbest_{i} - x_{i}(t))是认知部分,这一部分代表了粒子对自身经验的认知

pbest_{i} - x_{i}(t)是粒子当前位置与其个体历史最佳位置之间的向量差

c_{1}​ 是认知系数,控制粒子向自身经验学习的程度

r_{1}是随机数,引入随机性以避免确定性行为

其作用是

  • 使粒子向自己曾经找到的最佳位置移动

  • 保持种群的多样性,避免所有粒子过早收敛到同一区域

  • 通过随机因子r1r1​,确保即使在同一位置,不同粒子的行为也有所不同

3.社会部分

c_{2} *r _{2} * (gbest_{i} - x_{i}(t))是社会部分

  • 这一部分代表了粒子对社会信息的"学习"

  • gbest_{i} - x_{i}(t) 是粒子当前位置与群体全局最佳位置之间的向量差

  • c_{2}是社会系数,控制粒子向群体经验学习的程度

  • r_{2} 是随机数,引入随机性以避免确定性行为

其作用是:

  • 使粒子向群体中找到的最佳位置移动

  • 促进信息共享和协作,加速收敛到有希望的区域

  • 通过随机因子r2r2​,确保社会学习不是完全确定性的

三.位置更新

1.公式

x_{i}(t+1) = x_{i}(t) +V_{i}(t+1)

其中V_{i}(t+1)是粒子i在时间t+1时的速度

2.理解

可以理解为物理学中的位移公式

位移 = 当前位置 + 速度 × 时间

在PSO中,时间步长通常设为1,因此简化为:

新位置 = 当前位置 + 速度

3.为什么要更新位置

  • 位置更新使粒子可以在搜索空间中移动,这是算法能够找到最优解的基础
  • 位置更新可以将速度信息转化为实际的搜索行为。速度方向决定了粒子的移动方向和距离,位置更新将这种转换为实际的位置变化
  • 实现信息共享。通过位置更新,粒子能够解决个体历史最佳位置(pbest),解决全局最佳位置(gbest),实现个体经验和群体知识的结合
  • 维持群种多样性。保持群种多样性,避免早熟收敛;平衡探索和开发的不同需求

四.其他的一些相关概念

1.收敛

指的是算法经过多次迭代后,其解逐渐接近并稳定在某个最优解(可能是全局最优或局部最优)的过程。当算法收敛时,解的改进变得非常小或者停止改进,可以认为算法已经找到了一个满意的解

对于最小化问题,收敛可以表示为  \lim_{t \to \infty }f(x_{t}) = f^{*}

其中f(x_{t})是第t次迭代的最佳适应度,f^{*}是全局最优适应度

可以将收敛类比为:

  1. 爬山过程:当你接近山顶时,每一步的爬升高度越来越小

  2. 降温过程:温度逐渐降低直至达到环境温度

  3. 学习过程:学习曲线逐渐平缓,进步越来越小

2.早熟收敛

也称过早收敛,指的是优化算法过早的停止搜索,陷入一个局部最优解而不是全局最优解的情况。在这种情况下,算法认为它已经找到了全局最优解,但实际上还有更好的解未被发现

早熟收敛的原因

  1. 种群多样性丧失:所有粒子都聚集在一个小区域内

  2. 参数设置不当:惯性权重过小,学习因子过大等

  3. 问题特性:多峰函数中存在许多局部最优解

  4. 搜索空间限制:边界处理不当导致搜索受限

早熟收敛的识别特征

  1. 适应度过早稳定:适应度值在早期迭代中就停止显著改进

  2. 粒子聚集:所有粒子位置非常接近

  3. 速度接近零:粒子速度过早减小到接近零

  4. 无法找到已知最优解:算法结果明显差于已知的全局最优解

4.搜索空间

优化问题中所有可能解决方案的集合,是算法进行搜索的整个区域。它定义了问题的解的范围、维度和约束条件,是优化算法工作的”舞台“

其中搜索空间的维度由决策变量的个数决定

每个维度都有其取值范围,称为边界

搜索空间的类型可以是离散的、连续的或者混合的(连续搜索空间中变量可以在范围内取任何实数值,离散搜索空间变量只能取特定的离散值,混合搜索空间同时包含离散和连续变量,约束搜索空间是包含约束条件的搜索空间)

5.为什么需要初始化粒子位置

  • 建立搜索起点
  • 影响收敛速度。好的初始化可以显著加快收敛速度
  • 避免早熟收敛
  • 提高找到全局最优的概率

6.适应度

适应度是优化算法中用于评估方案的数值指标,它量化了一个解相对于目标问题的优劣程度,是优化算法进行选择和决策的基础

在粒子群优化算法中,每一个粒子代表了一个潜在的解决方案,而适应度函数评估这个解决方案的质量,算法会根据适应度值决定如何更新粒子的位置和速度

适应度的数学表达通常是目标函数的映射。对于最小化问题,适应度值越小越好;对于最大化问题,适应度值越大越好

http://www.dtcms.com/a/358568.html

相关文章:

  • vscode terminal远程连接linux服务器GUI图形界面
  • Linux/UNIX系统编程手册笔记:文件I/O、进程和内存分配
  • Ferris Wheel (贪心 | 双指针)
  • 【MogDB】在刚发布的银河麒麟v11上安装MogDB
  • 微电网调度(风、光、储能、电网交互)(MatlabPython代码实现)
  • open webui源码分析13-模型管理
  • Python生成免安装exe
  • 承上启下的JDK13安装步骤及下载(附小白详细教程)
  • Transformer朴素采样时,生成 T 个 token 需要的 FLOPs 计算推导过程
  • sunset: 1渗透测试
  • 《HM-RAG: Hierarchical Multi-Agent Multimodal Retrieval Augmented Generation》
  • Java中使用正则表达式的正确打开方式
  • 《微服务架构从故障频发到自愈可控的实战突围方案》
  • C++抽象类
  • Photoshop - Ps 编辑图像
  • 在PowerPoint和WPS演示让蝴蝶一直跳8字舞
  • 干掉抽取壳!FART 自动化脱壳框架与 Execute 脱壳点解析
  • 迷你电脑用到什么型号的RJ45网口
  • 【系列08】端侧AI:构建与部署高效的本地化AI模型 第7章:架构设计与高效算子
  • 文件夹和文件一键加密,保护你的隐私
  • 计算机算术8-浮点加法
  • EVidenceModeler v2.1 安装与使用--生信工具58
  • 开发者效率白皮书:工具选型与使用方法论
  • 使用 JavaScript 构建 RAG(检索增强生成)库:原理与实现
  • 【Redisson 加锁源码解析】
  • 不使用if else ,实现石头剪刀布
  • 大数据在UI前端的应用深化研究:用户行为数据的跨平台关联分析
  • 思科ISR4300系列端口限速
  • 面试专栏
  • [光学原理与应用-333]:ZEMAX - 序列模式的设计过程