[Coin-ipopt] Conditioning termination on objective value?

Andreas Waechter andreasw at watson.ibm.com
Tue May 3 19:01:51 EDT 2005

Hi Frank,

> Is there a means (e.g., combination of tuning parameters) to set IPOPT's
> termination criterion, based on moving below some declared value of the
> objective (F_min)?
> For my given problem, I know I want negligible constraint violation, so I
> can readily set DCMAXTOL appropriately.  But I can't see how to relate
> F_min to the (scaled, unscaled) dual infeasibility, and thus DTOL.
> If I'm merely missing some elementary NLP maths, please point me to a
> suitable reference.

There is currently no such tolerance on the objective function, because
usually the optimal value is not known (otherwise it is more like a
feasibility problem than an optimization problem).

There is a tolerance called 'dinfmaxtol' which works similarly to
'dcmaxtol' in the sense that you can explicitly specify an enforced upper
bound on the (unscaled) "dual infeasibility" and "complementarity" (the
parts of the termination criteria that measure the optimality), which has
to be satisfied before the algorithm terminates (similarly, like dcmaxtol
is such an upper bound on the constraint violation).

In other words, Ipopt terminates, if the overall error criterion (scaled)
is below dtol AND the (unscaled) primal infeasibility is below dcmaxtol
AND the (unscaled) dual infeasibility and complementarity are below

If feasibility is much more important to you than optimality, you could
try the following:

1. choose a relatively large overall terminator criterion
   (dtol, e.g., 1d-3)
2. choose a tight tolerance for the constraint violation
   (dcmaxtol, e.g., 1d-8)
3. choose a less strong tolerance for the dual infeasibility
   (dinfmaxtol, e.g., 1d-3)

Maybe that does already what you want.


More information about the Coin-ipopt mailing list