[Ipopt] Objective function decreases extremely slowly

Ana Maria Barragan Montero ana.barragan at uclouvain.be
Fri Aug 14 05:25:33 EDT 2015

Dear all,

I am using IPOPT (through Matlab interface) with the option limited memory bfgs hessian approximation to solve a problem of the following characteristics (the total number of variables can change but it is often between 5000 and 10000).

This is Ipopt version 3.11.8, running with linear solver ma57.

Number of nonzeros in equality constraint Jacobian...:             0
Number of nonzeros in inequality constraint Jacobian.:    60613
Number of nonzeros in Lagrangian Hessian.............:                 0

Total number of variables............................:                            8659
               variables with only lower bounds:                            8659
     variables with lower and upper bounds:                                  0
               variables with only upper bounds:                                  0
Total number of equality constraints.................:                            0
Total number of inequality constraints...............:                           7
  inequality constraints with only lower bounds:                          7
   inequality constraints with lower and upper bounds:               0
   inequality constraints with only upper bounds:                         0


Here below you can find the ipopt options I am using (those which do not appear are set by the program to their default value)

 % Initialization
options.ipopt.bound_frac = 0.01;
options.ipopt.bound_push = 0.001;

options.ipopt.dual_inf_tol     = 1;
options.ipopt.constr_viol_tol  = 0.0001;
options.ipopt.compl_inf_tol    = 0.0001;
options.ipopt.acceptable_constr_viol_tol = 0.01;

% NLP scaling
options.ipopt.nlp_scaling_max_gradient = 100;

% Quasi-Newton
options.ipopt.hessian_approximation = 'limited-memory';
options.ipopt.limited_memory_update_type = 'bfgs';

% Barrier parameter
options.ipopt.mu_strategy = 'monotone';
options.ipopt.mu_init = 0.1;

My problem is that I need a lot of iterations (more than 1500) to get a good result because the objective function (which has a very big value in the beginning) is decreasing extremely slowly. As an example here you have the print output for the iteration 10 and 500:

iter          objective                inf_pr          inf_du      lg(mu)      ||d||       lg(rg)    alpha_du    alpha_pr   ls

 10      5.4760000e+10    0.00e+00     6.20e+02    -0.2     3.33e+02    -         6.13e-02   1.23e-02f    1   sigma=1.00e-06 qf=13Ws

 500   2.9078333e+10    1.38e+10      1.00e+00    -2.9     9.18e+13    -         4.66e-09    3.06e-10f   1  sigma=6.04e-01 qf=12Wp

I wonder if I could use any other ipopt options to make the objective function decrease faster so that I can reduce the number of iterations. Moreover, I am using ma57 solver, do you recommend me any other (as PARDISO for example) for large problems as this one?

I guess that it is normal that the program takes longer at the beginning to find the good search direction since it does not have the information about the hessian because I am using the bfgs approx. In my case I have the information to calculate analytically the hessian. To calculate it at each iteration would increase considerably the computation time, however, I could calculate it at the beginning and thus initialize the hessian to the right value. Do you think that would reduce the number of iterations?

I am new with IPOPT and I don't have much experience in the field of optimization so please let me know if you need more information about my problem (formulation, variables, etc..) that can help you to find a solution.

Thank you in advance,


Ana María Barragán Montero,
PhD student
Université catholique de Louvain
Molecular Imaging, Radiotherapy and Oncology (MIRO)
Avenue Hippocrate 54
B-1200 Bruxelles, Belgium
ana.barragan at uclouvain.be
+32(0) 27649527
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20150814/4776f75a/attachment.html>

More information about the Ipopt mailing list