找到最佳组合

时间:2015-07-14 11:20:45

标签: matlab optimization

我正在尝试对此进行优化:function [ LPS, LCE ] = runProject( Nw, Np, Nb)调用我之前编写的其他函数。我们的想法是找到NwNpNb的最佳组合并保持LPS=0,而LCE最小。Nw NpNbLCE应为正整数。 function [ LPS, LCE ] = runProject( Nw, Np, Nb) % % Detailed explanation goes here [Pg, Pw, Pp] = Pgener(); [Pb, LPS] = Bat( Pg ); [LCE] = Constr(Pw, Pp, Nb) end 也将是积极的。

gamultiobj

但是,我尝试了matlab2015的Global Optimization Toolbox(试用版)中的define( 'WP_USE_THEMES', false ); require($_SERVER['DOCUMENT_ROOT'] .'/wp-config.php'); 求解器,以获得与帕累托前沿不同的方法,但是我收到了错误: “优化运行。 运行优化时出错。 没有足够的输入参数。“

enter image description here

1 个答案:

答案 0 :(得分:1)

您应该编写您的目标函数,如下例所示:

function scores = rastriginsfcn(pop)
%RASTRIGINSFCN Compute the "Rastrigin" function.
    % pop = max(-5.12,min(5.12,pop));
    scores = 10.0 * size(pop,2) + sum(pop .^2 - 10.0 * cos(2 * pi .* pop),2);

如您所见,该函数接受所有输入作为单个向量pop

通过这种表示,我可以按如下方式评估函数:

rastriginsfcn([2 3])
>> ans
     13

仍然要从工具箱中运行优化,你必须提到变量的数量,例如,在我的例子中,它等于2:

[x fval exitflag] = ga(@rastriginsfcn, 2)

多目标优化也是如此。检查MATHWORKS中的以下图像:

enter image description here