产生背景

粒子群优化(Particle Swarm Optimization, PSO)算法是由美国普渡大学的Kennedy和Eberhart于1995年提出,它的基本概念源于对鸟群觅食行为的研究。

设想这样一个场景:

一群鸟在随机搜寻食物,在这个区域里只有一块食物,所有的鸟都不知道食物在哪里,但是它们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢?
最简单有效的就是搜寻目前离食物最近的鸟的周围区域。

粒子群优化算法的基本原理

基本思想

将每个个体看作n维搜索空间中一个没有体积质量的粒子,在搜索空间中以一定的速度飞行,该速度决定粒子飞行的方向和距离。所有粒子有一个由优化函数决定的适应值。

基本原理

PSO初始化为一群随机粒子,然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解称为个体极值。另个一是整个种群目前找到的最优解,这个解称为全局极值。

算法定义

在n 维连续搜索空间中,对粒子群中的第i (i=1, 2, , m)个粒子进行定义:



第1部分是粒子在前一时刻的速度;
第2部分为个体“认知”分量,表示粒子本身的思考,将现有的位置和曾经经历过的最优位置相比。
第3部分是群体“社会(social)”分量,表示粒子间的信息共享与相互合作。

分别控制个体认知分量和群体社会分量相对贡献的学习率。
随机系数增加搜索方向的随机性和算法多样性。
基于学习率
Kennedy给出以下4种类型的PSO模型:



粒子群优化算法的流程:

(1)初始化每个粒子。在允许范围内随机设置每个粒子的初始位置和速度。
(2)评价每个粒子的适应度。计算每个粒子的目标函数。
(3)设置每个粒子的Pi。对每个粒子,将其适应度与其经 历过的最好位置Pi进行比较,如果优于Pi,则将其作为该粒子的最好位置Pi。
(4)设置全局最优值Pg。对每个粒子,将其适应度与群体经历过的最好位置Pg进行比较,如果优于Pg,则将其作为当前群体的最好位置Pg。
(5)更新粒子的速度和位置。根据式(6.20)更新粒子的速度和位置。
(6)检查终止条件。如果未达到设定条件(预设误差或者迭代的次数),则返回第(2)步。

粒子群优化算法流程图

粒子群优化算法的参数分析

PSO算法的参数


最大速度Vmax

权重因子

位置更新方程中各部分的影响





参数设置

粒子群优化算法应用领域

粒子群优化算法已在诸多领域得到应用,归纳如下:

(1)神经网络训练 (7)经济领域
(2)化工系统领域 (8)图像处理领域
(3)电力系统领域 (9)生物信息领域
(4)机械设计领域 (10)医学领域
(5)通讯领域 (11)运筹学领域
(6)机器人领域 ………….

粒子群优化算法求解车辆路径问题

车辆路径问题(VRP)的模型


编码与初始种群

实验结果

粒子群优化算法的各个参数设置如下:
种群规模:50
迭代次数:1000
c1的初始值为1,随迭代的进行,线性减小到0
C2=c3=1.4
Vmax<1000
优化结果及其与遗传算法的比较如表所示。
欢迎大家加我微信交流讨论(请备注csdn上添加)

