MATLAB中目标函数的优化

MATLAB中目标函数的优化,matlab,Matlab,我有一个关于MATLAB函数gamultiobj函数在获取帕累托前沿时的问题 在具有线性约束的最大化问题中,如何利用遗传算法将多个函数的最小化转化为最小 例如,不是解决: Min [2*x(1) - x(2) - exp(-x(1)); x(1) + 2*x(2) - exp(-x(2))]; %with Bounds lb = [0;0]; ub = [1;1]; 查找以下最大值: Max [2*x(1) - x(2) - exp(-x(1)); -x(

我有一个关于MATLAB函数gamultiobj函数在获取帕累托前沿时的问题

在具有线性约束的最大化问题中,如何利用遗传算法将多个函数的最小化转化为最小

例如,不是解决:

Min [2*x(1) - x(2) - exp(-x(1));
     x(1) + 2*x(2) - exp(-x(2))];

%with  Bounds
lb = [0;0];
ub = [1;1];
查找以下最大值:

Max [2*x(1) - x(2) - exp(-x(1));
            -x(1) + 2*x(2) - exp(-x(2))];

%with  Bounds
lb = [0;0];
ub = [1;1];
max(f(x))
的解决方案与
-min(-f(x))

非常简单,因为只有最小化,您可以通过如下方式更改目标函数每个系数的符号,使Matlab最大化您的问题:

f = -[2*x(1) - x(2) - exp(-x(1));
     x(1) + 2*x(2) - exp(-x(2))];
您不需要更改上下限

然后,一旦运行函数并获得解,请确保也反转它们的符号。这是必要的,否则您的解决方案将是错误的


这种行为也可以在函数和用于解决线性规划问题的函数中找到。

感谢您使用这种有用的技巧。这类behiavour是否也与MATLAB函数fminimax一起出现?这是正确的。
fminimax
也会最小化,因此您需要应用相同的方法。