粒子群算法
来源:互联网 发布:钓鱼岛实际控制权知乎 编辑:程序博客网 时间:2024/06/05 20:47
一、粒子群算法的概述
粒子群算法(PSO)属于群智能算法的一种,是通过模拟鸟群捕食行为设计的。假设区域里就只有一块食物(即通常优化问题中所讲的最优解),鸟群的任务是找到这个食物源。鸟群在整个搜寻的过程中,通过相互传递各自的信息,让其他的鸟知道自己的位置,通过这样的协作,来判断自己找到的是不是最优解,同时也将最优解的信息传递给整个鸟群,最终,整个鸟群都能聚集在食物源周围,即我们所说的找到了最优解,即问题收敛。
二、粒子群算法的流程
粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解来调整自己的速度和位置。粒子群算法的思想相对比较简单,主要分为:1、初始化粒子群;2、评价粒子,即计算适应值;3、寻找个体极值;4、寻找全局最优解;5、修改粒子的速度和位置。下面是程序的流程图:
具体实现步骤
1.初始化
首先,我们需要设置最大的速度区间,防止超出最大的区间。位置信息即为整个搜索空间,我们在速度区间和搜索空间上随机初始化速度和位置。设置群体规模。
2.个体极值和全局最优解设置
个体极值为每个粒子找到的历史上最优的位置信息,并从这些个体历史最优解中找到一个全局最优解,并与历史最优解比较,选出最佳的作为当前的历史最优解。
3.更新速度和位置
更新公式为:
其中,称为惯性因子,和称为加速常数,一般取。表示区间上的随机数。表示第个变量的个体极值的第维。表示全局最优解的第维。
4.终止条件
有两种终止条件可以选择,一是最大代数:;二是相邻两代之间的偏差在一个指定的范围内即停止。我们在实验中选择第一种。
三、实验
我们选择的测试函数是:Griewank。其基本形式如下:
图像为:
(Griewank函数图像)
在实验中我们选择的维数是20;MATLAB程序代码如下:
主程序:
初始化:
适应值计算:
最终的收敛曲线:
(收敛曲线)
阅读全文
0 0
- 粒子群PSO算法
- 粒子群算法介绍
- 粒子群算法(PSO)
- 粒子群优化算法
- pso粒子群算法
- PSO 粒子群算法
- 粒子群优化算法
- 粒子群优化算法
- 粒子群优化算法
- 粒子群优化算法
- 粒子群算法
- 粒子群算法二
- 粒子群算法-PSO
- 二进制粒子群算法
- 粒子群优化算法
- 粒子群算法
- 粒子群算法(PSO)
- 粒子群算法 MATLAB
- 运行时权限
- 第4章 数据类型
- D3.js中的Calendar View详解
- 设计模式:原型模式
- 金山云主机特价主机-609元1年的1核2G50G
- 粒子群算法
- Mock 测试应用场景
- IDEA+Maven创建Web项目
- form表单提交返回页面alert弹窗提示
- Maven项目中properties文件的加载方式
- test
- 修改MyEclipse新建jsp文件的pageEncoding默认编码
- GIAC 2017全球互联网架构大会12月22日即将登陆上海
- VS2013+QT5.7 Warning MSB8004/8027解决方案