@遗传算法gaot箱的问题
#如题,为什么我用遗传算法处理这个函数,去寻找他的最大/最小值的时候,结果是这样呢?应该不是陷入局部最小值把?
这个是main文件
y = -4:0.2:4;
x = -4:0.1:4;
[x,y]=meshgrid(x,y); % meshgrid函数的作用就在于把行向量变成矩阵,从而能够在后面计算中把z变成矩阵
z = y.*exp(-x.^2-y.^2);
figure
mesh(x,y,z)
xlabel('自变量')
ylabel('自变量')
zlabel('因变量')
title('z = y.*exp(-x.^2-y.^2)')
initPop = initializega(50,[-4 4;-4 4],'fitness2'); % 上下界用矩阵来写[-4 4 ;-4 4]
[x endPop bpop trace] = ga([-4 4;-4 4],'fitness2',[],initPop,[1e-6 1 1],'maxGenTerm',250,...
'normGeomSelect',0.08,'arithXover',2,'nonUnifMutation',[2 25 3]);
x
hold on
plot (endPop(:,1),endPop(:,2),'ro'
下面是适应度函数,写在另一个文件
function [sol,so2, fitnessVal] = fitness2(sol,so2, options)
x = sol(1);
y = so2(1);
fitnessVal = 1/y.*exp(-x.^2-y.^2);
end