粒子群算法-基础知识
1 前言
这篇文章是对网友在文章的下的提问,做出的解答。
2 问题描述
粒子群算法相关的基础知识。
3 粒子群算法的简介
粒子群算法(particle swarmoptimization,PSO)由Kennedy和Eberhart在1995年提出,该算法对于Hepper的模拟鸟群(鱼群)的模型进行修正,以使粒子能够飞向解空间,并在最好解处降落,从而得到了粒子群优化算法。
PSO的优势在于简单,容易实现,无需梯度信息,参数少,特别是其天然的实数编码特点特别适合于处理实优化问题。同时又有深刻的智能背景,既适合科学研究,又特别适合工程应用。
4 应用场景
我们举一个应用场景:一群飞鸟在一个区域内寻找着一块食物,鸟儿不知道食物的具体位置,只知道自己与食物间的距离。如何最快的找到食物呢?那就是搜索目前距离食物最近的鸟儿周围的区域。
现在将每一只鸟儿当作一个粒子,在一个n维的空间中搜索食物,每一个粒子具有速度(v)和位置(x)两个属性。
PSO初始化为一群随机的粒子,通过不断地迭代找到最优解,每一次迭代都会根据该粒子自己目前找的最优位置(pbest)和整个粒子群目前找到的最优(gbest)来更新自己的位置和速度。
PSO基础逻辑:
基本PSO公式:
vi+1=w∗vi+c1∗rand1∗(pbesti−xi)+c2∗rand2∗(gbesti−xi)
xi+1= xi+ vi+1
w—惯性权重,一般来说取1。
rand1,rand2—(1,2)之间的随机数。
c1,c2—学习因子,一般取2。
pbesti ,gbesti—某个粒子第i维最优位置,整个粒子群第i维最优位置。
注意:每一个粒子的每一个维度都需要使用上面的基本PSO公式更新自己的位置和速度。
编写代码时我们还需要numpy(用于适应度公式的计算) ,random(用于生成rand1,rand2两个随机数),matplotlib.pyplot(用于绘制图表)掌握这三个第三方库的基础知识。
实习编辑:李欣容
稿件来源:深度学习与文旅应用实验室(DLETA)
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的