Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::LBFGSBOptimizer Class Reference
[NumericsOptimizers]

Limited memory Broyden Fletcher Goldfarb Shannon minimization with simple bounds. More...

#include <itkLBFGSBOptimizer.h>

Inheritance diagram for itk::LBFGSBOptimizer:

Inheritance graph
[legend]
Collaboration diagram for itk::LBFGSBOptimizer:

Collaboration graph
[legend]
List of all members.

Public Types

typedef LBFGSBOptimizer Self
typedef SingleValuedNonLinearOptimizer Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Array< double > BoundValueType
typedef Array< int > BoundSelectionType
typedef SingleValuedCostFunction CostFunctionType
typedef CostFunctionType::Pointer CostFunctionPointer
typedef CostFunctionType::MeasureType MeasureType

Public Member Functions

virtual const char * GetNameOfClass () const
void StartOptimization (void)
void SetScales (const ScalesType &)
virtual const unsigned int & GetCurrentIteration ()
virtual const MeasureTypeGetValue ()
virtual const double & GetInfinityNormOfProjectedGradient ()
virtual void SetLowerBound (const BoundValueType &value)
virtual const BoundValueTypeGetLowerBound ()
virtual void SetUpperBound (const BoundValueType &value)
virtual const BoundValueTypeGetUpperBound ()
virtual void SetBoundSelection (const BoundSelectionType &select)
virtual const BoundSelectionTypeGetBoundSelection ()
virtual void SetCostFunctionConvergenceFactor (double _arg)
virtual double GetCostFunctionConvergenceFactor ()
virtual void SetProjectedGradientTolerance (double _arg)
virtual double GetProjectedGradientTolerance ()
virtual void SetMaximumNumberOfIterations (unsigned int _arg)
virtual unsigned int GetMaximumNumberOfIterations ()
virtual void SetMaximumNumberOfEvaluations (unsigned int _arg)
virtual unsigned int GetMaximumNumberOfEvaluations ()
virtual void SetMaximumNumberOfCorrections (unsigned int _arg)
virtual unsigned int GetMaximumNumberOfCorrections ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

 LBFGSBOptimizer ()
virtual ~LBFGSBOptimizer ()
void PrintSelf (std::ostream &os, Indent indent) const

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

typedef Array<int> itk::LBFGSBOptimizer::BoundSelectionType
 

BoundSelection type Use for defining the boundary condition for each variables.

Definition at line 75 of file itkLBFGSBOptimizer.h.

typedef Array<double> itk::LBFGSBOptimizer::BoundValueType
 

BoundValue type. Use for defining the lower and upper bounds on the variables.

Definition at line 70 of file itkLBFGSBOptimizer.h.

typedef SmartPointer<const Self> itk::LBFGSBOptimizer::ConstPointer
 

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 59 of file itkLBFGSBOptimizer.h.

typedef CostFunctionType::Pointer itk::LBFGSBOptimizer::CostFunctionPointer
 

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 82 of file itkLBFGSBOptimizer.h.

typedef SingleValuedCostFunction itk::LBFGSBOptimizer::CostFunctionType
 

Type of the Cost Function

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 81 of file itkLBFGSBOptimizer.h.

typedef CostFunctionType::MeasureType itk::LBFGSBOptimizer::MeasureType
 

Measure type. It defines a type used to return the cost function value.

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 83 of file itkLBFGSBOptimizer.h.

typedef SmartPointer<Self> itk::LBFGSBOptimizer::Pointer
 

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 58 of file itkLBFGSBOptimizer.h.

typedef LBFGSBOptimizer itk::LBFGSBOptimizer::Self
 

Standard "Self" typedef.

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 56 of file itkLBFGSBOptimizer.h.

typedef SingleValuedNonLinearOptimizer itk::LBFGSBOptimizer::Superclass
 

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 57 of file itkLBFGSBOptimizer.h.


Constructor & Destructor Documentation

itk::LBFGSBOptimizer::LBFGSBOptimizer  )  [protected]
 

virtual itk::LBFGSBOptimizer::~LBFGSBOptimizer  )  [protected, virtual]
 


Member Function Documentation

virtual const BoundSelectionType& itk::LBFGSBOptimizer::GetBoundSelection  )  [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 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]
 

Run-time type information (and related methods).

Reimplemented from itk::SingleValuedNonLinearOptimizer.

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]
 

Method for creation through the object factory.

Reimplemented from itk::SingleValuedNonLinearOptimizer.

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]
 

This optimizer does not support scaling of the derivatives.

Reimplemented from itk::Optimizer.

Definition at line 139 of file itkLBFGSBOptimizer.h.

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 doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000