• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-08
  • 语言: Matlab
  • 标签: 优化  

资源简介

一个完整的PSO程序,可以实现多目标函数的优化

资源截图

代码片段和文件信息

%功能描述:基本的粒子群算法的单步更新位置速度的算法
function [ParSwarmOptSwarm]=baseStepPso(ParSwarmOptSwarmParticleScopeMaxWMinWLoopCountCurCountEXCLPSP)
%输入参数:ParSwarm:粒子群矩阵,包含粒子的位置,速度与当前的目标函数值
%输入参数:OptSwarm:包含粒子群个体最优解与全局最优解的矩阵
%输入参数:ParticleScope:一个粒子在运算中各维的范围;
%输入参数:AdaptFunc:适应度函数
%输入参数:LoopCount:迭代的总次数
%输入参数:CurCount:当前迭代的次数
%返回值:含意同输入的同名参数
if nargin~=9
    error(‘输入的参数个数错误。‘);
end
if nargout~=2
    error(‘输出的个数太少,不能保证循环迭代。‘);
end
%开始单步更新的操作
w=MaxW-CurCount*((MaxW-MinW)/LoopCount);%惯性因子随迭代次数递减
[ParRowParCol]=size(ParSwarm);%得到粒子群群体大小以及一个粒子维数的信息
ParCol=(ParCol-1)/2;
%for i=1:ParRow
    %if ParSwarm(i2*ParCol+1)<=mean(ParSwarm(:2*ParCol+1))
       % w(i)=MinW+(MaxW-MinW)*(ParSwarm(i2*ParCol+1)-min(ParSwarm(:2*ParCol+1)))/(mean(ParSwarm(:2*ParCol+1))-min(ParSwarm(:2*ParCol

评论

共有 条评论