粒子群优化算法是一种模拟鸟群社会行为的群体搜素算法。它分为全局最佳粒子优化和局部最佳粒子优化,对于全局最佳PSO,或者叫做gbest PSO,每个粒子的邻域都是整个群,其算法伪代码如下:

创建并初始化一个n维的粒子群

repeat

for 每个粒子i=1,2,…n do

//设置个体最佳位置

if f(i)

y=f(i);

end

//设置全局最佳位置

if y

Y=y;

end

end

for 每个粒子i=1,2,…n do

用速度方程更新速度

用位置方程更新位置

end

until 满足终止条件

gbest PSO的matlab实现代码如下:

tic   %该函数表示计时开始

%------初始格式化--------------------------------------------------

clear all;

clc;

format long;

%------给定初始化条件----------------------------------------------

c1=1.4962;             %加速常数即学习因子1

c2=1.4962;             %加速常数即学习因子2

w=0.7298;              %惯性权重

MaxDT=10000;           %最大迭代次数

D=10;                  %搜索空间维数(测试函数sphere中未知数个数)

N=40;                  %初始化群体个体数目

eps=10^(-7);           %设置精度(在已知最小值时候用)

%------初始化种群的个体(可以在这里限定位置和速度的范围)------------

for i=1:N

for j=1:D

x(i,j)=randn;  %产生一个服从正态分布的随机数作为初始化位置

v(i,j)=randn;  %产生一个服从正态分布的随机数作为初始化速度

end

end

%------先计算各个粒子的适应度,并初始化个体最优位置y和全局最优位置Pg--------

for i=1:N

p(i)=sphere(x(i,:),D);%计算适应度,测试函数为sphere

y(i,:)=x(i,:);    %初始化个体最优位置y为在时间步t=0时的粒子位置

end

Pg=x(1,:);             %Pg为全局最优位置

for i=2:N

if sphere(x(i,:),D)

Pg=x(i,:);%更新全局最优位置

end

end

%------进入主要循环,按照公式依次迭代,直到满足精度要求------------

for t=1:MaxDT

for i=1:N

v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(Pg-x(i,:));

x(i,:)=x(i,:)+v(i,:);

if sphere(x(i,:),D)

p(i)=sphere(x(i,:),D);%更新适应度

y(i,:)=x(i,:);%更新个体最佳位置

end

if p(i)

Pg=y(i,:);%更新群体最佳位置

end

end

Pbest(t)=sphere(Pg,D);%保存每一代的群体最佳位置

end

toc %该函数表示计时结束

%------最后给出计算结果

disp('*************************************************************')

disp('函数的全局最优位置为:')

for i=1:D

fprintf('x(%d)=%s\n',i,Pg(i));

end

fprintf('最后得到的优化极值为:%s\n',sphere(Pg,D));

disp('*************************************************************')

sphere函数如下:

%适应度函数源程序(sphere.m)

%参数x为变量名,参数D为维数

function result=sphere(x,D)

sum=0;

for i=1:D

sum=sum+x(i)^2;

end

result=sum;

程序运行结果:

Elapsed time is 2.943799 seconds.

*************************************************************

函数的全局最优位置为:

x(1)=6.654911e-009

x(2)=5.739281e-009

x(3)=-3.207077e-009

x(4)=-1.107863e-011

x(5)=9.756758e-009

x(6)=6.682152e-009

x(7)=-2.828295e-010

x(8)=2.533800e-009

x(9)=3.868910e-009

x(10)=1.740554e-009

最后得到的优化极值为:2.518562e-016

*************************************************************

从运行结果可以看出,程序运行时间约为3秒,找到的sphere函数的最小值点接近0,在坐标原点附近,符合预期结果。

