Python代码链接放文末。

本文参考了很多张军老师《计算智能》的第六章知识。

本文来源:https://blog.csdn.net/qq_44186838/article/details/109181453

粒子群优化算法

1.1 粒子群优化算法简介

粒子群优化算法(Particle Swarm Optimization,PSO)是进化计算的一个分支,是一种模拟自然界的生物活动的随机搜索算法。

PSO模拟了自然界鸟群捕食和鱼群捕食的过程。通过群体中的协作寻找到问题的全局最优解。它是1995年由美国学者Eberhart和Kennedy提出的,现在已经广泛应用于各种工程领域的优化问题之中。

1.1.1 思想来源

从动物界中的鸟群、兽群和鱼群等的迁移等群体活动而来。在群体活动中,群体中的每一个个体都会受益于所有成员在这个过程中所发现和累积的经验。

1.1.2 基本原理


以鸟群觅食为例,与粒子群优化算法作对比,如上。

在粒子群优化算法中,鸟群中的每个小鸟被称为“粒子”,且同小鸟一样,具有速度和位置。

通过随机产生一定数量的粒子(具体定多少数量后面会讲)作为问题搜索空间的有效解,然后进行迭代搜索,通过该问题对应的适应度函数确定粒子的适应值,得到优化结果。

那具体怎么迭代搜索呢?后面实例会具体讲到。

且这里记得有所谓的“粒子本身的历史最优解”和“群体的全局最优解”,这两个用来影响粒子的速度和下一个位置,借此求得最优解。

1.2.1 基本流程

来看一下PSO的算法步骤:
(1)初始化所有粒子,即给它们的速度和位置赋值,并将个体的历史最优pBest设为当前位置,群体中的最优个体作为当前的gBest。
(2)在每一代的进化中,计算各个粒子的适应度函数值。
(3)如果当前适应度函数值优于历史最优值,则更新pBest。
(4)如果当前适应度函数值优于全局历史最优值,则更新gBest。
(5)对每个粒子i的第d维的速度和位置分别按照公式6.1和公式6.2进行更新:


(6)判断是否达到了结束条件(具体怎么定义后面会提),否的话就转到(2)继续执行。

算法流程图和伪代码


1.2.2 应用举例

上面看不懂?

没关系,看了这个实例,保证你能理解最简单的PSO是如何实现的。



注意对于越界的位置,需要进行合法性调整,将超出定义范围的数值改成范围内的边界值。

1.3 粒子群优化算法的改进研究

粒子群优化算法的研究内容和改进方向


1.3.1 理论研究改进

年代久远,看看就成了。


1.3.2 拓扑结构改进

1.静态拓扑结构‘’

全局版本(Global Version PSO, GPSO)和局部版本(Local Version PSO, LPSO)两个主要范式。

两者主要区别在于社会网络结构的定义不同。

从全局和局部其实也不难看出,粒子在更新速度和位置的时候,前者使用到的是自身的历史最好位置pBest和整个群体中最好的位置gBest,而后者的话,每个粒子所处的“社会”不是整体,而是一个小的邻域。更新速度和位置时用到的除了自身最好的历史位置pBest外,还用到邻域中的最好位置lBest作为更新的向导。

不难发现,后者的多样性更好,在处理复杂的问题的时候,LPSO也会表现出更好的性能。

2.动态拓扑结构

由于即使是LPSO也很容易陷入局部最优的问题,而研究动态拓扑结构是希望能够通过在不同的进化阶段使用不同的拓扑结构,动态地改变算法的探索能力和开发能力,在保种群多样性和算法收敛性上取得动态的变化和平衡,以提高算法的整体性能。



3.其他拓扑结构

1.3.3 混合算法改进




1.3.4 离散版本改进

PSO是非常适合于连续领域问题优化的算法,且已经在此取得相当成功的应用。

离散版本改进将PSO运用到离散领域(组合优化)之中。

在众多的离散PSO改进版本中,二进制编码PSO和整数编码PSO是常见的两种形式。


1.4 相关应用

年代久远,看看就成。



1.5 参数设置



代码下载链接,有需要的请自行提取,不想hua前的朋友,可评论同我说,我会回复你,但可能会比较慢。祝好!

https://download.csdn.net/download/qq_44186838/62602814
智能优化算法大礼包

