[Coin-ipopt] Ipopt with Automatic Differentiation

Andreas Waechter andreasw at watson.ibm.com
Wed May 2 15:53:56 EDT 2007


Hi,

>> 2. Once a trial step has been accepted, Ipopt currently asks first for the 
>> values of the first derivatives, and then computes the multipliers, and 
>> finally at a later point asks for the Hessian information.
>> 
>> In principle, we could reorder things so that the new values for the 
>> multipliers are computed before any derivatives are requested, and we could 
>> tell Ipopt to call some method in the (T)NLP to tell it about the 
>> multipliers.  Then, later on, the TNLP can compute first AND second 
>> derivatives at the same time whenever the first request for first 
>> derivatives comes in, and it could buffer any information until it is 
>> really requested by Ipopt.
>
> Maybe it would be not a bad idea in general that Ipopt asks for as much 
> evaluations as it needs within the same call, instead of calling for values 
> and derivatives in separate steps.
> In some cases like the one of Kipp that might allow some savings in the 
> computing time.
> But probably also the new_x boolean in the eval routines can help for this. 
> Is Ipopt already setting new_x to false from time to time?

That is the point of the new_x variable.  It is only set to true if the 
values have changed.  So, in principle, one could compute everything once 
new_x is true.  However, at that point Ipopt does not know if it needs the 
derivative information later on, since it has not yet decided if the trial 
point has been accepted in the line search.

But I think that Kipp's original question was if it is possible to tell 
the (T)NLP the values of the multipliers as early as possible so that also 
the Hessian can be computed...

Cheers

Andreas



More information about the Coin-ipopt mailing list