[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-gsl] Fix bug in multimin/directional_minimize.c
From: |
Brian Gough |
Subject: |
Re: [Bug-gsl] Fix bug in multimin/directional_minimize.c |
Date: |
Fri, 12 Mar 2010 11:56:33 +0000 |
User-agent: |
Wanderlust/2.14.0 (Africa) Emacs/22.1 Mule/5.0 (SAKAKI) |
At Fri, 5 Mar 2010 20:38:30 -0500 (EST),
Gallego Bonet, Guillermo wrote:
> I think it would be wise to replace, inside function
> intermediate_point(), the condition
>
> if (fb >= fa && stepb > 0.0)
>
> by
>
> if (fb >= fa && stepb > STEP_TOL)
>
> where one could define the tolerance to be any value related to the
> machine precision. I used
>
> #define STEP_TOL 1e-7
>
> I tested the Fletcher-Reeves and PR algorithms (
> gsl_multimin_fdfminimizer_conjugate_fr(), ... ) to minimize an
> expensive cost function in R^4 and I was surprised that the function
> gsl_multimin_fdfminimizer_iterate() would take so long to return. I
> found out it was because the line minimization routine was testing
> many smaller and smaller steps (up to 10^-186 !!, which I believe is
> totally unnecessary in any practical situation).
Thanks for the bug report. I agree the test could be stricter -- I
think the correct approach is to return when the step is small enough
that it does not alter the trial vector.
--
Brian Gough
GNU Scientific Library -
http://www.gnu.org/software/gsl/