[Ipopt] adaptive error tolerance for integrator

Andreas Waechter andreasw at watson.ibm.com
Mon May 11 18:27:48 EDT 2009


Hi Dominik,

From a theoretical point of view, Ipopt needs to know the exact function 
and first derivative values (more expensive in your case) in each 
iteration, in order to guarantee that it can always find a step that is 
acceptable.

In principle, it is probably possible to design an optimization algorithm 
that is able to work with approximate values of the function and 
derivative values and might tell your simulator, who accurate the 
computation has to be.  But Ipopt is not such an algorithm.

On thing you might want to experiment with (but that might not work or 
make your program not reliable) is to set the tolerances for your 
integrator depending on the current optimality error in Ipopt.  Once per 
iteration, Ipopt calls the intermediate_callback method in the TNLP (which 
you can overload), and it gives the user some information regarding the 
current point (objective function value, current primal and dual 
infeasibility, current barrier parameter).  You could overload this method 
and use that information to decide whether Ipopt seems close to being 
converged or still far from a solution.  Once you get closer to a 
solution, Ipopt will definitely need good function values, but far from 
the solution you might be able to get away with only approximate 
information.  However, all this would just be a heuristic, would require a 
lot of tuning, and will not always work.

Regards,

Andreas

On Mon, 4 May 2009, Dominik Skanda wrote:

> Hi all,
> I'm using Ipopt together with cvodes (a numerical integrator with 
> sensitivity capabilities). Now I wonder how to choose the error 
> tolerance of my integrator correctly so that it provides accurate values 
> for the objective and sensitivity values within Ipopt and given 
> Ipopt-accuracy (tol value). If I set the error tolerance of my 
> integrator too low ipopt doesn't converge. If i set it too high, it 
> needs much computer power. Is there a guideline how accurate the values 
> for the eval_f, eval_g and eval_derivatives have to be, so that Ipopt 
> converges? Is there a way to tune the error tolerance in an adaptive 
> way?
> Thanks a lot!
>
> 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
>
>


More information about the Ipopt mailing list