我想在GA中进行更改,这是我的代码:
nvar=16;
options=gaoptimset('PlotFcns'{@gaplotbestf},'PopulationType','custom',
'TolFun',1e4,'CreationFcn',@mycreate,'CrossoverFcn',@mycross,
'MutationFcn',@mymutate,'PopulationSize',10*nvar);
p=[ 1 3.2 5 2 3 2.7 1.5 2 3 2 6 3.3 1.5 2.3 4 2.5 2 3 3.2 1.2 3 5 6.5 4 9 8 2.1 3 5 7.6 4 3 ];
a=AB;
b=B;
FitnessFCN=@(x) myfitness(x,p,a,b);
[x,fval,reason,output]=ga(FitnessFCN,nvar,[],[],[],[],[],[],[],options);
具有32个元素的向量实际上是具有16对的向量,我的意思是:
p=[ (1 3.2) (5 2) (3 2.7) (1.5 2) (3 2) (6 3.3) (1.5 2.3) (4 2.5) (2 3) (3.2 1.2) (3 5) (6.5 4) (9 8) (2.1 3) (5 7.6) (4 3) ];
我希望GA做对的排列而不是所有的元素,我的意思是第二个向量不是第一个向量,但GA在32个元素上做GA。我的意思是GA返回我的x必须是16的向量对。感谢。