一文搞懂什么是粒子群优化算法(Particle Swarm Optimization,PSO)【附应用举例】相关推荐

  1. 白鹭群优化算法(Egret Swarm Optimization Algorithm)

    欢迎加入一同交流,QQ群:916165264 白鹭群优化算法(Egret Swarm Optimization Algorithm)是一种结合了雪白鹭(坐等策略,Sit-And-Wait Strate ...

  2. 【项目实战】Python实现用PSO粒子群优化算法对KMeans聚类模型进行优化项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取. 1.项目背景 粒子群优化算法(Particle Swarm optimizat ...

  3. 粒子群优化算法的寻优算法——非线性函数极值寻优Matlab

    粒子群算法的起源 1995年,受到鸟群觅食行为的规律性启发,James Kennedy和Russell Eberhart建立了一个简化算法模型,经过多年改进最终形成了粒子群优化算法(Particle ...

  4. 【计算智能】读书笔记 第六章节 粒子群优化算法

    文章目录 1. 算法简介 2. 算法基本流程 算法流程图 伪代码 3. 算法改进研究 3.1 算法理论研究的改进 3.2 算法拓扑结构的改进 3.2.1 静态拓扑结构的改进 3.2.2 动态拓扑结构的 ...

  5. pso解决tsp matlab,计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现.doc...

    计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现.doc 摘要:TSP是一个典型的NPC问题.本文首先介绍旅行商问题和粒子群优化算法的基本概念.然后构造一种基于交换子和交换序[1]概念 ...

  6. 粒子群优化算法 PSO

    文章目录 1.基本内容 1.1 概念 1.2 基本原理 1.3 基本步骤 2.代码分析 2.1 Rastrigrin()函数 2.2 Schaffer()函数 2.3 Griewank()函数 2.4 ...

  7. 【优化算法】粒子群优化算法

    粒子群优化算法 粒子群优化算法简介 粒子群优化算法原理 粒子群优化算法的数学描述 粒子群优化算法框架 PySwarms:Python中粒子群优化的研究工具包 PySwarms快速使用 示例:编写自己的 ...

  8. 粒子群优化算法实现寻找函数最值

    粒子群算法简介 粒子群优化(Particle Swarm Optimization, PSO),又称微粒群算法,是由J. Kennedy和R. C. Eberhart等于1995年开发的一种演化计算技 ...

  9. matlab粒子群优化算法工具箱,MATLAB粒子群优化算法(PSO)

    MATLAB粒子群优化算法(PSO) 一.介绍 粒子群优化算法(Particle Swarm Optimization Algorithm)是一种群智能算法,为了寻求全局最优.群体迭代,粒子在解空间追 ...

最新文章

  1. Pymol BioPython | PDB文件中氨基酸序列的提取
  2. linux lisp环境,Ubuntu下Common Lisp配置
  3. Go 语言 2019 调查报告发布(内含 Go 语言图谱下载)
  4. 设置Windows XP自动登录的两种方法
  5. GirlView的分页
  6. 音视频开发(6)---nginx视频服务器
  7. Framework学习(三)之PMS、AMS、WMS
  8. blur失焦方法会触发两次_教程 | ARAMIS光学测量系统散斑制作与光学应变测量方法...
  9. Blockchair首席开发者质疑闪电网络能够扩展比特币:可锁定大部分闪电网络的流动性来破坏闪电网络
  10. --num 与 num-- 的区别
  11. java 解析xml文件
  12. 图像处理1 高斯模糊
  13. SAP那些事-理论篇-5-SAP玩你还是你玩SAP
  14. 【9129】“移动媒体产品”的三个方向
  15. FT-TRN-BEG-C安装过程中出现move data process: -119 DAO350.dll错误
  16. 假设一个类,继承了父类并且实现了一个接口,然后父类和接口有一个同名的方法,那么此时会发生什么情况,编译会提示出错吗?如果不出错,那么这到底算是重写还是实现接口方法?
  17. 警惕感冒不仅会头痛脑热,还可能引发致盲性眼病
  18. thinkphp更新mysql数据库表_ThinkPHP 创建新表、创建数据库讲解
  19. 【JVM】垃圾回收机制及算法
  20. ls2k1000在linux3.10内核下的中断分析

热门文章

  1. 企业直播怎么是操作的
  2. 告诉你用Python赚钱的五种方法,闲余月赚1000~5000
  3. Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service
  4. 但是尚未从池中获取连接_解决报错“超时时间已到。超时时间已到,但是尚未从池中获取连接”的方案...
  5. 《袁老师访谈录》第六期 | 四位大咖:【对话四种类型创业者】
  6. Plant Simulation 2302 发布
  7. TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
  8. 费曼学习法:快速掌握新知识!
  9. 企业电脑屏幕监控:为何需要及如何选择适合的工具
  10. 老毛桃u盘安装原版win7系统详细教程