粒子群算法(PSO)基本原理
一、、基本概念
每个寻优的问题解都被想像成一只鸟,称为“粒子”。所有粒子都在一个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)基本原理相关推荐
- C语言实现粒子群算法(PSO)一
C语言实现粒子群算法(PSO)一 最近在温习C语言,看的书是<C primer Plus>,忽然想起来以前在参加数学建模的时候,用过的一些智能算法,比如遗传算法.粒子群算法.蚁群算法等等. ...
- 粒子群算法(PSO)以及Matlab实现
粒子群算法(PSO)以及Matlab实现 算法背景 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy ...
- 粒子群算法(PSO)的C++实现
粒子群算法(PSO)的C++实现 粒子群算法(PSO----Particle Swarm Optimization)是常用的智能算法之一,它模拟了 鸟群觅食 行为,是一种具有随机性的 仿生算法 .PS ...
- 粒子群算法(PSO)Matlab实现(两种解法)
粒子群算法(PSO) 用途:可以用于寻求最优解问题 生物机理:鸟群寻找湖泊 在函数中,有很多是无法求出最优解的 在这时,我们会采用软计算方法,而PSO算法,在软计算算法中有重要的地位: 好吧,这个仁者 ...
- 粒子群优化算法和python代码_Python编程实现粒子群算法(PSO)详解
1 原理 粒子群算法是群智能一种,是基于对鸟群觅食行为的研究和模拟而来的.假设在鸟群觅食范围,只在一个地方有食物,所有鸟儿看不到食物(不知道食物的具体位置),但是能闻到食物的味道(能知道食物距离自己位 ...
- 【老生谈算法】标准粒子群算法(PSO)及其Matlab程序和常见改进算法——粒子群算法
1.算法详解: 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]标准粒子群算法(PSO)及其Matlab程序和常见改进算法.docx 2 ...
- 粒子群算法(PSO)初识
粒子群算法PSO是模拟群体智能所建立起来的一种优化算法,用于解决各种优化问题. 抽象问题实例化: 假设一群 鸟在觅食,只有一个地方有 食物,所有鸟儿都看不见食物(不知道食物的具体位置,知道了就不无需觅 ...
- Python编程实现粒子群算法(PSO)详解
1 原理 粒子群算法是群智能一种,是基于对鸟群觅食行为的研究和模拟而来的.假设在鸟群觅食范围,只在一个地方有食物,所有鸟儿看不到食物(不知道食物的具体位置),但是能闻到食物的味道(能知道食物距离自己位 ...
- 【ELM预测】基于粒子群算法PSO优化极限学习机预测含Matlab源码
1 模型 为了提高空气质量预测精度,提出一种基于粒子群算法优化极限学习机的空气质量预测模型.运用粒子群算法优化极限学习机的初始权值和偏置,在保证预测误差最小的情况下实现空气质量最优预测.选择平均绝对百 ...
最新文章
- 错误C4146的解决方法
- 数字图像处理经典论文汇总
- 开源是项“全民工程”,揭秘开源团队的管理运作
- linux下查看十六进制文件方法
- 动态规划——节点选择(蓝桥杯试题集)
- 终面后拿offer几率_20届网易校招失败后的经验(现已拿offer)
- thinkPHP 表单自动验证功能
- 从底层分析python中深拷贝和浅拷贝区别
- Cortex-M3 (NXP LPC1788)之IIS控制器
- latex关于的报错问题及表格排版问题
- 51单片机入门(第二讲)
- PHP怎么做斗地主,JavaScript实现斗地主游戏的思路_javascript技巧
- sql server作业实现数据同步
- 岁月温柔-13 妈妈担心回到山村里的大姨冻着
- linux系统内存dump机制介绍(一)--kdump
- 计算机wps系统的造字程序在哪里,Windows10系统自带造字程序在哪?位置介绍
- 我爬了链家青岛市北3000套二手房得出一个结论
- Linux下mysql 登录退出及常用命令
- Django 重写authenticate实现输入账号、邮箱、手机号登录验证
- 再谈区块链在积分领域的应用