#include <itkLBFGSBOptimizer.h>
Inheritance diagram for itk::LBFGSBOptimizer:


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.
Optimizers
Definition at line 51 of file itkLBFGSBOptimizer.h.
Public Types | |
| typedef Array< int > | BoundSelectionType |
| typedef Array< double > | BoundValueType |
| typedef SmartPointer< const Self > | ConstPointer |
| typedef CostFunctionType::Pointer | CostFunctionPointer |
| typedef SingleValuedCostFunction | CostFunctionType |
| typedef CostFunctionType::DerivativeType | DerivativeType |
| typedef CostFunctionType::MeasureType | MeasureType |
| typedef Superclass::ParametersType | ParametersType |
| typedef SmartPointer< Self > | Pointer |
| typedef Superclass::ScalesType | ScalesType |
| typedef LBFGSBOptimizer | Self |
| typedef SingleValuedNonLinearOptimizer | Superclass |
Public Member Functions | |
| virtual LightObject::Pointer | CreateAnother () const |
| virtual void | DebugOff () const |
| virtual void | DebugOn () const |
| virtual void | Delete () |
| Set the boundary condition for each where and *virtual const BoundSelectionType & | GetBoundSelection () |
| Command * | GetCommand (unsigned long tag) |
| virtual const CostFunctionType * | GetCostFunction () |
| virtual double | GetCostFunctionConvergenceFactor () |
| virtual const unsigned int & | GetCurrentIteration () |
| virtual const ParametersType & | GetCurrentPosition () |
| bool | GetDebug () const |
| virtual const double & | GetInfinityNormOfProjectedGradient () |
| virtual const ParametersType & | GetInitialPosition () |
| virtual const BoundValueType & | GetLowerBound () |
| virtual unsigned int | GetMaximumNumberOfCorrections () |
| virtual unsigned int | GetMaximumNumberOfEvaluations () |
| virtual unsigned int | GetMaximumNumberOfIterations () |
| const MetaDataDictionary & | GetMetaDataDictionary (void) const |
| MetaDataDictionary & | GetMetaDataDictionary (void) |
| virtual unsigned long | GetMTime () const |
| virtual const char * | GetNameOfClass () const |
| virtual double | GetProjectedGradientTolerance () |
| virtual int | GetReferenceCount () const |
| virtual const ScalesType & | GetScales () |
| virtual const BoundValueType & | GetUpperBound () |
| MeasureType | GetValue (const ParametersType ¶meters) const |
| virtual const MeasureType & | GetValue () |
| bool | HasObserver (const EventObject &event) const |
| void | InvokeEvent (const EventObject &) const |
| void | InvokeEvent (const EventObject &) |
| virtual void | Modified () const |
| void | Print (std::ostream &os, Indent indent=0) const |
| virtual void | Register () const |
| void | RemoveAllObservers () |
| void | RemoveObserver (unsigned long tag) |
| virtual void | SetCostFunction (CostFunctionType *costFunction) |
| *e for moderate accuracy and e for extremely high accuracy *virtual void | SetCostFunctionConvergenceFactor (double _arg) |
| void | SetDebug (bool debugFlag) const |
| virtual void | SetInitialPosition (const ParametersType ¶m) |
| Set the lower bound value for each variable *virtual void | SetLowerBound (const BoundValueType &value) |
| Set Get the MaximumNumberOfCorrections Default is *virtual void | SetMaximumNumberOfCorrections (unsigned int _arg) |
| Set Get the MaximumNumberOfEvaluations Default is *virtual void | SetMaximumNumberOfEvaluations (unsigned int _arg) |
| Set Get the MaximumNumberOfIterations Default is *virtual void | SetMaximumNumberOfIterations (unsigned int _arg) |
| void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
| Set Get the ProjectedGradientTolerance Algorithm terminates *when the project gradient is below the tolerance Default value *is e *virtual void | SetProjectedGradientTolerance (double _arg) |
| virtual void | SetReferenceCount (int) |
| void | SetScales (const ScalesType &) |
| Set the upper bound value for each variable *virtual void | SetUpperBound (const BoundValueType &value) |
| void | StartOptimization (void) |
| virtual void | UnRegister () const |
Static Public Member Functions | |
| static void | BreakOnError () |
| static bool | GetGlobalWarningDisplay () |
| static void | GlobalWarningDisplayOff () |
| static void | GlobalWarningDisplayOn () |
| static Pointer | New () |
| This is a global flag that controls whether any warning *or error messages are displayed *static void | SetGlobalWarningDisplay (bool flag) |
Public Attributes | |
| Allow people to add remove invoke observers(callbacks) to any ITK *object.This is an implementation of the subject/observer design *pattern.An observer is added by specifying an event to respond to *and an itk unsigned lon | AddObserver )(const EventObject &event, Command *) const |
| This is a global flag that controls whether any | debug |
| 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 |
| Set the boundary condition for each where * | select [i] = 0 if x[i] is unbounded |
| Set the boundary condition for each | variable |
Protected Member Functions | |
| LBFGSBOptimizer () | |
| bool | PrintObservers (std::ostream &os, Indent indent) const |
| void | PrintSelf (std::ostream &os, Indent indent) const |
| virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
| virtual void | SetCurrentPosition (const ParametersType ¶m) |
| virtual | ~LBFGSBOptimizer () |
Protected Attributes | |
| CostFunctionPointer | m_CostFunction |
| int | m_ReferenceCount |
| SimpleFastMutexLock | m_ReferenceCountLock |
| bool | m_ScalesInitialized |
| Methods invoked by virtual 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.*/virtual void PrintSelf(std voi | PrintHeader )(std::ostream &os, Indent indent) const |
|
|
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 65 of file itkLBFGSBOptimizer.h. |
|
|
Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 59 of file itkLBFGSBOptimizer.h. |
|
|
Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 82 of file itkLBFGSBOptimizer.h. |
|
|
Type of the Cost Function Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 81 of file itkLBFGSBOptimizer.h. |
|
|
Derivative type. It defines a type used to return the cost function derivative. Definition at line 64 of file itkSingleValuedNonLinearOptimizer.h. |
|
|
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. |
|
|
Parameters type. It defines a position in the optimization search space. Reimplemented from itk::NonLinearOptimizer. Reimplemented in itk::AmoebaOptimizer, itk::FRPROptimizer, itk::PowellOptimizer, and itk::QuaternionRigidTransformGradientDescentOptimizer. Definition at line 48 of file itkSingleValuedNonLinearOptimizer.h. |
|
|
Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 58 of file itkLBFGSBOptimizer.h. |
|
|
Scale type. This array defines scale to be applied to parameters before being evaluated in the cost function. This allows to map to a more convenient space. In particular this is used to normalize parameter spaces in which some parameters have a different dynamic range. Reimplemented from itk::Optimizer. Definition at line 52 of file itkNonLinearOptimizer.h. |
|
|
Standard "Self" typedef. Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 56 of file itkLBFGSBOptimizer.h. |
|
|
Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 57 of file itkLBFGSBOptimizer.h. |
|
|
|
|
|
|
|
|
This method is called when itkExceptionMacro executes. It allows the debugger to break on error. |
|
|
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class. Reimplemented from itk::LightObject. |
|
|
Turn debugging output off. |
|
|
Turn debugging output on. |
|
|
Delete an itk object. This method should always be used to delete an object when the new operator was used to create it. Using the C delete method will not work with reference counting. |
|
|
|
|
|
Get the command associated with the given tag. NOTE: This returns a pointer to a Command, but it is safe to asign this to a Command::Pointer. Since Command inherits from LightObject, at this point in the code, only a pointer or a reference to the Command can be used. |
|
|
Get the cost function. |
|
|
|
|
|
Get the current iteration number. |
|
|
Get current position of the optimization. |
|
|
Get the value of the debug flag. |
|
|
|
|
|
Get the current infinity norm of the project gradient of the cost function. |
|
|
Get the position to initialize the optimization. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Run-time type information (and related methods). Reimplemented from itk::SingleValuedNonLinearOptimizer. |
|
|
|
|
|
Gets the reference count on this object. Definition at line 98 of file itkLightObject.h. |
|
|
Get current parameters scaling. |
|
|
|
|
|
Get the cost function value at the given parameters. Reimplemented in itk::SPSAOptimizer. |
|
|
Get the current cost function value. |
|
|
Definition at line 100 of file itkObject.h. References itk::Object::SetGlobalWarningDisplay(). |
|
|
Definition at line 98 of file itkObject.h. References itk::Object::SetGlobalWarningDisplay(). |
|
|
Return true if an observer is registered for this event. |
|
|
Call Execute on all the Commands observing this event id. The actions triggered by this call doesn't modify this object. |
|
|
Call Execute on all the Commands observing this event id. |
|
|
|
Method for creation through the object factory. Reimplemented from itk::SingleValuedNonLinearOptimizer. |
|
||||||||||||
|
Cause the object to print itself out. |
|
||||||||||||
|
|
|
||||||||||||
|
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. |
|
||||||||||||
|
|
|
|
Increase the reference count (mark as used by another object). Reimplemented from itk::LightObject. |
|
|
Remove all observers . |
|
|
Remove the observer with this tag value. |
|
|
Set the cost function. |
|
|
|
|
|
Set the current position. |
|
|
Set the value of the debug flag. A non-zero value turns debugging on. |
|
|
Referenced by itk::Object::GlobalWarningDisplayOff(), and itk::Object::GlobalWarningDisplayOn(). |
|
|
Set the position to initialize the optimization. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sets the reference count (use with care) Reimplemented from itk::LightObject. |
|
|
This optimizer does not support scaling of the derivatives. Reimplemented from itk::Optimizer. Definition at line 139 of file itkLBFGSBOptimizer.h. References itkExceptionMacro. |
|
|
|
|
|
Start optimization with an initial value. Reimplemented from itk::Optimizer. |
|
|
Decrease the reference count (release by another object). Reimplemented from itk::LightObject. |
|
|
|
|
|
Definition at line 94 of file itkObject.h. |
|
|
Definition at line 108 of file itkLBFGSBOptimizer.h. |
|
|
Definition at line 80 of file itkSingleValuedNonLinearOptimizer.h. |
|
|
Number of uses of this object by other objects. Definition at line 119 of file itkLightObject.h. |
|
|
Mutex lock to protect modification to the reference count Definition at line 122 of file itkLightObject.h. |
|
|
Definition at line 90 of file itkOptimizer.h. |
|
|
|
|
|
Definition at line 96 of file itkLBFGSBOptimizer.h. |
|
|
Definition at line 95 of file itkLBFGSBOptimizer.h. |
1.4.2 written by Dimitri van Heesch,
© 1997-2000