资源简介

采用PSO和SA算法的结合,对函数进行智能优化!

资源截图

代码片段和文件信息

clear;
clc;
FitHd = @FitNess;
% 设置相关参数
Dim =6;      % 维数
SwarmNum = 60; % 种群规模
X_low = -200*ones(Dim 1);  % x的下界
X_up = 200*ones(Dim 1);    % x的上界
V_max =1*(X_up-X_low);   % 粒子移动的最大速度
w = 0.8; % 惯性权重
c1 = 2.0; % 学习因子
c2 = 2.0;
MaxIter =90000;%最大迭代数
wmin =0;%%%%%%%%%%%%%%% 0.8;惯性权重的最小值
wmax = 0.8;
Err =1; % 误差平方和的允许范围,适应值的允许值
Times =20;%算法运行的次数
fbest = zeros(Times1);
PSOSATrainTimes = zeros(Times 1);
fGbest = PSOSATrainTimes;
for k = 1:1:Times
    [PSOSAxGbest PSOSAfGbest(k) PSOSATrainTimes(k)] = PSOSA(FitHd Dim SwarmNum...
                    MaxIter w c1 c2  X_low X_up V_max Err);
    if(PSOSAfGbest(k)< 15.2106)
        disp(‘最优适应度:\n‘);
        outFit=PSOSAfGbest(k)
        disp(‘最优位置:\n‘);
        outX=PSOSAxGbest
%        break;       
    end     
end
t= 1:1:Times;
plot(tPSOSAfGbest‘*‘);
% %-----------------------fitness---------------------------%
% save PSOXORNNDate.mat PSOSAxGbest PSOSAfGbest -append;
% indexf = find(PSOSAfGbest < Err);
% PSOSASR = length(indexf)/Times
% % temp = PSOSAfGbest(indexf);
% % fGbest = temp;
% % PSOSAfGbMin = min(fGbest)
% % PSOSAfGbMean = mean(fGbest)
% % PSOSAfGbMax = max(fGbest)
% % PSOSAfGbStd = std(fGbest)
% %%--------------精度---------------%%
% PSOSAfGbMin = min(PSOSAfGbest)
% PSOSAfGbMean = mean(PSOSAfGbest)
% PSOSAfGbMax = max(PSOSAfGbest)
% PSOSAfGbStd = std(PSOSAfGbest)
% %%--------------------------------%%
% save PSOXORNNDate.mat PSOSASR PSOSAfGbMin PSOSAfGbMean PSOSAfGbMax PSOSAfGbStd -append;
% fprintf(fid ‘%s\n\n‘ [‘PSOSA的成功率为: ‘ num2str(PSOSASR)  ‘  最小适应值为: ‘ num2str(PSOSAfGbMin)...
%     ‘  平均适应值为: ‘ num2str(PSOSAfGbMean)  ‘  最大适应值为: ‘ num2str(PSOSAfGbMax)...
%     ‘  方差为: ‘ num2str(PSOSAfGbStd)]);
% %-----------------------times---------------------------%
% save PSOXORNNDate.mat  PSOSATrainTimes  -append;
% % index = find(PSOSATrainTimes < MaxIter);
% % SR = length(index)/Times
% % temp = PSOSATrainTimes(index);
% % fGbest = temp;
% PSOSATrainTimesMin = min(PSOSATrainTimes)
% PSOSATrainTimesMean = mean(PSOSATrainTimes)
% PSOSATrainTimesMax = max(PSOSATrainTimes)
% PSOSATrainTimesStd = std(PSOSATrainTimes)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-03-21 20:35  PSOSA5\
     文件        2165  2011-05-29 21:51  PSOSA5\Curve.asv
     文件        2298  2011-05-29 19:18  PSOSA5\Curve.m
     文件         624  2011-05-26 21:58  PSOSA5\FitNess.asv
     文件         624  2011-05-26 22:00  PSOSA5\FitNess.m
     文件        2189  2011-05-29 21:55  PSOSA5\main.m
     文件        1313  2011-05-29 21:26  PSOSA5\plotcurve.asv
     文件        1263  2011-05-29 21:34  PSOSA5\plotcurve.m
     文件        2818  2011-05-28 10:43  PSOSA5\PSOSA.asv
     文件        2831  2011-05-28 15:53  PSOSA5\PSOSA.m

评论

共有 条评论