[Scipy-tickets] [SciPy] #923: Adding new options to the optimize.fmin_l_bfgs_b procedure .

SciPy Trac scipy-tickets@scipy....
Mon Sep 17 17:54:12 CDT 2012

#923: Adding new options to the optimize.fmin_l_bfgs_b procedure .
 Reporter:  gilles.rochefort         |       Owner:  somebody    
     Type:  enhancement              |      Status:  needs_review
 Priority:  normal                   |   Milestone:  0.12.0      
Component:  scipy.optimize           |     Version:  devel       
 Keywords:  optimize, fmin_l_bfgs_b  |  

Comment(by gilles.rochefort):

 Considering the new stopping rule, I definitely disagree.
 The number of evaluations (gradient and function) is not the same as the
 number of iterations (i.e. the number of times the current minimizer is

 This L-BFGS-B algorithm is based on callback mechanisms. Internal fortran
 code asks for some actions to the python code. Such actions are actually :
 * compute the function and gradient ('FG')at given current estimate;
 * a 'NEW_X' action that just say a new estimate has been computed.

 Because this L-BFGS-B algorithm is based on a linesearch heuristic (the
 way to evaluate the step length at each iteration), the number of
 evaluations may be greater than the number of iterations (the number of
 time we update the initial estimate).

 I made a [pull request|https://github.com/scipy/scipy/pull/318] . When I
 tried for the standalone example in file lbfgsb.py the number of
 evaluations is 23 and the number of iteration is 21.

 While the number of function/gradient evaluations is relevant for
 computation time, the number of iterations is also needed to give an idea
 about the rate of convergence.

 By the way, I agree that the fortran output should be kept, but an option
 to disable it may be provided.

Ticket URL: <http://projects.scipy.org/scipy/ticket/923#comment:3>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.

More information about the Scipy-tickets mailing list