Main Page
Groups
Namespace List
Class Hierarchy
Alphabetical List
Compound List
File
List
Namespace Members
Compound Members
File Members
Concepts
itk::LBFGSBOptimizer Class Reference
[Numerics, Optimizers]
Limited memory Broyden Fletcher Goldfarb Shannon minimization with simple bounds.
More...
#include <itkLBFGSBOptimizer.h>
Inheritance diagram for itk::LBFGSBOptimizer:
[legend]Collaboration diagram for itk::LBFGSBOptimizer:
[legend]List of all members.
Detailed Description
Limited memory Broyden Fletcher Goldfarb Shannon minimization with simple bounds.
This class is a wrapper for converted fortan code for performing limited memory Broyden Fletcher Goldfarb Shannon minimization with simple bounds. The algorithm miminizes a nonlinear function f(x) of n variables subject to simple bound constraints of l <= x <= u.
See also the documentation in Numerics/lbfgsb.c
References:
[1] R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for Bound Constrained Optimization, (1995), SIAM Journal on Scientific and Statistical Computing , 16, 5, pp. 1190-1208.
[2] C. Zhu, R. H. Byrd and J. Nocedal. L-BFGS-B: Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization (1997), ACM Transactions on Mathematical Software, Vol 23, Num. 4, pp. 550 - 560.
Definition at line 51 of file itkLBFGSBOptimizer.h.
Member Typedef Documentation
|
BoundSelection type Use for defining the boundary condition for each variables.
Definition at line 75 of file itkLBFGSBOptimizer.h. |
|
BoundValue type. Use for defining the lower and upper bounds on the variables.
Definition at line 70 of file itkLBFGSBOptimizer.h. |
Constructor & Destructor Documentation
itk::LBFGSBOptimizer::LBFGSBOptimizer |
( |
|
) |
[protected] |
|
Member Function Documentation
|
Set the boundary condition for each variable, where select[i] = 0 if x[i] is unbounded, = 1 if x[i] has only a lower bound, = 2 if x[i] has both lower and upper bounds, and = 3 if x[1] has only an upper bound |
virtual double itk::LBFGSBOptimizer::GetCostFunctionConvergenceFactor |
( |
|
) |
[virtual] |
|
|
Set/Get the CostFunctionConvergenceFactor. Algorithm terminates when the reduction in cost function is less than factor * epsmcj where epsmch is the machine precision. Typical values for factor: 1e+12 for low accuracy; 1e+7 for moderate accuracy and 1e+1 for extremely high accuracy. |
virtual const unsigned int& itk::LBFGSBOptimizer::GetCurrentIteration |
( |
|
) |
[virtual] |
|
|
Get the current iteration number. |
virtual const double& itk::LBFGSBOptimizer::GetInfinityNormOfProjectedGradient |
( |
|
) |
[virtual] |
|
|
Get the current infinity norm of the project gradient of the cost function. |
virtual const BoundValueType& itk::LBFGSBOptimizer::GetLowerBound |
( |
|
) |
[virtual] |
|
|
Set the lower bound value for each variable. |
virtual unsigned int itk::LBFGSBOptimizer::GetMaximumNumberOfCorrections |
( |
|
) |
[virtual] |
|
|
Set/Get the MaximumNumberOfCorrections. Default is 5 |
virtual unsigned int itk::LBFGSBOptimizer::GetMaximumNumberOfEvaluations |
( |
|
) |
[virtual] |
|
|
Set/Get the MaximumNumberOfEvaluations. Default is 500 |
virtual unsigned int itk::LBFGSBOptimizer::GetMaximumNumberOfIterations |
( |
|
) |
[virtual] |
|
|
Set/Get the MaximumNumberOfIterations. Default is 500 |
virtual const char* itk::LBFGSBOptimizer::GetNameOfClass |
( |
|
) |
const [virtual] |
|
virtual double itk::LBFGSBOptimizer::GetProjectedGradientTolerance |
( |
|
) |
[virtual] |
|
|
Set/Get the ProjectedGradientTolerance. Algorithm terminates when the project gradient is below the tolerance. Default value is 1e-5. |
virtual const BoundValueType& itk::LBFGSBOptimizer::GetUpperBound |
( |
|
) |
[virtual] |
|
|
Set the upper bound value for each variable. |
virtual const MeasureType& itk::LBFGSBOptimizer::GetValue |
( |
|
) |
[virtual] |
|
|
Get the current cost function value. |
Pointer itk::LBFGSBOptimizer::New |
( |
|
) |
[static] |
|
void itk::LBFGSBOptimizer::PrintSelf |
( |
std::ostream & |
os, |
|
|
Indent |
indent |
|
) |
const [protected, virtual] |
|
|
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::SingleValuedNonLinearOptimizer. |
virtual void itk::LBFGSBOptimizer::SetBoundSelection |
( |
const BoundSelectionType & |
select |
) |
[virtual] |
|
|
Set the boundary condition for each variable, where select[i] = 0 if x[i] is unbounded, = 1 if x[i] has only a lower bound, = 2 if x[i] has both lower and upper bounds, and = 3 if x[1] has only an upper bound |
virtual void itk::LBFGSBOptimizer::SetCostFunctionConvergenceFactor |
( |
double |
_arg |
) |
[virtual] |
|
|
Set/Get the CostFunctionConvergenceFactor. Algorithm terminates when the reduction in cost function is less than factor * epsmcj where epsmch is the machine precision. Typical values for factor: 1e+12 for low accuracy; 1e+7 for moderate accuracy and 1e+1 for extremely high accuracy. |
virtual void itk::LBFGSBOptimizer::SetLowerBound |
( |
const BoundValueType & |
value |
) |
[virtual] |
|
|
Set the lower bound value for each variable. |
virtual void itk::LBFGSBOptimizer::SetMaximumNumberOfCorrections |
( |
unsigned int |
_arg |
) |
[virtual] |
|
|
Set/Get the MaximumNumberOfCorrections. Default is 5 |
virtual void itk::LBFGSBOptimizer::SetMaximumNumberOfEvaluations |
( |
unsigned int |
_arg |
) |
[virtual] |
|
|
Set/Get the MaximumNumberOfEvaluations. Default is 500 |
virtual void itk::LBFGSBOptimizer::SetMaximumNumberOfIterations |
( |
unsigned int |
_arg |
) |
[virtual] |
|
|
Set/Get the MaximumNumberOfIterations. Default is 500 |
virtual void itk::LBFGSBOptimizer::SetProjectedGradientTolerance |
( |
double |
_arg |
) |
[virtual] |
|
|
Set/Get the ProjectedGradientTolerance. Algorithm terminates when the project gradient is below the tolerance. Default value is 1e-5. |
void itk::LBFGSBOptimizer::SetScales |
( |
const ScalesType & |
|
) |
[inline] |
|
virtual void itk::LBFGSBOptimizer::SetUpperBound |
( |
const BoundValueType & |
value |
) |
[virtual] |
|
|
Set the upper bound value for each variable. |
void itk::LBFGSBOptimizer::StartOptimization |
( |
void |
|
) |
[virtual] |
|
|
Start optimization with an initial value.
Reimplemented from itk::Optimizer. |
The documentation for this class was generated from the following file:
Generated at Thu May 25 01:35:07 2006 for ITK by
1.3.5 written by Dimitri van Heesch,
© 1997-2000