[Ipopt] Can IPOPT do this

Damien Hocking damien at 0x544745.com
Thu Jun 11 00:09:04 EDT 2009


Ned,

The basis for IPOPT is a smooth, continuously-differentiable problem 
space.  I'm now going to throw in something here that can give purists 
an enurism.  Are your two sets of constraints "similar", in that their 
problem spaces are reasonably close together, or that you're solving 
mostly the same problem with some differences?  Examples might be 
turbulent-laminar flow correlations, or a distillation column model with 
different sets of specifications but similar operating conditions.  The 
key here is that the problem is about the same shape.  In these sorts of 
cases, you might be able to get IPOPT to find an answer that's good 
enough.  It might not be the global optimum, but it might be a better 
answer with satisfied constraints.  The way I think about the 
transitions between the constraint sets is that each set of constraints 
is generating a new, hopefully better initial estimate or starting point 
for the next set of constraints.  This isn't very elegant but it can 
work.  You will have to code the loop that switches the constraint sets 
and drives IPOPT yourself, because you'll be deallocating and rebuilding 
IPOPT instances as it stumbles along, and only preserving the variable 
values.  It will be slow on large systems, because the Jacobian will 
need to be re-factored from scratch each time the constraints change.  
If you have a significantly different set of variables for each set of 
constraints then you do need to go to the effort of setting the problem 
up in a MINLP solver like Bonmin.

As I said, this isn't elegant (it's a hot pink shirt with an orange 
jacket), but it can work.  And there are no guarantees at all, and 
Andreas might kick me off the list forever for suggesting this. ... :-)

Damien


Andreas Waechter wrote:
> Hi Ned,
>
> I'm copying your email to the Ipopt mailing list - in general, it might be 
> a good idea to send questions like this one there, since other people 
> might have better ideas then me...
>
> No, Ipopt cannot deal with the situation you describe, it requires 
> functions that are at least once continuously differentiable.  Otherwise, 
> it might get stuck.
>
> You can look at methods for non-smooth optimization, or you can maybe 
> model your problem as an MINLP.  If the resulting problem formulation is 
> convex (unlikely, since your have equality constraints, unless you can 
> relax them), you can use method like Bonmin or FilMINT, otherwise there 
> are a number of global optimization codes, such as BARON, Lago, or 
> Couenne.  (Bonmin, Couenne, and Lago are available on COIN.)
>
> Regards,
>
> Andreas
>
> On Mon, 8 Jun 2009, Ned Nedialkov wrote:
>
>   
>> Hi Andreas,
>>
>> I need to minimize a function subject to constraints that are not 
>> differentiable everywhere.
>> That is, my constraint function is generally of the sort
>>
>> 	if (some condition on x_i's)
>> 	   F_1(x_1, ..., x_n) = 0
>> 	else
>> 	   F_2(x_1, ..., x_n)  = 0
>>
>> where I can provide Jacobians for F_1 and F_2. My objective is simple, min 
>> ||x-a||_2^2.
>>
>> I am wondering if the theory behind IPOPT can deal with this. If not, do you 
>> have any idea
>> what method/software may be applicable.
>>
>> Many thanks,
>> Ned
>>
>>
>>     
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>   



More information about the Ipopt mailing list