图解粒子群优化算法(PSO)
PSO:particle swarm optimization
注:以下的鸟就是粒子。
总体思想
有若干只鸟xix_ixi,位置可能各不相同,但是每只鸟需要记录下自己的个体历史最优解pbestipbest_ipbesti,并分享给大家,在这些个体历史最优解中,记最优的那个为全局最优解gbestgbestgbest。然后,每只鸟都根据pbestipbest_ipbesti和gbestgbestgbest来调整自己的位置,其实就是希望在这两者的中间部分搜寻。
算法双要素
每只鸟都有一个位置xxx和速度vvv,其中vvv由pbestipbest_ipbesti和gbestgbestgbest决定,xxx由vvv决定。
1. 我们先说xxx如何由vvv决定。假设当前某只鸟的位置xxx和速度vvv如下:
则这只鸟的下一个位置为:
x=x+vx=x+vx=x+v
即:
2. 我们再说vvv如何由pbestipbest_ipbesti和gbestgbestgbest决定。假设当前某只鸟的位置xix_ixi、速度viv_ivi、该鸟的个体历史最优解pbestipbest_ipbesti,以及鸟群的全局最优解gbestgbestgbest如下。(注:xix_ixi等等三个也和viv_ivi一样,是一个向量,只是没显式地画出来而已。)
按照我们之前的思想,我们希望这只鸟既靠近pbestipbest_ipbesti又靠近gbestgbestgbest,那么综合一下,就是往他们的中间方向靠近。
即做两个向量差,如下:
然后这两个向量加权相加,比如y=0.1y1+0.2y2y=0.1y_1+0.2y_2y=0.1y1+0.2y2,随便你设置,假设我们相加后的yyy是这样的。
然后我们再进行viv_ivi的更新,即vi=vi+yv_i=v_i+yvi=vi+y。即根据向量的加法得到红色的新viv_ivi。
至此viv_ivi的更新完毕了,最后一步我们也一起做完吧。即xi=xi+vix_i=x_i+v_ixi=xi+vi。如下图,我们得到了新的粗蓝色新的xix_ixi。
总结
PSO算法的标准形式:
在每只鸟分享完信息之后,先按公式1更新速度(下面的3个向量相加和我们上面的图解一模一样),然后按照公式2更新位置。
其中:
这个解释一下,如果vi′=vi+yv_i^{'}=v_i+yvi′=vi+y,如果vi′v_i^{'}vi′的长度太大了,那么保留这个vi′v_i^{'}vi′的方向,但是截断其长度,使其为vmaxv_{max}vmax的长度。
扩展
标准的PSO算法是上述公式(3)和公式(2),因为其引入了惯性因子www,使得算法相对之前,更加灵活可变,成了标准。
上述其值较大,全局寻优能力强等等那里的分析,联系一下我们上面的图,向量相加那里,立马就能够理解了(全局寻优能力强就是迭代之后新的xix_ixi远远飞离现有的3个点:旧的xi,pbesti,gbestx_i,pbest_i,gbestxi,pbesti,gbest,反之,如果迭代之后很靠近这三个点,就是局部寻优)
参考:
https://blog.csdn.net/daaikuaichuan/article/details/81382794
图解粒子群优化算法(PSO)相关推荐
- 概率检索模型+模糊k近邻+粒子群优化算法(PSO)
1. 概率检索模型 文档属于"相关"类的概率与属于"不相关"类的概率的比值(也叫"优势比"). 显然,这个比值越大,代表该文档与查询的相关度 ...
- 【计算智能】——群体智能算法(蚁群优化算法ACO、粒子群优化算法PSO)
群体智能算法 与大多数基于梯度的优化算法不同,群体智能算法依靠的是概率搜索算法. 与梯度算法及传统演化算法相比优点: 没有集中控制约束,不会因为个体的故障影响整个问题的求解. 以非直接信息交流的方式确 ...
- 粒子群优化算法 PSO
文章目录 1.基本内容 1.1 概念 1.2 基本原理 1.3 基本步骤 2.代码分析 2.1 Rastrigrin()函数 2.2 Schaffer()函数 2.3 Griewank()函数 2.4 ...
- 【原理与代码讲解】粒子群优化算法 PSO(基础版)
0 前言 Gitee 代码地址: https://gitee.com/futurelqh/GA 粒子群优化算法(Particle Swarm Optimization,PSO),其思想源于对鸟群觅食过 ...
- 优化算法(四)——粒子群优化算法(PSO)
粒子群算法(Particle Swarm Optimization,PSO)是一种模仿鸟群.鱼群觅食行为发展起来的一种进化算法.其概念简单易于编程实现且运行效率高.参数相对较少,应用非常广泛.粒子群算 ...
- python特征选择pso_粒子群优化算法(PSO)之基于离散化的特征选择(FS)(三)
作者:Geppetto 前面我们介绍了特征选择(Feature Selection,FS)与离散化数据的重要性,总览的介绍了PSO在FS中的重要性和一些常用的方法,介绍了FS与离散化的背景,介绍本文所 ...
- 粒子群算法离散化各代表什么_粒子群优化算法(PSO)之基于离散化的特征选择(FS)(三)...
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识!也可以搜索号:磐创AI,关注我们的文章. 作者:Geppetto 前 ...
- matlab粒子群优化算法工具箱,MATLAB粒子群优化算法(PSO)
MATLAB粒子群优化算法(PSO) 一.介绍 粒子群优化算法(Particle Swarm Optimization Algorithm)是一种群智能算法,为了寻求全局最优.群体迭代,粒子在解空间追 ...
- PSO 粒子群优化算法 大整理
一.粒子群算法的概念 粒子群优化算法(PSO:Particle swarm optimization) 是一种进化计算技术(evolutionary computation).源于对鸟群捕食的行为 ...
最新文章
- IDEAWebstorm使用
- 基于java的InputStream.read(byte[] b,int off,int len)算法学习!
- 我们用最详细的方式解析Android消息机制的源码,经典好文
- 1,2 多维运动公式
- 科大星云诗社动态20210223
- FlexiBO:基于成本感知的深度神经网络多目标优化
- $arr[]=$v 把 $v 这个东西 放到 $arr[] 这个数组中
- Linux环境Elasticsearch6.xxx 之kibana可视化工具操作索引
- 土地利用覆被变化的概念_【能源+气候】生物质能碳捕集与封存技术在气候变化下的减排潜力...
- 【Unity项目实战】手把手教学:飞翔的小鸟(1)导入素材
- Wker_SQLTool注入工具(附源码)
- c语言看门狗的作用,看门狗定时器工作原理及作用
- mysql冒号_mysql语句中的冒号是什么意思?
- C++ limits头文件的用法(numeric_limits)
- 解决“error: failed to push some refs to ‘git@gitee.com:username/repo.git‘“
- (16)双目视觉的图像获取
- Golang 二叉树遍历
- 吴恩达老师,被曝靠「教书」实现首个IPO上市,Coursera估值50亿美元
- 产业区块链的“道”与“术”:区块链技术的价值解读
- 人脸识别实名认证在景区门禁系统中的应用
热门文章
- 损失函数约束类间不一致性
- 区块链论文: Bitcoin-NG: A Scalable Blockchain Protocol
- 专访@爱可可-爱生活:如何做好科学研究(干货满满)
- 独家 | 计算学习理论简介(附资源推荐)
- 原创 | 从智慧交通、智慧安防、智能电网三大应用场景看我国智慧城市建设现状...
- 学计算机哪家强?清华竟是2018全球第1!(附排名)
- 不忘初心,砥砺前行——写在数据院成立四周年之际
- 把命令行玩成“迷你谷歌”:可搜索、计算,还能翻译 | GitHub热榜
- 麻省理工学院韩松教授实验室招收科研实习生(可远程)
- ICCV 2021审稿结果出炉,这里有一份Rebuttal写作指南