我最小化了MATLAB中的目标函数y = abs(x-1)
,我观察到了
计算输出结果。我定义了一个包含一组值的初始种群。
例如initialPopulation = [100;70;100;200;200]
。 populationSize
等于5
。
MATLAB输出了最佳population
,score
,即...的值
目标函数 - fval
和目标函数变量的值 - x
。
function [x,fval,exitflag,output,population,score] = opt_001()
%% This is an auto generated MATLAB file from Optimization Tool.
nvars = 1;
%% Start with the default options
a = [100;70;100;200;200];
options = gaoptimset;
%% Modify options setting
options = gaoptimset(options,'Display','iter');
options = gaoptimset(options,'Generations', 61,'StallGenLimit',60);
options = gaoptimset(options,'InitialPopulation',a,'PopulationSize',5);
[x,fval,exitflag,output,population,score] = ...
ga(@opt,nvars,[],[],[],[],[],[],[],[],options);
function [y] = opt(t)
y = abs( t - 1 )
x = 1.1472
fval = 0.1472
output =
problemtype: 'unconst…'
rngstate: [1x1 struct]
generations: 61
funccount: 310
message: 'Optimiz…'
maxconstraint: []
population =
1.1472
1.2929
1.2929
1.1472
1.2929
score =
0.1472
0.2929
0.2929
0.1472
0.2929
我希望初始和最终人口具有相同的值空间。
相比之下看结果,似乎是最好的价值了
最终总体收敛于目标函数的变量值x
。
分数值与目标函数fval
我认为这很奇怪,我想 谈论这个是个好主意。 初始和最终都不奇怪 人口没有相同的数量级? 有什么想法吗?提前谢谢!