一、粒子群算法简介

1 粒子群算法的概念
粒子群优化算法(PSO:Particle swarm optimization) 是一种进化计算技术(evolutionary computation)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协作和信息共享来寻找最优解.
PSO的优势:在于简单容易实现并且没有许多参数的调节。目前已被广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。

2 粒子群算法分析
2.1基本思想

粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解来调整自己的速度和位置。下面的动图很形象地展示了PSO算法的过程:

2.2 更新规则
PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。

公式(1)的第一部分称为【记忆项】,表示上次速度大小和方向的影响;公式(1)的第二部分称为【自身认知项】,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分;公式(1)的第三部分称为【群体认知项】,是一个从当前点指向种群最好点的矢量,反映了粒子间的协同合作和知识共享。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。以上面两个公式为基础,形成了PSO的标准形式。

公式(2)和 公式(3)被视为标准PSO算法。
3 PSO算法的流程和伪代码

二、部分源代码

clear all;clc;format long;%------给定初始化条件----------------------------------------------c1=1.4962;             %学习因子1c2=1.4962;             %学习因子2w=0.7298;              %惯性权重MaxDT=1000;            %最大迭代次数D=3;                  %搜索空间维数(未知数个数)N=40;                  %初始化群体个体数目eps=10^(-6);           %设置精度(在已知最小值时候用)data = load('goldprice.txt');data = data/100;%------初始化种群的个体(可以在这里限定位置和速度的范围)------------for i=1:Nfor j=1:Dx(i,j)=randn;  %随机初始化位置v(i,j)=randn;  %随机初始化速度endend%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------for i=1:Np(i)=fitness(x(i,:),data);y(i,:)=x(i,:);endpg=x(1,:);             %Pg为全局最优for i=2:Nif fitness(x(i,:),data)<fitness(pg,data)pg=x(i,:);endend%------进入主要循环,按照公式依次迭代,直到满足精度要求------------for t=1:MaxDTfor i=1:Nv(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));x(i,:)=x(i,:)+v(i,:);if fitness(x(i,:),data)<p(i)p(i)=fitness(x(i,:),data);y(i,:)=x(i,:);endif p(i)<fitness(pg,data)pg=y(i,:);end

三、运行结果


四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.

【价格预测】基于matlab粒子群算法黄金价格预测【含Matlab源码 591期】相关推荐

  1. 【Matlab图像检索】综合特征图像检索【含GUI源码 395期】

    一.代码运行视频(哔哩哔哩) [Matlab图像检索]综合特征图像检索[含GUI源码 395期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  2. 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】

    一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...

  3. 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】

    一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  4. 【Matlab条形码识别】二维条形码识别【含GUI源码 607期】

    一.代码运行视频(哔哩哔哩) [Matlab条形码识别]二维条形码识别[含GUI源码 607期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  5. 【PSO TSP】基于matlab GUI粒子群算法求解旅行商问题【含Matlab源码 1334期】

    ⛄一.TSP简介 旅行商问题,即TSP问题(Traveling Salesman Problem)又译为旅行推销员问题.货郎担问题,是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须选 ...

  6. 【微电网优化】基于量子行为粒子群算法机组燃烧控制系统建模含Matlab源码

    1 简介 能源问题与环境问题随着现代社会的快速发展已成为中国乃至全世界关注的焦点.就我国现状来说,由于独特的能源架构和社会形态,直接决定了我国的电力工业在当今乃至未来相当长的一段时期内将以燃煤火电机组 ...

  7. 【配电网重构】基于粒子群算法实现配电网重构含Matlab源码

    1 简介 随着大规模,跨区域的配电网不断发展,对配电网运行的经济性和可靠性要求越来越高,在配电网发生大范围停电事故后,需要对配电网的拓扑结构进行重新组合,从而达到恢复供电的目的,这个重新组合配电网拓扑 ...

  8. 【优化求解】基于matlab蚁群算法配电网故障定位【含Matlab源码 165期】

    ⛄一.蚁群算法简介 1 引言 在自然界中各种生物群体显现出来的智能近几十年来得到了学者们的广泛关注,学者们通过对简单生物体的群体行为进行模拟,进而提出了群智能算法.其中, 模拟蚁群觅食过程的蚁群优化算 ...

  9. pm模型matlab算法,18基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码...

    基于遗传算法(粒子群算法.人工鱼群算法等)的投影寻踪模型 MATLAB源代码 投影寻踪是一种处理多因素复杂问题的统计方法,其基本思路是将高维数据向低维空间进行投影,通过低维投影数据的散布结构来研究高维 ...

  10. 【布局优化】基于改进粒子群算法实现充电桩选址优化问题附matlab代码

    1 简介 当前世界环境污染和能源危机问题凸显,电动汽车以零排放和低耗能的优势得到各国的大力关注和支持.以电动汽车为代表新能源汽车产业,成为国家七大战略性新兴产业之一.电动汽车具有良好的发展前景,市场规 ...

最新文章

  1. 计算机二级word保存要不要加.docx,计算机二级word实操题.docx
  2. python调用c静态库,静态库(.lib)到Python项目
  3. Java学习_day004:Scanner与分支结构
  4. VHD工具-VHDTOOL
  5. luogu 1484\1792 种树 奇怪的贪心可反悔
  6. 安卓学习 intent
  7. 矩阵每一行重复_【剑指offer】65 矩阵中的路径
  8. 6099元!华为Mate 40 Pro 4G版开放现货
  9. php学校成员,php访问成员变量和成员方法
  10. Python:日志模块logging的应用
  11. 2018,程序员要搭配这40条编程箴言!!!条条都是干货
  12. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十集之Nginx反向代理原理】(有参考其他文章)...
  13. python中wx_python中wx模块的具体使用方法
  14. javascript简易的动画效果
  15. 计算机和信息系统安全保密管理规定,图文信息中心 计算机信息系统安全保密管理规定...
  16. Matlab 口罩识别
  17. sm缩写代表什么意思_狗狗各种表情都分别代表着什么意思
  18. Springboot​ mybatis-plus
  19. Java List转Map时发生Duplicate key
  20. vue 封装图片预览组件

热门文章

  1. 小Z的袜子(bzoj 2038)
  2. java基础 (六)面向对象(一)
  3. dstat 性能监测工具
  4. 线程之线程池(ExecutorService)
  5. Hololens UnityChatSDK配置教程 Unity跨平台音视频通讯SDK汇总
  6. C和C++的关系, namespace, struct , class
  7. 黑马程序员 Python学习笔记之 注释
  8. Unity整体与单个缩放比例
  9. unity UI 之text and image
  10. Atitit 提升开发效率 声明式编程范式 目录 1. 声明式编程体系树 1 1.1. 声明式(对比:指令式,,主要包括 函数式,逻辑式编程) 2 1.2. 声明式编程:表达与运行分离 3 1.3