一、、基本概念
每个寻优的问题解都被想像成一只鸟,称为“粒子”。所有粒子都在一个D维空间进行搜索。

  • 所有的粒子都由一个fitness-function确定适应值以判断目前的位置好坏。
  • 每一个粒子必须赋予记忆功能,能记住所搜寻到的最佳位置。
  • 每一个粒子还有一个速度以决定飞行的距离和方向。这个速度根据它本身的飞行经验以及同伴的飞行经验进行动态调整。

二、基本公式
a. D维空间中,有m个粒子;
粒子ii位置:
xi=(xi1,xi2,…xiD)
xi=(xi1,xi2,…xiD)

粒子ii速度:
vi=(vi1,vi2,…viD),1≤i≤m,1≤d≤D
vi=(vi1,vi2,…viD),1≤i≤m,1≤d≤D

粒子ii经历过的历史最好位置:
pi=(pi1,pi2,…piD)
pi=(pi1,pi2,…piD)

群体内(或领域内)所有粒子所经历过的最好位置:
pg=(pg1,pg2,…pgD)
pg=(pg1,pg2,…pgD)

一般来说,粒子的位置和速度都是在连续的实数空间内进行取值。
b. 基本公式
vk+1iD=vkiD+c1r1(pkiD−xkiD)+pkgD−xkiD
viDk+1=viDk+c1r1(piDk−xiDk)+pgDk−xiDk

xk+1iD=xkiD+vk+1iD
xiDk+1=xiDk+viDk+1

其中,c1c1, c2c2 是学习因子和加速因子,r1r1, r2r2 取值范围是[0,1][0,1], 是该区间范围内的随机数,vmaxvmax是例子速度能达到的最大值

粒子群算法(PSO)基本原理相关推荐

  1. C语言实现粒子群算法(PSO)一

    C语言实现粒子群算法(PSO)一 最近在温习C语言,看的书是<C primer Plus>,忽然想起来以前在参加数学建模的时候,用过的一些智能算法,比如遗传算法.粒子群算法.蚁群算法等等. ...

  2. 粒子群算法(PSO)以及Matlab实现

    粒子群算法(PSO)以及Matlab实现 算法背景 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy ...

  3. 粒子群算法(PSO)的C++实现

    粒子群算法(PSO)的C++实现 粒子群算法(PSO----Particle Swarm Optimization)是常用的智能算法之一,它模拟了 鸟群觅食 行为,是一种具有随机性的 仿生算法 .PS ...

  4. 粒子群算法(PSO)Matlab实现(两种解法)

    粒子群算法(PSO) 用途:可以用于寻求最优解问题 生物机理:鸟群寻找湖泊 在函数中,有很多是无法求出最优解的 在这时,我们会采用软计算方法,而PSO算法,在软计算算法中有重要的地位: 好吧,这个仁者 ...

  5. 粒子群优化算法和python代码_Python编程实现粒子群算法(PSO)详解

    1 原理 粒子群算法是群智能一种,是基于对鸟群觅食行为的研究和模拟而来的.假设在鸟群觅食范围,只在一个地方有食物,所有鸟儿看不到食物(不知道食物的具体位置),但是能闻到食物的味道(能知道食物距离自己位 ...

  6. 【老生谈算法】标准粒子群算法(PSO)及其Matlab程序和常见改进算法——粒子群算法

    1.算法详解: 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]标准粒子群算法(PSO)及其Matlab程序和常见改进算法.docx 2 ...

  7. 粒子群算法(PSO)初识

    粒子群算法PSO是模拟群体智能所建立起来的一种优化算法,用于解决各种优化问题. 抽象问题实例化: 假设一群 鸟在觅食,只有一个地方有 食物,所有鸟儿都看不见食物(不知道食物的具体位置,知道了就不无需觅 ...

  8. Python编程实现粒子群算法(PSO)详解

    1 原理 粒子群算法是群智能一种,是基于对鸟群觅食行为的研究和模拟而来的.假设在鸟群觅食范围,只在一个地方有食物,所有鸟儿看不到食物(不知道食物的具体位置),但是能闻到食物的味道(能知道食物距离自己位 ...

  9. 【ELM预测】基于粒子群算法PSO优化极限学习机预测含Matlab源码

    1 模型 为了提高空气质量预测精度,提出一种基于粒子群算法优化极限学习机的空气质量预测模型.运用粒子群算法优化极限学习机的初始权值和偏置,在保证预测误差最小的情况下实现空气质量最优预测.选择平均绝对百 ...

最新文章

  1. 错误C4146的解决方法
  2. 数字图像处理经典论文汇总
  3. 开源是项“全民工程”,揭秘开源团队的管理运作
  4. linux下查看十六进制文件方法
  5. 动态规划——节点选择(蓝桥杯试题集)
  6. 终面后拿offer几率_20届网易校招失败后的经验(现已拿offer)
  7. thinkPHP 表单自动验证功能
  8. 从底层分析python中深拷贝和浅拷贝区别
  9. Cortex-M3 (NXP LPC1788)之IIS控制器
  10. latex关于的报错问题及表格排版问题
  11. 51单片机入门(第二讲)
  12. PHP怎么做斗地主,JavaScript实现斗地主游戏的思路_javascript技巧
  13. sql server作业实现数据同步
  14. 岁月温柔-13 妈妈担心回到山村里的大姨冻着
  15. linux系统内存dump机制介绍(一)--kdump
  16. 计算机wps系统的造字程序在哪里,Windows10系统自带造字程序在哪?位置介绍
  17. 我爬了链家青岛市北3000套二手房得出一个结论
  18. Linux下mysql 登录退出及常用命令
  19. Django 重写authenticate实现输入账号、邮箱、手机号登录验证
  20. 再谈区块链在积分领域的应用

热门文章

  1. left join和left semi join的联系和区别
  2. 20175208 实验一 Java开发环境的熟悉
  3. 手码万字-带你全面了解存储基础知识
  4. vue-admin websocket接收消息推送+语音提示(详细代码)
  5. 神奇的多项式求导矩阵与积分矩阵
  6. 求数组所有非空子序列的和
  7. pchip和spline区别
  8. Node如何去除短视频水印?
  9. 汇编中的串操作指令(MOVS,CMPS,SCAS,LODS,STOS)
  10. Linux无桌面环境下,实现USB的自动挂载/卸载