资源简介
PSO 粒子群算法 万能代码 matlab 注释详细

代码片段和文件信息
function PSOfirst()
%% 清空环境
clear;
clc;
%% 参数设置
w=0.9;%权值 将影响PSO 的全局与局部搜优能力, 值较大,全局搜优能力强,局部搜优能力弱;反之,则局部搜优能力增强,而全局搜优能力减弱。
c1=0.1;%加速度,影响收敛速度
c2=0.1;
dim=6;%6维,表示企业数量
swarmsize=100;%粒子群规模,表示有100个解的空间
maxiter=200;%最大循环次数,影响时间
minfit=0.001;%最小适应值
vmax=0.01;
vmin=-0.01;
ub=[0.20.20.20.20.20.2];%解向量的最大限制
lb=[0.010.010.010.010.010.01];%解向量的最小限制
%% 种群初始化
range=ones(swarmsize1)*(ub-lb);
swarm=rand(swarmsizedim).*range+ones(swarmsize1)*lb;%粒子群位置矩阵每行表示一组解
Y1=[33.08;
21.85;
6.19;
11.77;
9.96;
17.15;];
Y=Y1./100;%将百分数化为小数
[ymyn]=size(Y);
for i=1:swarmsize %% YX的约束
s=swarm(i:);
ss=s‘;
while sum(Y.*ss)<0.1*sum(Y)
ss=rand(dim1).*((ub-lb)‘)+ones(dim1).*((lb)‘);
end
swarm(i:)=ss‘;
end
vstep=rand(swarmsizedim)*(vmax-vmin)+vmin;%粒子群速度矩阵
fswarm=zeros(swarmsize1);%预设空矩阵,存放适应值
%% 计算初始种群适应度
for i=1:swarmsize
X=swarm(i:);
[SUMGG]=jn(X);
fswarm(i:)=SUMG;
%fswarm(i:)=feval(jnswarm(i:));%以粒子群位置的第i行为输入,求函数值,对应输出给适应值
end
fswarm
%% 个体极值和群体极值
[bestfbestindex]=min(fswarm);%求得适应值中的最小适应值,和,其所在的序列
gbest=swarm;%暂时的个体最优解为自己
fgbest=fswarm;%暂时的个体最优适应值
zbest=swarm(bestindex:);%所在序列的对应的解矩阵序列,全局最佳解
fzbest=bestf;%全局最优适应值
%% 迭代寻优
iter=0;
yfitness=zeros(1maxiter);%1行100列矩阵,存放100个最优值的空间矩阵
x1=zeros(1maxiter);%存放x的空间
x2=zeros(1maxiter);
x3=zeros(1maxiter);
x4=zeros(1maxiter);
x5=zeros(1maxiter);
x6=zeros(1maxiter);
while((iterminfit))
for j=1:swarmsize
% 速度更新
vstep(j:)=w*vstep(j:)+c1*rand*(gbest(j:)-swarm(j:))+c2*rand*(zbest-swarm(j:));
if vstep(j:)>vmax
vstep(j:)=vmax;%速度限制
end
if vstep(j:) vstep(j:)=vmin;
end
% 位置更新
swarm(j:)=swarm(j:)+vstep(j:);
for k=1:dim
if swarm(jk)>ub(k)
swarm(jk)=ub(k);%位置限制
end
if swarm(jk)
swarm(jk)=lb(k);
end
end
% 适应值
X=swarm(j:);
[SUMGG]=jn(X);
fswarm(j:)=SUMG;
% 可在此处增加约束条件,若满足约束条件,则进行适应值计算
%
% 个体最优更新
if fswarm(j) gbest(j:)=swarm(j:);%个体最优解更新
fgbest(j)=fswarm(j);%个体最优值更新
end
% 群体最优更新
if fswarm(j) zbest=swarm(j:);%群体最优解更新
fzbest=fswarm(j);%群体最优值更新
end
end
iter=iter+1;
yfitness(1iter)=fzbest;
x1(1iter)=zbest(1);%将全局最优解的第1个元素,依次存储,共有MAXITER个
x2(1iter)=zbest(2);
x3(1iter)=zbest(3);
x4(1iter)=zbest(4);
x5(1iter)=zbest(5);
x6(1iter)=zbest(6);
end
min(yfitness)
fzbest
zbest
X=zbest;
[SUMGG]=jn(X);
GGbest=G;GGbest
%% 画图
figure(1)
plot(yfitness‘linewidth‘2)
title(‘最优基尼系数优化曲线‘‘fontsize‘14);
xlabel(‘迭代次数‘‘fontsize‘14);
ylabel(‘基尼系数‘‘fontsize‘1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5158 2013-07-03 14:09 PSOfirst.m
- 上一篇:可见光通信计算室内光强分布
- 下一篇:matlab贝叶斯源码iris分类
相关资源
- 粒子群算法matlab工具箱
- 基于粒子群算法的非合作博弈的matl
- 粒子群算法优化pid源码 matlab仿真.ra
- 粒子群算法优化RBF网络matlab源码
- pso解决单目标优化问题
- 基本粒子群算法,MATLAB文件的M文件编
- 有约束的基于适应度和连续世代策略
- 粒子群算法求解函数优化问题.zip
- matlab粒子群算法PSO实现函数极值优化
- PSO负载均衡算法-matlab实现
- l粒子群算法工具箱psot
- MATLAB.遗传算法和粒子群算法程序设计
- PSO_LSSVM程序代码及LSSVM工具箱
- libsvm-3.1-[FarutoUltimate3.1
- PSO优化模糊控制器进行电动汽车能量
- 多目标粒子群社团检测算法MODPSO
- PSO优化SVM参数matlab
- 蜂群SVMABC-SVM遗传算法SVMGA-SVM粒子群
- 遗传粒子群优化算法-GAPSO.rar
- pso优化bp神经网络代码
- 粒子群算法实例172434
- MATLAB 多目标粒子群算法源代码
- 基于粒子群算法的投影寻踪法matlab代
- 粒子群算法优化3-5-3多项式工业机器人
- 粒子群算法应用在路径规划matlab
- MOPSO+
- 粒子群算法matlab含注释
- 粒子群算法无功优化程序
- pso-bp代码
- 基于权重改进的PSO
评论
共有 条评论