# [Ipopt] quantification of Ipopt's convergence

Fri Feb 3 11:04:40 EST 2017

Dear all,

I searched since the beginning of my work with Ipopt for the following and
honestly I do not succeed in finding it.
I would be very thankful if someone of the developers could please provide
accurate formulas for the following of Ipopts numerical quantities as they
occur in each individual iteration:

- The primal infeasibility, called inf_pr
- The dual infeasibility, called inf_du
- The objective, called objective
- The quantified global convergence value, i.e. the analogue to the per
iteration strictly decreasing merit function value of a merit function only
depending on x (and not on any parameter whatsoever); called
compound_objective

In order to give explicit formulas for the abovementioned I w.r.t. the
problem statement let's agree on the following notation to state the NLP.

min f(x)
s.t. cL <= c(x) <= cR
and s.t. xL <= x <= xR

The related Lagrange-multipliers of [c;x] we call lambda_left, lambda_right
w.r.t. the left and right constraints, repectively.

I make the following suggestions which are however already proven by
observation of a counter-example to be wrong.

inf_pr = max(  norm( max( [cL-c(x),c(x)-cR,zeros(size(cL))],[],2 ) ,
'inf' ) , norm( max([x-xL,xR-x],[],2), 'inf' ) )
inf_du = norm( max( [-lambda_left , -lambda_right , zeros(size(cL))],[],2 )
, 'inf' )
objective = f(x)
compound_objective = f(x) + 10^10 * ( inf_pr )

I frequently observe a situation such as shown in the following example:

Iteration; objective; primal_inf; dual_inf; lg(mu)
11 ; 8.7315477e+001 ; 1.59e+000 ; 3.87e+003 ; 0.1
...
15 ; 8.7457269e+001 ; 2.38e+000 ; 5.43e+003 ;  -0.1

I hope that from precise formulas for Ipopt's realizations of the above
measures I will be finally able to understand the reason and usefulness for
this behaviour.

Kind regards
Martin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20170203/d645a3ae/attachment.html>