- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab粒子群优化算法举例分析
例 函数对于适应度函数fitness对其参数,,做出不同方式的比较以测试其对函数结果影响。
当,,。
(适应函数)
程序1
当,,。
a)%主函数源程序(main.m)
%------基本粒子群算法 (particle swarm optimization)
%------名称: 基本粒子群算法
%------初始格式化
clear all; %清除所有变量
clc; %清屏
format long; %将数据显示为长整形科学计数
%------给定初始条条件------------------
N=40; %3初始化群体个数
D=10; %初始化群体维数
T=100; %初始化群体最迭代次数
c11=2; %学习因子1
c21=2; %学习因子2
c12=1.5;
c22=1.5;
w=1.2; %惯性权重
eps=10^(-6); %设置精度(在已知最小值的时候用)
%------初始化种群个体(限定位置和速度)------------
x=zeros(N,D); %x是位置,初始化位置空间(矩阵)
v=zeros(N,D); %v是速度,初始化速度空间(矩阵)
for i=1:N
for j=1:D
x(i,j)=randn; %随机初始化位置,randn返回一个随机变化的符合正态分布的数
v(i,j)=randn; %随机初始化速度
end
end
%------显示群位置----------------------
figure(1)
for j=1:D
if(rem(D,2)0)
subplot((D+1)/2,2,j)
else
subplot(D/2,2,j)
end
plot(x(:,j),b*);grid on %’b*’表示颜色是绿的,用*显示在图上
xlabel(粒子)
ylabel(初始位置)
tInfo=strcat(第,char(j+48),维); %strcat使括号里的东西连成字符串
if(j9)
tInfo=strcat(第,char(floor(j/10)+48)); %floor向负无穷方向取整
char(rem(j,10)+48,维); %rem 取余
end
title(tInfo)
end
%------显示种群速度
figure(2)
for j=1:D
if(rem(D,2)0)
subplot((D+1)/2,2,j)
else
subplot(D/2,2,j)
end
plot(v(:,j),b*);grid on %是不是应该是v(:,j)
xlabel(粒子)
ylabel(初始速度)
tInfo=strcat(第,char(j+48),维);
if(j9)
tInfo=strcat(第,char(floor(j/10)+48),维);
char(rem(j,10)+48,维);
end
title(tInfo)
end
figure(3)
%第一个图
subplot(1,2,1)
%------初始化种群个体(在此限定速度和位置)------------
x1=x;
v1=v;
%------初始化个体最优位置和最优值---
p1=x1;
pbest1=ones(N,1);
for i=1:N
pbest1(i)=fitness(x1(i,:),D); %适应度函数
end
%------初始化全局最优位置和最优值---------------
g1=1000*ones(1,D);
gbest1=1000;
for i=1:N
if(pbest1(i)gbest1)
g1=p1(i,:);
gbest1=pbest1(i);
end
end
gb1=ones(1,T);
%-----进入主循环,按照公式依次迭代直到满足精度或者迭代次数---
for i=1:T
for j=1:N
if (fitness(x1(j,:),D)pbest1(j))
文档评论(0)