0

在 MATLAB 的全局优化工具箱中使用该函数时,我遇到了一个令人费解的错误ga,错误消息粘贴在下面,看看是否有人能破译这意味着什么。

我正在尝试ga使用初始种群(pop-by-nvar)来播种。但是,这会产生以下错误。ga如果我传入 (pop-1)-by-nvar 的初始种群向量,我只能运行。这有点不方便,因为我想指定整个人口。希望熟悉全局优化工具箱和ga功能的朋友在这里指点一下!

??? Index exceeds matrix dimensions.

Error in ==> gacreationlinearfeasible>lhsLambda at 213
    [lambda(i,:),f,e] = fmincon(fun,lambda(i,:),[],[],Aeq,beq,lb,ub,[],opts);

Error in ==> gacreationlinearfeasible>feasibleLHS at 180
            initialPopulation(boundary_points+1:interior_points+boundary_points,:) = ...

Error in ==> gacreationlinearfeasible at 42
        feasiblePop = feasibleLHS(individualsToCreate,GenomeLength,options);

Error in ==> makeState at 30
      state.Population = feval(options.CreationFcn,GenomeLength,FitnessFcn,options,options.CreationFcnArgs{:});

Error in ==> galincon at 18
state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);

Error in ==> ga at 282
        [x,fval,exitFlag,output,population,scores] = galincon(FitnessFcn,nvars, ...
4

2 回答 2

2

以下是使用 GA 并指定初始总体的示例:

%# find minima
initPop = bsxfun(@plus, [2 3], randn(20,2)*2);    %# 20-by-2 matrix
opts = gaoptimset('InitialPopulation',initPop);
[x, fx, flag, out, pop] = ga(@rastriginsfcn, 2, [],[], [],[], [],[], [], opts);

%# plot solution
figure('Renderer','opengl')
ezsurfc(@(x,y) rastriginsfcn([x,y])), colormap hot
line(x(1), x(2), fx, 'Marker','.', 'MarkerSize',50, 'Color','b')
view(3)

这是我在 72 代之后得到的解决方案:

截屏

请注意,Rastrigin 函数在 (0,0) 处具有全局最小值

于 2012-07-31T14:41:22.283 回答
0

在完全定义初始种群时我遇到了同样的问题(种群大小等于初始种群矩阵的行数)。它是由初始种群中的一个个体违反线性约束引起的。因此,检查手动分配的个人是否不违反线性约束。

于 2013-05-07T13:59:14.863 回答