前言概述

粒子速度更新公式如下:

vid = wvid-1 + c1r1(pbestid-xid)+ c2r2(gbestd-xid)

在研究完粒子群算法中有关惯性权重的优化之后,我们把目光转向速度更新公式的后两项,根据之前所学可知:个体学习因子c1和社会学习因子c2决定了粒子本身经验信息和其他粒子的经验信息对粒子运行轨迹的影响,其反映了粒子群之间的信息交流。
较大的c1值,会使粒子过多地在自身的局部范围内搜索
较大的c2值,则又会促使粒子过早收敛到局部最优值。

为了有效地控制粒子的飞行速度,使算法达到全局搜索与局部搜索两者间的有效平衡,Clerc构造了引入收缩因子的PSO模型,采用了压缩因子,这种调整方法通过合适选取参数,可确保PSO算法的收敛性,并可取消对速度的边界限制

参数设置

  • 个体学习因子c1 = 2.05 (应用较多)
  • 社会学习因子 c2 = 2.05(应用较多)
  • 惯性权重 w = 0.9
  • C = c1+c2 = 4.1
  • 收缩因子

综上,速度更新公式如下

示例代码

求解函数y = 7cos(5x) + 4*sin(x)在[-5,5]内的最大值

…… ……
%% 初始化参数
c1 = 2.05;  % 每个粒子的个体学习因子
c2 = 2.05;  % 每个粒子的社会学习因子
C = c1 + c2;
w = 0.9;  % 惯性权重
fai = 2/abs((2-C-sqrt(C^2-4*C)));% 收缩因子%% 初始化粒子的位置和速度
…… ……%% 计算适应度
…… ……%% 迭代K次来更新速度与位置
fitnessbest = ones(K,1);  % 初始化每次迭代得到的最佳的适应度
for d = 1:K  % 开始迭代,一共迭代K次for i = 1:n   % 依次更新第i个粒子的速度与位置v(i,:) = fai * (w*v(i,:) + c1*rand(1)*(pbest(i,:) - x(i,:)) + c2*rand(1)*(gbest - x(i,:)));  % 更新第i个粒子的速度x(i,:) = x(i,:) + v(i,:); % 更新第i个粒子的位置% 如果粒子的位置超出了定义域,就对其进行调整…… ………… ……
end…… ……
function y = Obj_fun1(x)y = 7*cos(5*x) + 4*sin(x);
end

运行结果如下

对比未经优化的粒子群算法
可知,求得的最优解更接近实际最优解

参考文献:Eberhart R C . Comparing inertia weights and
constriction factors in optimization[C]//
Proceedings of the 2000 IEEE Congress on
Evolutionary Computation, La Jolla, CA. IEEE, 2000.

粒子群算法改进——压缩因子法相关推荐

  1. 基于粒子群算法改进的DELM预测 -附代码

    粒子群算法改进的深度极限学习机DELM的回归预测 文章目录 粒子群算法改进的深度极限学习机DELM的回归预测 1.ELM原理 2.深度极限学习机(DELM)原理 3.粒子群算法 4.粒子群算法改进DE ...

  2. 【ELM预测】基于粒子群算法改进极限学习机ELM实现数据预测matlab源码

    一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...

  3. 【ELMAN预测】基于粒子群算法改进ELMAN动态递归神经网络实现数据预测matlab源码

    一.Elman神经网络介绍 1.特点 Elman神经网络是一种典型的动态递归神经网络,它是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特 ...

  4. 【LEACH协议】粒子群算法改进LEACH协议【含Matlab源码 2052期】

    ⛄一. 简介 1 引言 WSN 由能感知外部环境的传感器节点以自组网的形式构成,是一种分布式无线传感器网络.随着科技的进步和现代生活的需求,由于 WSN 的远程控制.信息即时传播以及低功耗等众多优点, ...

  5. 遗传-粒子群算法遗传-禁忌搜索算法求解TSP问题

    1. 前言 上一篇博文[五种常见启发式算法求解TSP问题-总结篇]中,总结了五种常见启发式算法在求解TSP问题上的效果,其中遗传算法的求解质量最差,而粒子群算法和禁忌搜索算法的求解效果最佳,因此本文计 ...

  6. 基于信息熵确立权重的topsis法_一种基于改进多目标粒子群算法的受端电网储能优化配置方法与流程...

    本发明涉及受端电网中储能的规划问题,具体涉及一种基于改进多目标粒子群算法的受端电网储能优化配置方法. 背景技术: 随着煤炭等非可再生.高污染的能源总量日益减少,我国的电能结构正由火力发电向低碳化的清洁 ...

  7. 标准粒子群算法(PSO)及其Matlab程序和常见改进算法

    一. 粒子群算法概述 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行 ...

  8. Matlab学习手记——非线性拟合方法:压缩因子粒子群算法

    目的:采用压缩因子粒子群算法实现双指数拟合. function x_opt = PSO_ExpFit2(t, Et) %{ 函数功能:压缩因子粒子群算法实现指数拟合:y = a1*exp(-x/b1) ...

  9. 基于觅食生境选择的改进粒子群算法-附代码

    基于觅食生境选择的改进粒子群算法 文章目录 基于觅食生境选择的改进粒子群算法 1.粒子群优化算法 2. 改进粒子群算法 3.实验结果 4.参考文献 5.Matlab代码 6.Python代码 摘要:在 ...

最新文章

  1. 实战药物分子筛选之一_初探
  2. 个推无法获取个推id_最新个推Android 推送 SDK Maven 集成
  3. oracle中判断是否为季末,Oracle中取月初,月末,季初,季末及年初,年末时间总结...
  4. python成员方法共享吗_python 入坑路 类的特殊成员方法
  5. python MySQL 插入Elasticsearch
  6. 《位运算技巧以及Leetcode的一些位运算题目》
  7. mysql表里插不进去数据_Oracle数据中表值插不进去问题(转)
  8. 使用回调技术实现局部刷新
  9. 为什么使用累积分布函数处理后像素值会均匀分布_亿万级数据处理的高效解决方案
  10. java遍历范型list_Java 集合(1)-- 俯瞰 Java 集合源码以及分类
  11. 史上最全android分辨率
  12. 软件工程-团队作业3
  13. js ajax 异步上传图片,javascript实现图片伪异步上传
  14. S32DS中链接文件及启动代码学习
  15. excel表格怎么画斜线_怎么画出漂亮的Excel表格线?
  16. Java调用外部api接口请求数据(阿里云ISBN查询图书信息为例)
  17. java freemarker jxl excel_freemarker导出定制excel
  18. 360 路由器设置 虚拟服务器,360安全路由器的设置方法
  19. 地方门户+html+模板,帝国CMS地方门户网站模板(含分类信息,WAP手机模板)
  20. torch.chunk用法

热门文章

  1. [微信小程序] 单张、多张图片上传(图片转base64格式)实践经验
  2. 给你的网页加个二次元老婆吧
  3. css超出两行省略号没效果,Css 设置超过再两行显示省略号
  4. SQL实战45.将titles_test表名修改为titles_2017
  5. 计算机毕业设计Java计算机培训管理(源码+系统+mysql数据库+lw文档)
  6. 分支-07. 比较大小(10)
  7. [耀湾/微亚细亚] 夜降り萃梦乡 FIN.
  8. linux同步webdav,基于 WebDAV 的 安卓 与 Linux 之间的写作同步
  9. 树莓派3B+ 远程下载服务器(Aria2)
  10. 企业微信如何自动同步外部客户信息到CRM系统