ANIMA
4.0
|
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>
Public Types | |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef Superclass::CostFunctionType | CostFunctionType |
typedef Superclass::MeasureType | MeasureType |
typedef itk::SmartPointer< Self > | Pointer |
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 ¶meters, MeasureType &residualValues) |
void | UpdateLambdaParameter (DerivativeType &derivative, ParametersType &dValues, std::vector< unsigned int > &pivotVector, ParametersType &qtResiduals, unsigned int rank) |
virtual | ~BoundedLevenbergMarquardtOptimizer () ITK_OVERRIDE |
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.
typedef itk::SmartPointer<const Self> anima::BoundedLevenbergMarquardtOptimizer::ConstPointer |
Definition at line 29 of file animaBoundedLevenbergMarquardtOptimizer.h.
typedef Superclass::CostFunctionType anima::BoundedLevenbergMarquardtOptimizer::CostFunctionType |
Definition at line 34 of file animaBoundedLevenbergMarquardtOptimizer.h.
typedef Superclass::MeasureType anima::BoundedLevenbergMarquardtOptimizer::MeasureType |
Definition at line 35 of file animaBoundedLevenbergMarquardtOptimizer.h.
typedef itk::SmartPointer<Self> anima::BoundedLevenbergMarquardtOptimizer::Pointer |
Definition at line 28 of file animaBoundedLevenbergMarquardtOptimizer.h.
Standard class typedefs.
Definition at line 26 of file animaBoundedLevenbergMarquardtOptimizer.h.
typedef itk::MultipleValuedNonLinearOptimizer anima::BoundedLevenbergMarquardtOptimizer::Superclass |
Definition at line 27 of file animaBoundedLevenbergMarquardtOptimizer.h.
|
inlineprotected |
Definition at line 53 of file animaBoundedLevenbergMarquardtOptimizer.h.
References anima::BLMLambdaCostFunction::New().
|
inlineprotectedvirtual |
Definition at line 65 of file animaBoundedLevenbergMarquardtOptimizer.h.
|
protected |
Definition at line 335 of file animaBoundedLevenbergMarquardtOptimizer.cxx.
Referenced by StartOptimization().
|
protected |
Definition at line 246 of file animaBoundedLevenbergMarquardtOptimizer.cxx.
virtual::itk::LightObject::Pointer anima::BoundedLevenbergMarquardtOptimizer::CreateAnother | ( | void | ) | const |
|
protected |
Definition at line 323 of file animaBoundedLevenbergMarquardtOptimizer.cxx.
Referenced by StartOptimization().
|
virtual |
|
virtual |
Run-time type information (and related methods).
|
static |
Method for creation through the object factory.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
void anima::BoundedLevenbergMarquardtOptimizer::StartOptimization | ( | ) |
Start optimization
Definition at line 9 of file animaBoundedLevenbergMarquardtOptimizer.cxx.
References CheckConditions(), EvaluateCostFunctionAtParameters(), anima::GetQtBFromQRPivotDecomposition(), anima::QRPivotDecomposition(), and UpdateLambdaParameter().
|
protected |
Definition at line 261 of file animaBoundedLevenbergMarquardtOptimizer.cxx.
References anima::DekkerRootFindingAlgorithm::Optimize(), anima::BaseRootFindingAlgorithm::SetCostFunctionTolerance(), anima::BaseRootFindingAlgorithm::SetFunctionValueAtInitialLowerBound(), anima::BaseRootFindingAlgorithm::SetLowerBound(), anima::BaseRootFindingAlgorithm::SetMaximumNumberOfIterations(), anima::BaseRootFindingAlgorithm::SetRootFindingFunction(), anima::BaseRootFindingAlgorithm::SetRootRelativeTolerance(), and anima::BaseRootFindingAlgorithm::SetUpperBound().
Referenced by StartOptimization().