📄 evostrategy.m
字号:
function [bestPI,bestX]=EvoStrategy(obj_fcn,itera,maxmin,ranges,StopSign);
% Implementation of Evolution Strategy in Matlab.
rand('state',sum(100*clock));
randn('state',sum(100*clock));
LOW=ranges(1,:);DIFF=ranges(2,:)-ranges(1,:);
[junk,numVars]=size(ranges);
x=rand(1,numVars).*DIFF+LOW;RANG=ranges';
PI=feval(obj_fcn,x);
bestX=x; bestPI=PI;
for i=1:itera
x=x+randn(1,numVars);
% Overlimits
%II=find(x<RANG(1,:));
%if ~isempty(II)
% x(II)=ranges(1,II);
%end
%II=find(x>RANG(2,:));
%if ~isempty(II)
% x(II)=ranges(2,II);
%end,x,pause
PI=feval(obj_fcn,x);
if maxmin== 1 & bestPI<PI
bestPI=PI; bestX=x;
elseif maxmin==-1 & bestPI>PI
bestPI=PI; bestX=x;
else
if StopSign==1 & PI==0
break;
end
end
% Print out
fprintf('Iter=%5d;PI=%.6f;',i,bestPI);
if length(x)<=2
fprintf('x=%.6f;%.6f;\n',x);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -