[Ipopt] Using IPOPT to solve NLP subproblems generated by an outer-approximation algorithm
Ayotte-Sauvé, Étienne
Etienne.Ayotte-Sauve at RNCan-NRCan.gc.ca
Fri Feb 17 15:54:53 EST 2012
Andreas, thank you very much for the option suggestions, for the insight on what may be happening
(and for saving me the time of finding the Bonmin IPOPT settings).
In order for me to investigate in more detail what is happening, I'd like to know if there is a way
(e.g. using print_level) to have information on the Hessian (objective, Lagrangian
or reduced) and on the KKT matrix at each iteration.
By using the options acceptable_dual_inf_tol = 1e30 and acceptable_obj_change_tol = 1e-4, the calculation
times decrease by roughly 20% for the majority of instances I tested. However, in some cases, adding these
non-default options actually increases calculation times (see example below). Note that in all instances I tested,
the Bonmin options increased calculation times with respect to the default settings.
I'll continue experimenting with acceptable_* options and looking further into why the primal feasibility threshold
is achieved rather rapidly while its dual counterpart is harder to achieve (as you said, maybe the KKT matrix is singular).
Remark. All examples have the same initialization.
*****
================
DEFAULT SETTINGS
================
Major Major Objective CPU time Itera- Evaluation Solver
Step Iter Function (Sec) tions Errors
MIP 1 137.54720 5.53 10042 0 cbc
NLP 2 12.61042< 6.73 246 0 ipopt
MIP 2 151.19669 5.33 6174 0 cbc
NLP 3 12.97316 10.80 393 0 ipopt
--- DICOPT: Terminating...
--- DICOPT: Stopped on NLP worsening
The search was stopped because the objective function
of the NLP subproblems started to deteriorate.
--- DICOPT: Best integer solution found: 12.610419
========================
ALTERNATE IPOPT SETTINGS
========================
acceptable_dual_inf_tol 1e30
acceptable_obj_change_tol 1e-4
Major Major Objective CPU time Itera- Evaluation Solver
Step Iter Function (Sec) tions Errors
MIP 1 137.54720 5.53 10042 0 cbc
NLP 2 12.61042< 173.02 6002 0 ipopt
MIP 2 158.40236 4.22 3392 0 cbc
NLP 3 12.50573< 78.70 2698 0 ipopt
MIP 3 204.26209 9.02 7222 0 cbc
NLP 4 12.50767 100.02 3677 0 ipopt
--- DICOPT: Terminating...
--- DICOPT: Stopped on NLP worsening
The search was stopped because the objective function
of the NLP subproblems started to deteriorate.
--- DICOPT: Best integer solution found: 12.505727
===============
BONMIN SETTINGS
===============
expect_infeasible_problem yes
gamma_phi 1e-08
gamma_theta 0.0001
mu_oracle probing
mu_strategy adaptive
required_infeasibility_reduction 0.1
Major Major Objective CPU time Itera- Evaluation Solver
Step Iter Function (Sec) tions Errors
MIP 1 137.54720 5.69 10042 0 cbc
NLP 2 12.61042< 120.19 4248 0 ipopt
MIP 2 160.54575 4.78 3993 0 cbc
NLP 3 12.17984< 41.45 1535 0 ipopt *Nonopt*
MIP 3 160.56090 3.63 3511 0 cbc
NLP 4 12.15164< 56.84 2049 0 ipopt
MIP 4 165.72705 8.00 7725 0 cbc
NLP 5 12.18169 64.58 2448 0 ipopt *Nonopt*
--- DICOPT: Terminating...
--- DICOPT: Stopped on NLP worsening
The search was stopped because the objective function
of the NLP subproblems started to deteriorate.
--- DICOPT: Best integer solution found: 12.151645
*Nonopt*: an NLP subproblem was not solved to optimality. The solution
was feasible however, so this solution was accepted.
*****
Stefan, thanks for your answer. I'll test the different Bonmin options and definitely download the new GAMS version.
As for purchasing access to other linear solvers, I'll definitely consider it as a last resort.
Again, thanks to all for taking the time to answer my questions. It is very much appreciated.
Etienne
More information about the Ipopt
mailing list