📄 sc_evalde.m
字号:
function pop = sc_EvalDE(funcstr, maxnum)
global FunCount;
rand('state',sum(100*clock)) ;
[VTR, Box,szObjStr,OptX] = GetFuncInfo(funcstr);
D = size(Box, 1);
XVmin = Box(:,1)';
XVmax = Box(:,2)';
% y problem data vector (remains fixed during optimization)
y=[];
% NP number of population members
NP = 100;%min(100, D * 10);
% itermax maximum number of iterations (generations)
itermax = 1000;
% F DE-stepsize F ex [0, 2]
F = 0.9;
% CR crossover probabililty constant ex [0, 1]
CR = 0.9;
% strategy 1 --> DE/best/1/exp 6 --> DE/best/1/bin
% 2 --> DE/rand/1/exp 7 --> DE/rand/1/bin
% 3 --> DE/rand-to-best/1/exp 8 --> DE/rand-to-best/1/bin
% 4 --> DE/best/2/exp 9 --> DE/best/2/bin
% 5 --> DE/rand/2/exp else DE/rand/2/bin
strategy = 7
% refresh intermediate output will be produced after "refresh"
% iterations. No intermediate output will be produced
% if refresh is < 1
refresh = 50;
for i=1:maxnum
FunCount = 0;
[x(i,:),f(i), tt, pop] = devec3(szObjStr,VTR,D,XVmin,XVmax,y,NP,itermax,F,CR,strategy,refresh);
nf(i) = FunCount;
end;
flag = f < VTR;
fname = sprintf('RE_DE_%s.mat', funcstr);
save(fname, 'f', 'nf', 'flag','x','maxnum');
plot(pop(:,1),pop(:,2),'.')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -