[Coin-ipopt] Ipopt feature request -- Phase 1 problem

Andreas Waechter andreasw at watson.ibm.com
Mon Apr 26 17:15:53 EDT 2004

Hi Kirk,

> Does Ipopt have a feasibility mode? By this I mean, each constraint is
> relaxed
> appropriately and a phase 1 problem is solved and the most violated
> constraints
> are reported.
> Clearly this can be done from the model level, but is perhaps most
> efficiently done
> from the solver.
> Does anyone else need/want this functionality?
> Thoughts?

If I understand correctly, you would like to have a mode that would ignore
the objective function, and then try to satisfy the constraint violation
as well as possible (e.g. by minimizing some norm of the constraints)?

If that is what you are asking for, then IPOPT's restoration phase (in the
full-space mode) would already do that for you, i.e. it would ignore the
objective function and minimize the l1-norm of the constraints (in some
sense).  The precise restoration phase problem is described in Section
3.3.1 of the technical report for IPOPT:


However, the restoration phase is currently only switched on if the
regular line search does not make good progress, and once a sufficiently
feasible point is computed, IPOPT switches back to the regular method.

One side effect of this is that if you give IPOPT an infeasible problem,
it converges to a local minimizer of the constraint violation (in the
l1-norm) - at least it should :-)

So, if all you want to do is to find a feasible point, why don't you give
the problem (either with a zero objective function or maybe better with a
simple convex quadratic objective function) to IPOPT?  It should then
either produce a feasible point, or if the constraints are inconsitent,
converge to the least infeasible point (in some sense).  Looking at which
constraints are not satisfied might give you an idea of which part of the
constraints give you trouble.

If you would like to try this strategie, it might be useful to set the
IPOPT parameter `DRESTOREDFACT' to zero (this corresponds to the constant
$\kappa_{resto}$ in the report).  This would cause IPOPT never to leave
the restoration phase once it is entered.  This parameter is not directly
available through AMPL, i.e. if you would use this strategy for an AMPL
model, you would have to create a file called `PARAMS.DAT' in the
directory where the solver executable is run, and put the line


into it.

I hope this helps,


More information about the Coin-ipopt mailing list