[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