📄 genexpdata.m
字号:
%-----------------------------------------------------------%
%--Run Experiments for different dimensions and SwarmSizes--%
%-----------------------------------------------------------%
function GenExpData(numberofRuns, psoOptions)
% swarmsize = [20. 40. 80]; %设置粒子数;
% DimIters = [10, 20, 30; ... %设置维数;
% 1000, 1500, 2000]; %Corresponding iterations,设置相应迭代次数;
swarmsize = [80]; %设置粒子数;
DimIters = [10; ... %设置维数;
2000]; %Corresponding iterations,设置相应迭代次数;
for x = DimIters;
psoOptions.Vars.Dim = x(1,:);
psoOptions.Vars.Iterations = x(2,:);
for size = swarmsize;
psoOptions.Vars.SwarmSize = size;
RnS(numberofRuns, psoOptions);
end
end
%----------------%
%---Run & save---%
%----------------%
function RnS(numberofRuns, psoOptions)
disp(sprintf('This experiment will optimize %s function for %d times.', psoOptions.Obj.fitnessfunction, numberofRuns));
disp(sprintf('Population Size: %d\t\tDimensions: %d.', psoOptions.Vars.SwarmSize, psoOptions.Vars.Dim));
fVal = 0;
History=[];
disp(sprintf('Run \t\t Best objVal'));
for i = 1:numberofRuns
[tfxmin, xmin, Swarm, tHistory ,tmark_fGBest] = PSO(psoOptions);
fVal(i,:) = tfxmin;
Best_P(i,:) = xmin;
History(:,i) = tHistory;
mark_fGBest(i,:) = tmark_fGBest;
% disp(sprintf('%4d \t%10f', i, tfxmin)); %输出最优适应度函数;
% disp(sprintf('%4d \t%5f', i, xmin)); %输出最优粒子位置;
tfxmin,xmin
figure(i);
% plot( mark_fGBest );
semilogy(mark_fGBest(i,:),'r:');
end
Avg = sum(fVal)/numberofRuns;
disp(sprintf('Avg. \t\t%10f\n\n', Avg))
fFile = strcat('f_', psoOptions.Obj.fitnessfunction, '_', int2str(psoOptions.Vars.SwarmSize), 'Particles', int2str(psoOptions.Vars.Dim), 'Dim'); %e.g. f_Rastrigrin_10d20p
BPFile = strcat('B_', psoOptions.Obj.fitnessfunction, '_', int2str(psoOptions.Vars.SwarmSize), 'Particles',int2str(psoOptions.Vars.Dim), 'Dim');
hFile = strcat('h_', psoOptions.Obj.fitnessfunction, '_', int2str(psoOptions.Vars.SwarmSize), 'Particles',int2str(psoOptions.Vars.Dim), 'Dim');
% save(fFile, 'fVal', '-ascii');
% save(BPFile, 'Best_P', '-ascii');
% save(hFile, 'History', '-ascii');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -