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

资源简介

局部粒子群算法程序,可运行无错误,使用的函数是单峰值单数,函数可自行变换。

资源截图

代码片段和文件信息

function[ResultOnLineOffLineMinMaxMeanAdaptBestofStep]=LocalPsoProcessByCricle(SwarmSizeParticleSizeParticleScopeInitFuncStepFindFuncAdaptFuncIsStepIsDrawLoopCountIsPlot)
if nargin<4
error(‘输入的参数个数错误‘)
end
[rowcolum]=size(ParticleSize);
if row<1||colum<1
error(‘输入的参数个数太少,不能保证以后的运行‘);
end
[rowcolum]=size(ParticleSize);
if row>1||colum>1
error(‘输入的粒子维数错误,是一个1行1列的数据‘);
end
[rowcolum]=size(ParticleScope);
if row~=ParticleSize||colum~=2
error(‘输入的粒子的维数范围错误‘);
end
if nargin<7
IsPlot=1;
LoopCount=100;
IsStep=0;
IsDraw=0;
end
if nargin<8
IsPlot=1;
LoopCount=100;
IsDraw=0;
end
if nargin<9
IsPlot=1;
LoopCount=100;
end
if nargin<10
IsPlot=1;
end
if IsDraw~=0
figure
clf
DrawObjGraphic(ParticleSizeParticleScopeAdaptFunc);
view(090);
end
[ParSwarmOptSwarm]=InitFunc(SwarmSizeParticleSizeParticleScopeAdaptFunc);
if IsDraw~=0
if 1==ParticleSize
for ParSwarmRow=1:SwarmSize
plot([ParSwarm(ParSwarmRow1)ParSwarm(ParSwarmRow1)][ParSwarm(ParSwarmRow3)0]‘r**‘‘markersize‘8);
text(ParSwarm(ParSwarmRow1)ParSwarm(ParSwarmRow3)num2str(ParSwarmRow));
end
end
if 2==ParticleSize
for ParSwarmRow=1:SwarmSize
hold on
stem3(ParSwarm(ParSwarmRow1)ParSwarm(ParSwarmRow2)ParSwarm(ParSwarmRow5)‘white*‘‘markersize‘8);
end
end
end
if IsStep~=0
disp(‘开始迭代,按任意键:‘)
pause
end
for k=1:LoopCount
disp(‘************************************‘)
TempStr=sprintf(‘第%g次迭代‘k);
disp(TempStr);
disp(‘************************************‘

评论

共有 条评论