Questions about Multi Objective Linear Programming (MOLP) with 'fminimax'

4 次查看(过去 30 天)
Hello, I have questions about 'fminimax' for Multi Objective Linear Programming (MOLP).
The settings for my optimization are on the below
I have concerns that if I change the values on the myfun (e.g., 7104057.18 , 1334616299.17) in terms of changing decimal, the 'X_All' value changes relatively severe (e.g., the patterns are changed between no decimal point and second decimal point). Is it common phenomena? and how do I understand and interpret it?
Second, I want to check whether the optimal values of X_ALL and fval_ALL from different setting that mentioned above are stable point. The MATLAB tells that these points are local minimum. But is it possible that the global minimum point can be returned in 'fminimax' ?
Thanks
x0 = ones(243,1);
P = [];
P = P.';
LB = zeros(243,1);
UB = ones(243,1);
TP = [];
aeq=[];
beq=[];
nonlcon = [@nonlinearcon];
%% options
opts_reduced = optimoptions(@fminimax,'MaxFunctionEvaluations', 10000000000);
%% fminimax
[x_ALL,fval_ALL] = fminimax(@myfun_MOLP,x0,P,TP,aeq,beq,LB,UB,nonlcon,opts_reduced);
%% myfun_MOLP
C = [123935;85425;....];
E = [12300389;....];
C = C.';
E = E.';
f(1)= 0 *((7104057.18- C*x ) /7104057.18) ; %% 100 is the arbitary weight number %%
f(2)= 100 *((1334616299.17- E*x ) /1334616299.17) ;
%%nonlinearcon
function [n,neq] = nonlinearcon(x)
neq = [5931530;29746801;....];
neq = neq.';
neq = neq*x - 531027688.5;
n = [];
end
  1 个评论
Matt J
Matt J 2019-2-14
Note that the minimax solution of an MOLP is an ordinary single objective linear program, and therefore can be solved instead using linprog. In particular, we can write the problem as
where the are all linear. This is a just a linear program in (x,z).

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2019-2-14
编辑:Matt J 2019-2-14
I have concerns that if I change the values on the myfun (e.g., 7104057.18 , 1334616299.17) in terms of changing decimal, the 'X_All' value changes relatively severe (e.g., the patterns are changed between no decimal point and second decimal point). Is it common phenomena?
Yes, it is normal that changing the objective function changes the solution, but maybe if you give an example, I can give a more focused answer.
The MATLAB tells that these points are local minimum. But is it possible that the global minimum point can be returned in 'fminimax' ?
It is possible if you choose the initial guess x0 sufficiently close to the global minimum.
  6 个评论
Young Gwan Lee
Young Gwan Lee 2019-2-14
Okay. Here is an example.
The objective function is Min Q, subject to Wc*(Oc-∑Ci*Xi)*(1/Oc)≤Q and We*(Oe-∑Ei*Xi)*(1/Oe)≤Q, where 'Wc' is hypothetical weight for objective C, 'We' is hypotheicial weight for objective E, 'Oc' and 'Oe' are maximized values of object C and E from single objective maximization, 'Ci' and 'Ce' denote coefficient for objective C and E, Xi is a decision variable. I want to minimize the deviation 'Q' when the constaints are simultaneously satistied.
Given this example, could you please explain why the difference of X from the adjusting the decimal point from Oc and Oe is occured relatively bigger and how can I minimize that defference?
Thank you
Matt J
Matt J 2019-2-14
编辑:Matt J 2019-2-18
It's the part "adjusting the decimal point" that I don't understand. Please give an example of that.
Generally speaking, though, if you are changing Oc and Oe in any way then you are changing the problem and will get a new solution. I don't know why you think you can expect that change to be small, necessarily.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Distributed Arrays 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by