[Ipopt] How to deal with out of constraints evaluation requests ?

Tue Apr 23 04:08:08 EDT 2013

```The problem is that inverse matrix occurs in jac_g, as the gradiant of the determinant. So using such a trick looks complicated.

> Message du 18/04/13 22:46
> De : "Tony Kelman"
> A : aurelien-lambert2 at wanadoo.fr, ipopt at list.coin-or.org
> Copie à :
> Objet : Re: [Ipopt] How to deal with out of constraints evaluation requests ?
>
> Another reformulation you can consider is instead of inverting matrices in
> your objective or constraint functions, let the linear solver in Ipopt do
> the inversion for you. That's its job, after all.
>
> If you have an expression of the form A(x)^(-1) * x in some functions, you
> can introduce a new vector variable y and equality constraints A(x) * y ==
> x. Then you can replace every occurrence of A(x)^(-1) * x with y, and your
> functions will no longer have the inversion issue. For regions where A(x) is
> singular, the equality constraint will likely not be feasible, but the
> functions should at least be well-defined.
>
> -Tony
>
> -----Original Message-----
> From: aurelien lambert
> Date: Wed, 17 Apr 2013 14:48:24 +0200 (CEST)
> To: ipopt at list.coin-or.org
> Subject: [Ipopt] How to deal with out of constraints evaluation requests ?
>
> Hello
>
> Im using Ipopt with its python interface in my internship, and it seems to
> do well, thank you for this nice job :-) I compiled the last sources of
> every needed libraries (including MUMPS, on Ubuntu), so I should be up to
> date. But my problem is I cant evaluate f, grad_f and jac_g (no h because in
> quasi-Newton mode) when Im out of my constraints, because I need to compute
> inverse of some matrices constrained to be positive definite, but which can
> have non inverse when not. So how can I do that ?
>
> * If g returns false (which make python return false in the C++ interface
> according to the source code), I have the message "Warning: Cutting back
> alpha due to evaluation error". It's just a warning and works fine, but if I
> lower the output level in order to not write these warnings, I have no
> useful output left.
>
> * If I compute g (which gives out of constraint g, I checked it), ipopt also
> try to evaluate f and grad_f, and grad_f returning false gives "EXIT:
> Invalid number in NLP function or derivative detected.", which stops the
> algorithm.
>
> Is there a way to disable these warnings ? Is not ipopt suppose to handle
> silently false return value, or detect out of constraints g ?
>
> Thank you
>
> PS : I dont give my source code because it's quite long, and my problem
> doesnt seem to be related to it. But if you need it I can ...
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130423/d6655808/attachment.html>
```