matlab粒子群运动模拟伪代码,基本粒子群优化算法(PSO)的matlab实现
粒子群优化算法是一种模拟鸟群社会行为的群体搜素算法。它分为全局最佳粒子优化和局部最佳粒子优化,对于全局最佳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实现相关推荐
- 【老生谈算法】标准粒子群算法(PSO)及其Matlab程序和常见改进算法——粒子群算法
1.算法详解: 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]标准粒子群算法(PSO)及其Matlab程序和常见改进算法.docx 2 ...
- 粒子群算法(PSO)以及Matlab实现
粒子群算法(PSO)以及Matlab实现 算法背景 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy ...
- 改进粒子群优化算法(IWAPSO)的MATLAB源程序
改进粒子群优化算法(IWAPSO)的MATLAB源程序 作者:aaron8967 主页:http://aaron8967.blog.51cto.com 说明:粒子群优化算法(Particle S ...
- 改进粒子群优化算法(PURPSO)的MATLAB源程序
改进粒子群优化算法(PURPSO)的MATLAB源程序 作者:aaron8967 主页:http://aaron8967.blog.51cto.com 说明:粒子群优化算法(Particle S ...
- 【优化算法】细菌粒子群优化算法【含Matlab源码 1195期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]细菌粒子群优化算法[含Matlab源码 1195期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏Mat ...
- 【优化算法】基于matlab量子粒子群算法求解单目标优化问题【含Matlab源码 2203期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]基于matlab量子粒子群算法求解单目标优化问题[含Matlab源码 2203期] 点击上面蓝色字体,直接付费下载,即可. 获 ...
- 概率检索模型+模糊k近邻+粒子群优化算法(PSO)
1. 概率检索模型 文档属于"相关"类的概率与属于"不相关"类的概率的比值(也叫"优势比"). 显然,这个比值越大,代表该文档与查询的相关度 ...
- 【计算智能】——群体智能算法(蚁群优化算法ACO、粒子群优化算法PSO)
群体智能算法 与大多数基于梯度的优化算法不同,群体智能算法依靠的是概率搜索算法. 与梯度算法及传统演化算法相比优点: 没有集中控制约束,不会因为个体的故障影响整个问题的求解. 以非直接信息交流的方式确 ...
- 【运动学】基于matlab GUI三体运动模拟【含Matlab源码 871期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[运动学]基于matlab GUI三体运动模拟[含Matlab源码 871期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- MATLAB实战系列(十一)-多种群遗传算法的函数优化算法(附MATLAB代码)
前言: 本篇博文参考,智能优化算法书籍<MATLAB智能算法30个案例分析(第2版)>,今天要与大家分享的智能算法是多种群遗传算法. 本地MATLAB环境部署 因为后面要介绍的多种群遗传算 ...
最新文章
- HashMap 你真的了解吗?
- HuMoments函数
- 中国厨房家具行业消费需求调查与品牌格局分析报告2022版
- Linux查找文件命令find .
- linux学习-防火墙
- 第一:Pytest简介和环境准备
- 火狐版Idm配合油猴使用教程
- 阿里云OSS浏览图片报403错误的解决方法
- box-shadow属性详解
- 揭露SAP培训机构的套路
- 一个视频发布在三个平台上,可以赚三份收益,自媒体如何发布视频
- Activity 启动流程
- 在棋盘上放米粒php,棋盘上的米粒(Python)
- 微信公众号笔记(二)
- 开发微领地小蜜系统APP平台
- day03 文件操作 函数 参数 返回值 作用域和名称空间 global和nonlocal
- C#——Windows 程序,一个百万富翁遇到一个陌生人,
- 中国大学生服务外包【A类】参赛感想与经验(东部赛区)
- 【现代控制理论】| 线性系统的状态空间法
- 一个3D视频播放器的演示APK
热门文章
- 量子力学 量子计算机,量子力学和量子计算机
- 装完nvme固态经常蓝屏_方案解决:NVMe SSD安装Win7蓝屏0x0000007B快速解决方案
- php app 银联支付,php银联网页支付实现方法
- 聚醚/聚丙烯酰胺-竣甲基/聚丙烯酰胺/粒状聚N-异丙基丙烯酰胺壳聚糖水凝胶的制备方法
- android studio 使用xml:app命名空间代码不提示问题
- CPU在计算机领域的含义,电脑中的CPU是什么意思
- noob的第一步——基于51单片机的指纹密码锁
- IT公司内推 互联网内推 bat内推
- 1374:铲雪车(snow)——欧拉回路
- 58.3万笔/秒!看阿里的黑科技