ANIMA  4.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
anima::BoundedLevenbergMarquardtOptimizer Class Reference

Levenberg-Marquardt optimizer with lower and upper bounds on parameters Implementation of the original algorithmm, very well described in K. Madsen, H.B. Nielsen and O. Tingleff. Methods for non-linear least squares problems. 2004 http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf Bounded version by projection as suggested by Kanzow et al. but with a lot of modifications, including calculation of optimal lambda C. Kanzow, N. Yamashita and M. Fukushima. Levenberg-Marquardt methods with strong local convergence properties for solving nonlinear equations with convex constraints. Journal of computational and applied mathematics. 172:375-397, 2004. More...

#include <animaBoundedLevenbergMarquardtOptimizer.h>

+ Inheritance diagram for anima::BoundedLevenbergMarquardtOptimizer:
+ Collaboration diagram for anima::BoundedLevenbergMarquardtOptimizer:

Public Types

typedef itk::SmartPointer< const SelfConstPointer
 
typedef Superclass::CostFunctionType CostFunctionType
 
typedef Superclass::MeasureType MeasureType
 
typedef itk::SmartPointer< SelfPointer
 
typedef BoundedLevenbergMarquardtOptimizer Self
 
typedef itk::MultipleValuedNonLinearOptimizer Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual double GetCurrentValue ()
 
virtual const char * GetNameOfClass () const
 
virtual void SetCostTolerance (double _arg)
 
virtual void SetLowerBounds (ParametersType _arg)
 
virtual void SetNumberOfIterations (unsigned int _arg)
 
virtual void SetUpperBounds (ParametersType _arg)
 
virtual void SetValueTolerance (double _arg)
 
void StartOptimization () ITK_OVERRIDE
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 BoundedLevenbergMarquardtOptimizer ()
 
bool CheckConditions (unsigned int numIterations, ParametersType &newParams, ParametersType &oldParams, ParametersType &dValues, double newCostValue)
 
bool CheckSolutionIsInBounds (ParametersType &solutionVector, ParametersType &lowerBounds, ParametersType &upperBounds, unsigned int rank)
 
double EvaluateCostFunctionAtParameters (ParametersType &parameters, MeasureType &residualValues)
 
void UpdateLambdaParameter (DerivativeType &derivative, ParametersType &dValues, std::vector< unsigned int > &pivotVector, ParametersType &qtResiduals, unsigned int rank)
 
virtual ~BoundedLevenbergMarquardtOptimizer () ITK_OVERRIDE
 

Detailed Description

Levenberg-Marquardt optimizer with lower and upper bounds on parameters Implementation of the original algorithmm, very well described in K. Madsen, H.B. Nielsen and O. Tingleff. Methods for non-linear least squares problems. 2004 http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf Bounded version by projection as suggested by Kanzow et al. but with a lot of modifications, including calculation of optimal lambda C. Kanzow, N. Yamashita and M. Fukushima. Levenberg-Marquardt methods with strong local convergence properties for solving nonlinear equations with convex constraints. Journal of computational and applied mathematics. 172:375-397, 2004.

Definition at line 21 of file animaBoundedLevenbergMarquardtOptimizer.h.

Member Typedef Documentation

◆ ConstPointer

Definition at line 29 of file animaBoundedLevenbergMarquardtOptimizer.h.

◆ CostFunctionType

Definition at line 34 of file animaBoundedLevenbergMarquardtOptimizer.h.

◆ MeasureType

Definition at line 35 of file animaBoundedLevenbergMarquardtOptimizer.h.

◆ Pointer

Definition at line 28 of file animaBoundedLevenbergMarquardtOptimizer.h.

◆ Self

Standard class typedefs.

Definition at line 26 of file animaBoundedLevenbergMarquardtOptimizer.h.

◆ Superclass

typedef itk::MultipleValuedNonLinearOptimizer anima::BoundedLevenbergMarquardtOptimizer::Superclass

Definition at line 27 of file animaBoundedLevenbergMarquardtOptimizer.h.

Constructor & Destructor Documentation

◆ BoundedLevenbergMarquardtOptimizer()

anima::BoundedLevenbergMarquardtOptimizer::BoundedLevenbergMarquardtOptimizer ( )
inlineprotected

◆ ~BoundedLevenbergMarquardtOptimizer()

virtual anima::BoundedLevenbergMarquardtOptimizer::~BoundedLevenbergMarquardtOptimizer ( )
inlineprotectedvirtual

Definition at line 65 of file animaBoundedLevenbergMarquardtOptimizer.h.

Member Function Documentation

◆ CheckConditions()

bool anima::BoundedLevenbergMarquardtOptimizer::CheckConditions ( unsigned int  numIterations,
ParametersType &  newParams,
ParametersType &  oldParams,
ParametersType &  dValues,
double  newCostValue 
)
protected

Definition at line 335 of file animaBoundedLevenbergMarquardtOptimizer.cxx.

Referenced by StartOptimization().

◆ CheckSolutionIsInBounds()

bool anima::BoundedLevenbergMarquardtOptimizer::CheckSolutionIsInBounds ( ParametersType &  solutionVector,
ParametersType &  lowerBounds,
ParametersType &  upperBounds,
unsigned int  rank 
)
protected

Definition at line 246 of file animaBoundedLevenbergMarquardtOptimizer.cxx.

◆ CreateAnother()

virtual::itk::LightObject::Pointer anima::BoundedLevenbergMarquardtOptimizer::CreateAnother ( void  ) const

◆ EvaluateCostFunctionAtParameters()

double anima::BoundedLevenbergMarquardtOptimizer::EvaluateCostFunctionAtParameters ( ParametersType &  parameters,
MeasureType residualValues 
)
protected

Definition at line 323 of file animaBoundedLevenbergMarquardtOptimizer.cxx.

Referenced by StartOptimization().

◆ GetCurrentValue()

virtual double anima::BoundedLevenbergMarquardtOptimizer::GetCurrentValue ( )
virtual

◆ GetNameOfClass()

virtual const char* anima::BoundedLevenbergMarquardtOptimizer::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

◆ New()

static Pointer anima::BoundedLevenbergMarquardtOptimizer::New ( )
static

Method for creation through the object factory.

◆ SetCostTolerance()

virtual void anima::BoundedLevenbergMarquardtOptimizer::SetCostTolerance ( double  _arg)
virtual

◆ SetLowerBounds()

virtual void anima::BoundedLevenbergMarquardtOptimizer::SetLowerBounds ( ParametersType  _arg)
virtual

◆ SetNumberOfIterations()

virtual void anima::BoundedLevenbergMarquardtOptimizer::SetNumberOfIterations ( unsigned int  _arg)
virtual

◆ SetUpperBounds()

virtual void anima::BoundedLevenbergMarquardtOptimizer::SetUpperBounds ( ParametersType  _arg)
virtual

◆ SetValueTolerance()

virtual void anima::BoundedLevenbergMarquardtOptimizer::SetValueTolerance ( double  _arg)
virtual

◆ StartOptimization()

void anima::BoundedLevenbergMarquardtOptimizer::StartOptimization ( )

◆ UpdateLambdaParameter()

void anima::BoundedLevenbergMarquardtOptimizer::UpdateLambdaParameter ( DerivativeType &  derivative,
ParametersType &  dValues,
std::vector< unsigned int > &  pivotVector,
ParametersType &  qtResiduals,
unsigned int  rank 
)
protected

The documentation for this class was generated from the following files: