⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genexpdata.m

📁 本人编辑的标准PSO算法
💻 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 + -