I have a large scale multi objective optimization problem to solve with fmincon
solver of Matlab
. I tried different solver to get a better and faster output. Here is the challenge:
I am getting Exit Flag: 1,0,4,5
for different Pareto points ,as it is a multi-objective optimization problem, with Active-set algorithm
. Then I tried to check different algorithms like interior-point
and sqp
for generating the Pareto points. I observed that sqp
returns few exit flags 1
, some 2
and few 0
but not any 4
or 5
flag
. Also, I should note that, its 0
and 2
flagged solutions are correct answers . However, When it comes to return any exit flag
except 1
, it takes a long time to solve the Pareto point.
As interior-point
algorithm is designed for large scale program, it's very faster than sqp
in generating the Pareto solutions. However, it only returns solutions with Exit flag 0
. Unfortunately, its 0
flagged solutions are wrong solutions despite sqp
which its 0
and 2
flagged solutions are correct answers.
0) Is there anyway to config the fmincon
to solve my problem with interior-point
and also get the correct solutions? In the literature I saw some problems similar to mine have been solved with interior-point
algorithm.
1) Is there any settings (TolX,TolCon,...)
that I can use to get more exit flag 1
?
2) Is there any setting that speeds up the optimization process with the cost of lower accuracy?
3) For 2 Pareto points I am getting exit flag -2 , which means the problem is not feasible for them. It is expected from the nature of the problem. But it takes ages for fmincon
to determine the Exit-Flag -2. Is there any option that I can set to satisfy 1,2 and also leave this infeasible point faster?
I couldn't do this , because I can only set options for one time and all Pareto points should use the same option.
To describe the problem I should say:
I have several linear and nonlinear (.^2,Sin...)
for both equality and inequality constraints (about 300
) and also having 400
optimization variables. All objective functions of this multi-objective optimization problem is linear.
these are the options that I currently use. Please help me to modify it
options = optimset('Algorithm', 'sqp', 'Display', 'off');
options = optimset('Algorithm', 'sqp', 'Display', 'off', 'TolX',1e-6,...
'TolFun',1e-6,'MaxIter',1e2, 'MaxFunEvals', 1e4);
First option takes about 500 sec
for generating 15
Pareto points. Meaning that each optimization of fmincon
expend 33 sec
.
The second option takes 200 sec
, which is 13 sec
for each optimization of fmincon
.
Your help will be highly appreciated.