粒子群优化算法及其应用相关推荐

  1. 改进粒子群优化算法(IWAPSO)的MATLAB源程序

    改进粒子群优化算法(IWAPSO)的MATLAB源程序 作者:aaron8967    主页:http://aaron8967.blog.51cto.com 说明:粒子群优化算法(Particle S ...

  2. 粒子群优化算法_每日论文19:粒子群优化算法综述

    每日论文 第十九篇 2020/07/27 摘要:粒子群优化 (PSO)算法是一种新兴的优化技术 ,其思想来源于人工生命和演化计算理论.PSO通过粒子追随自己找到的最好解和整个群的最好解来完成优化.该算 ...

  3. 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用

    粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...

  4. 2021-01-26 粒子群优化算法(PSO)以及Matlab实现

    粒子群优化算法(PSO)以及Matlab实现 1.粒子群算法 粒子群算法是一种智能优化算法.关于智能,个人理解,不过是在枚举法的基础上加上了一定的寻优机制.试想一下枚举法,假设问题的解空间很小,比如一 ...

  5. Python自定义:粒子群优化算法

    Python中的粒子群算法 例子算法又被称作飞鸟觅食算法,是一种常见的现代启发式优化算法.在Python中,处于不同的情况考虑,我们都可能使用到该算法.在这里我给出三种情况下的解决方案或者替代方案. ...

  6. 多目标粒子群优化算法_基于粒子群优化的投资组合优化研究

    原文链接: 基于粒子群优化的投资组合优化研究​tecdat.cn 我今年的研究课题是使用粒子群优化(PSO)的货币进位交易组合优化.在本文中,我将介绍投资组合优化并解释其重要性.其次,我将演示粒子群优 ...

  7. 粒子群优化算法(Particle Swarm Optimization)的 Matlab(R2018b)代码实现

    这里以 2D Michalewicz function 为对象来演示粒子群算法. 1.Michalewicz function 2.代码详解 2.1 画Michalewicz函数的网格图形 f=@(x ...

  8. 改进粒子群优化算法(PURPSO)的MATLAB源程序

    改进粒子群优化算法(PURPSO)的MATLAB源程序 作者:aaron8967    主页:http://aaron8967.blog.51cto.com 说明:粒子群优化算法(Particle S ...

  9. 粒子群优化算法(2)离散粒子群算法

    在上一篇博客 粒子群优化算法(1)中介绍了基本的粒子群算法,基本粒子群算法是基于连续空间(区间)进行搜索,然而在一些实际的工程应用中,我们的待求解的变量可能并不是历需的,而实一种离散型的变量.这就需要 ...

  10. 粒子群优化算法(1)

    背景: 粒子群优化算法起源于对鸟群觅食活动的分析.鸟群在觅食的时候通常会毫无征兆的聚拢,分散,以及改变飞行的轨迹,但是在不同个体之间会十分默契的保持距离.所以粒子群优化算法模拟鸟类觅食的过程,将待求解 ...

最新文章

  1. matlab 边缘光滑,如何使用matlab来平滑图片的边缘
  2. AIgorand的基本原理
  3. 4 weekend110的hive入门
  4. 使用layer的弹窗时,出现layer引入成功,触发成功,控制台无报错,但是页面无变化或者仅出现遮罩层的问题的解决思路
  5. ❤️今天,该让 python 上个热门❤️
  6. chrome谷歌浏览器截图
  7. GridView选中,编辑,取消,删除代码
  8. 为什么要使用McAfee Endpoint Security?
  9. 互动媒体技术专题2——多视角认识十二个“一” 技术预演与方案设计
  10. 在Mac下使用PanDownload完美下载BD云盘资源
  11. WireShark基本使用(7)第 7 章 高级
  12. 老男孩教育Python课程内容
  13. XML-BEANS compiled schema: Could not locate compiled schema
  14. 通信基础篇小项目-----简单网络画板的的实现
  15. manjaro i3wm社区版配置记录
  16. linux 右键没有终端,ubuntu鼠标右键没有打开终端选项解决方法
  17. python3项目源代码下载_GitHub 上适合新手的 Python 开源项目
  18. java线程和linux线程,【转】Java线程与Linux内核线程的映射关系
  19. Python程序设计题库——第二章
  20. 如何在visio中导入新下载的模具

热门文章

  1. 日本著名数学游戏专家中村义作教授提出这样一个问题:将2520个桔子分给六个儿子
  2. 电脑打印机print spooler服务总是自动停止的解决方法...
  3. 2019icpc计算机程序设计大赛,关于开展西安理工大学2019年程序设计竞赛暨ACM-ICPC大赛选拔赛的通知...
  4. 数字图像处理第三版学习笔记一
  5. Ucinet软件使用
  6. cadz轴归零命令_CAD的Z轴归零的插件分享
  7. dtw算法 c语言实现,DTW算法的python实现
  8. java课程设计学生信息管理系统。
  9. 怎样修改计算机系统8,win8改win7,教您win8怎么改为win7系统
  10. Unity3D脚本编程——使用C#语言开发跨平台游戏