将符号方程转换为适应性功能,可以通过遗传算法评估



i具有符号方程,并希望转换为可以通过遗传算法(GA)评估的函数。我尝试使用MATLABFUNCONT,并将符号方程转换为MATLAB文件。但是,该生成的文件只能通过Fmincon或Patternsearch算法而不是遗传算法来评估。我使用GA

遇到了此错误。

由:初始用户提供的健身功能评估中的失败。GA不能继续。

似乎Matlabfunction不会生成GA要求的格式,任何人都可以建议该问题的解决方案/解决方法是什么?

代码如下:

N = 24;
X = sym('x',[2*N 1]);
Y = X(1:N);
W = 3.2516e-6.*Y.^3 - 0.0010074.*Y.^2 + 0.390950.*Y+2.2353;
Z = P.*W;
totR = sum(Z);
totR = subs(totR,[P],[price]);
matlabFunction(totR,'vars',{X},'file','objFcn');
% Call to ga
x1 = ga(@objFcn, N*2, A, b, Aeq, beq)

谢谢!

来自 ga的文档:

健身函数应接受长度为nvars的行矢量并返回标量值。

您的objFcn接受了列向量并在行传递的情况下引发错误。您可以通过将此行更改为:

来解决此问题(我认为)( )
X = sym('x',[1 2*N]);

如果P是非量表,则可能需要对其进行转换。当然,如果没有可运行的代码,也可能发生各种其他事情。您可能还有其他地方和方法可以解决这个问题。

相关内容

最新更新