matlab粒子群运动模拟伪代码,基本粒子群优化算法(PSO)的matlab实现相关推荐

  1. 【老生谈算法】标准粒子群算法(PSO)及其Matlab程序和常见改进算法——粒子群算法

    1.算法详解: 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]标准粒子群算法(PSO)及其Matlab程序和常见改进算法.docx 2 ...

  2. 粒子群算法(PSO)以及Matlab实现

    粒子群算法(PSO)以及Matlab实现 算法背景 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy ...

  3. 改进粒子群优化算法(IWAPSO)的MATLAB源程序

    改进粒子群优化算法(IWAPSO)的MATLAB源程序 作者:aaron8967    主页:http://aaron8967.blog.51cto.com 说明:粒子群优化算法(Particle S ...

  4. 改进粒子群优化算法(PURPSO)的MATLAB源程序

    改进粒子群优化算法(PURPSO)的MATLAB源程序 作者:aaron8967    主页:http://aaron8967.blog.51cto.com 说明:粒子群优化算法(Particle S ...

  5. 【优化算法】细菌粒子群优化算法【含Matlab源码 1195期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]细菌粒子群优化算法[含Matlab源码 1195期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏Mat ...

  6. 【优化算法】基于matlab量子粒子群算法求解单目标优化问题【含Matlab源码 2203期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]基于matlab量子粒子群算法求解单目标优化问题[含Matlab源码 2203期] 点击上面蓝色字体,直接付费下载,即可. 获 ...

  7. 概率检索模型+模糊k近邻+粒子群优化算法(PSO)

    1. 概率检索模型 文档属于"相关"类的概率与属于"不相关"类的概率的比值(也叫"优势比"). 显然,这个比值越大,代表该文档与查询的相关度 ...

  8. 【计算智能】——群体智能算法(蚁群优化算法ACO、粒子群优化算法PSO)

    群体智能算法 与大多数基于梯度的优化算法不同,群体智能算法依靠的是概率搜索算法. 与梯度算法及传统演化算法相比优点: 没有集中控制约束,不会因为个体的故障影响整个问题的求解. 以非直接信息交流的方式确 ...

  9. 【运动学】基于matlab GUI三体运动模拟【含Matlab源码 871期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[运动学]基于matlab GUI三体运动模拟[含Matlab源码 871期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  10. MATLAB实战系列(十一)-多种群遗传算法的函数优化算法(附MATLAB代码)

    前言: 本篇博文参考,智能优化算法书籍<MATLAB智能算法30个案例分析(第2版)>,今天要与大家分享的智能算法是多种群遗传算法. 本地MATLAB环境部署 因为后面要介绍的多种群遗传算 ...

最新文章

  1. HashMap 你真的了解吗?
  2. HuMoments函数
  3. 中国厨房家具行业消费需求调查与品牌格局分析报告2022版
  4. Linux查找文件命令find .
  5. linux学习-防火墙
  6. 第一:Pytest简介和环境准备
  7. 火狐版Idm配合油猴使用教程
  8. 阿里云OSS浏览图片报403错误的解决方法
  9. box-shadow属性详解
  10. 揭露SAP培训机构的套路
  11. 一个视频发布在三个平台上,可以赚三份收益,自媒体如何发布视频
  12. Activity 启动流程
  13. 在棋盘上放米粒php,棋盘上的米粒(Python)
  14. 微信公众号笔记(二)
  15. 开发微领地小蜜系统APP平台
  16. day03 文件操作 函数 参数 返回值 作用域和名称空间 global和nonlocal
  17. C#——Windows 程序,一个百万富翁遇到一个陌生人,
  18. 中国大学生服务外包【A类】参赛感想与经验(东部赛区)
  19. 【现代控制理论】| 线性系统的状态空间法
  20. 一个3D视频播放器的演示APK

热门文章

  1. 量子力学 量子计算机,量子力学和量子计算机
  2. 装完nvme固态经常蓝屏_方案解决:NVMe SSD安装Win7蓝屏0x0000007B快速解决方案
  3. php app 银联支付,php银联网页支付实现方法
  4. 聚醚/聚丙烯酰胺-竣甲基/聚丙烯酰胺/粒状聚N-异丙基丙烯酰胺壳聚糖水凝胶的制备方法
  5. android studio 使用xml:app命名空间代码不提示问题
  6. CPU在计算机领域的含义,电脑中的CPU是什么意思
  7. noob的第一步——基于51单片机的指纹密码锁
  8. IT公司内推 互联网内推 bat内推
  9. 1374:铲雪车(snow)——欧拉回路
  10. 58.3万笔/秒!看阿里的黑科技