matlab中遗传算法的优化
我使用遗传算法编写了一个简单的优化代码。我不知道为什么在运行代码时出错。以下是我的代码:matlab中遗传算法的优化,matlab,mathematical-optimization,genetic-algorithm,Matlab,Mathematical Optimization,Genetic Algorithm,我使用遗传算法编写了一个简单的优化代码。我不知道为什么在运行代码时出错。以下是我的代码: f = @(x1,x2) 1-x1.^2+(x1-x2).^2; A = [1 1;-1 2;2 1]; b =[2 2 3]' ; Aeq = []; beq = []; Lb = [0 0]'; Ub = []; [Xopt,Fval] = ga(f,2,A,b,Aeq,beq,Lb,Ub) 我不知道为什么matlab会给我错误。我根据“遗传算法文档”编写了这个程序,但仍然给我错误: Error
f = @(x1,x2) 1-x1.^2+(x1-x2).^2;
A = [1 1;-1 2;2 1];
b =[2 2 3]' ;
Aeq = [];
beq = [];
Lb = [0 0]';
Ub = [];
[Xopt,Fval] = ga(f,2,A,b,Aeq,beq,Lb,Ub)
我不知道为什么matlab会给我错误。我根据“遗传算法文档”编写了这个程序,但仍然给我错误:
Error using @(x1,x2)1-x1.^2+(x1-x2).^2
Not enough input arguments.
Error in createAnonymousFcn>@(x)fcn(x,FcnArgs{:}) (line 11)
fcn_handle = @(x) fcn(x,FcnArgs{:});
Error in makeState (line 48)
firstMemberScore = FitnessFcn(state.Population(initScoreProvided+1,:));
Error in galincon (line 18)
state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);
Error in ga (line 351)
[x,fval,exitFlag,output,population,scores] = galincon(FitnessFcn,nvars, ...
Caused by:
Failure in initial user-supplied fitness function evaluation. GA cannot continue
MATLAB中所有优化方法的目标函数只接受1个参数。根据: 乐趣-目标函数 客观的 函数,指定为函数句柄或函数名写入 接受长度为nvars的行向量并返回 标量值 当“UseVectorized”选项为true时,编写fun以接受 按nvars排列的pop矩阵,其中pop是当前人口规模。在这个 在case中,fun返回一个与包含 适应度函数值。确保乐趣不会带来任何负面影响 pop的特定大小,因为ga可以通过 即使在矢量化计算中,人口也是如此 改变你的目标函数,它应该起作用:
f = @(x) 1-x(1).^2+(x(1)-x(2)).^2;
在SO中,[optimization]标记用于完全不同的主题。请在使用标签之前阅读标签的说明。这是什么意思?我刚刚给优化和matlab添加了标签,它们与遗传算法相关。我做了,但问题是答案不正确。每次我运行代码,它给了我不同的优化变量值和相应的目标函数的不正确值。我该怎么办?@MMd.NrC这是一般的超启发式的本质,1-它们是随机的,2-它们不能保证找到最优解。阅读不同的答案。增加popsize和代数以减少错误。但是如果你得到的是完全随机的结果总是偏离全局最优值,那么请提出一个新问题并插入你的完整代码。非常感谢。我确实知道算法和数值错误。但正如你所说的,我也想问,我完全得到了随机数。我不仅在多目标函数优化中得到了随机数,但即使是对一个目标函数的简单优化,我也会得到完全不正确和不理想的结果。