[Ipopt] Line Search

Andreas Waechter andreasw at watson.ibm.com
Fri Sep 26 19:37:15 EDT 2008

Hi Dominik,

Just one more note:

You asked if Ipopt knows in advance if it will require only the function 
values, and if that could be signalled to the evaluation methods.

The answer is that Ipopt does not know in advance if it will require also 
the derivative information at a later point before it knows the function 
values.  The point of the line search is to try different candidate 
iterates, and once Ipopt is happy with the values, then it will accept a 
candidates as the new iterate.  At the new iterate, it will then ask for 
the derivatives to compute the next search direction.  If Ipopt knew in 
advance that a trial candidate is not good (and would then definitely not 
require the derivatives), it would not even ask for the function values.

So, in summary, unfortunately, there is no way to know in advance if more 
than just the function values are required at a trial point during the 
line search.

Hope this helps,


On Wed, 24 Sep 2008, Andrey Romanenko wrote:

> Hi!
> We use CVODES and Iptopt in a multiple shooting setup.
> If you use forward sensitivities then what you can do is integrate the system
> only when you are in eval_f and eval_g (caching things as you do) and carry
> out both integration and sensitivity analysis when you are in grad_f and
> jac_g and hess.
> If you use adjoing sensitivity analysis and new_x == false in jac_g and
> grad_f, then just do the adjoint backward swing to get the sensitivities. In
> such setup you should use separate CVODES memory areas for each shooting
> interval so that the checkpointing works correctly.
> Hope this helps.
> Regards,
> Andrey Romanenko
> On Sunday 21 September 2008 16:24:24 Dominik Skanda wrote:
>> Hi,
>> I want to use IpOpt for a MultipleShooting Code by use of CVODES a
>> Integration package with sensitivity support. My Code is running now and I
>> use the "new_x" boolean flag in the evaluate functions to save
>> computations. But by now my code is computing the sensitivities even when
>> the algorithm performs a line search. Is there a way to tell the functions
>> eval_g and eval_f that with this (linesearch performing) x  values no
>> sensitivities are needed, for example by hacking the IpOpt code. Is there a
>> way to extend the functions eval_f and eval_g with a new boolen flag
>> (performing linesearch).
>> Many thanks in advance
>> Dominik
>> ____________________________________________________________________
>> Psssst! Schon vom neuen WEB.DE MultiMessenger gehört?
>> Der kann`s mit allen: http://www.produkte.web.de/messenger/?did=3123
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/ipopt
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt

More information about the Ipopt mailing list