NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
itk::UCLPowellOptimizer Class Reference
Inheritance diagram for itk::UCLPowellOptimizer:
Inheritance graph
[legend]
Collaboration diagram for itk::UCLPowellOptimizer:
Collaboration graph
[legend]

Public Types

typedef UCLPowellOptimizer Self
 
typedef
SingleValuedNonLinearOptimizer 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef
SingleValuedNonLinearOptimizer::ParametersType 
ParametersType
 
typedef SingleValuedCostFunction CostFunctionType
 
typedef CostFunctionType::Pointer CostFunctionPointer
 

Public Member Functions

virtual const char * GetClassName () const
 
virtual void SetMaximize (bool _arg)
 
virtual const bool & GetMaximize ()
 
virtual void SetMaximumIteration (unsigned int _arg)
 
virtual const unsigned intGetMaximumIteration ()
 
virtual void SetMaximumLineIteration (unsigned int _arg)
 
virtual unsigned int GetMaximumLineIteration () const
 
virtual void SetStepLength (double _arg)
 
virtual const double & GetStepLength ()
 
virtual void SetStepTolerance (double _arg)
 
virtual const double & GetStepTolerance ()
 
virtual void SetValueTolerance (double _arg)
 
virtual const double & GetValueTolerance ()
 
virtual const MeasureType & GetCurrentCost ()
 
MeasureType GetValue () const
 
virtual const unsigned intGetCurrentIteration ()
 
virtual const unsigned intGetCurrentLineIteration ()
 
void StartOptimization () override
 
void StopOptimization ()
 
virtual bool GetCatchGetValueException ()
 
virtual void SetCatchGetValueException (bool _arg)
 
virtual double GetMetricWorstPossibleValue ()
 
virtual void SetMetricWorstPossibleValue (double _arg)
 
virtual double GetParameterTolerance ()
 
virtual void SetParameterTolerance (double _arg)
 
const std::string GetStopConditionDescription () const override
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 UCLPowellOptimizer ()
 
 UCLPowellOptimizer (const UCLPowellOptimizer &)
 
virtual ~UCLPowellOptimizer ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void SetCurrentCost (double _arg)
 
void SetLine (const ParametersType &origin, const vnl_vector< double > &direction)
 
double GetLineValue (double x) const
 
double GetLineValue (double x, ParametersType &tempCoord) const
 
void SetCurrentLinePoint (double x, double fx)
 
void Swap (double *a, double *b) const
 
void Shift (double *a, double *b, double *c, double d) const
 
void LineBracket (double *x1, double *x2, double *x3, double *f1, double *f2, double *f3)
 
virtual void LineBracket (double *ax, double *bx, double *cx, double *fa, double *fb, double *fc, ParametersType &tempCoord)
 
virtual void BracketedLineOptimize (double ax, double bx, double cx, double fa, double functionValueOfb, double fc, double *extX, double *extVal)
 
virtual void BracketedLineOptimize (double ax, double bx, double cx, double fa, double fb, double fc, double *extX, double *extVal, ParametersType &tempCoord)
 
virtual unsigned int GetSpaceDimension ()
 
void SetSpaceDimension (unsigned int dim)
 
virtual void SetCurrentIteration (unsigned int _arg)
 
virtual bool GetStop ()
 
virtual void SetStop (bool _arg)
 
double GetMeasureOfParameterChange (ParametersType lastP, ParametersType p)
 

Member Typedef Documentation

typedef SmartPointer<const Self> itk::UCLPowellOptimizer::ConstPointer
typedef CostFunctionType::Pointer itk::UCLPowellOptimizer::CostFunctionPointer
typedef SingleValuedCostFunction itk::UCLPowellOptimizer::CostFunctionType

Type of the Cost Function

typedef SingleValuedNonLinearOptimizer::ParametersType itk::UCLPowellOptimizer::ParametersType
typedef SmartPointer<Self> itk::UCLPowellOptimizer::Pointer

Standard "Self" typedef.

typedef SingleValuedNonLinearOptimizer itk::UCLPowellOptimizer::Superclass

Constructor & Destructor Documentation

itk::UCLPowellOptimizer::UCLPowellOptimizer ( )
protected
itk::UCLPowellOptimizer::UCLPowellOptimizer ( const UCLPowellOptimizer )
protected
itk::UCLPowellOptimizer::~UCLPowellOptimizer ( )
protectedvirtual

Member Function Documentation

virtual void itk::UCLPowellOptimizer::BracketedLineOptimize ( double  ax,
double  bx,
double  cx,
double  fa,
double  functionValueOfb,
double  fc,
double *  extX,
double *  extVal 
)
inlineprotectedvirtual

Given a bracketing triple of points and their function values, returns a bounded extreme. These values are in parameter space, along the current line and wrt the current origin set via SetLine. Optimization terminates based on MaximumIteration, StepTolerance, or ValueTolerance. Implemented as Brent line optimers from NRC.

void itk::UCLPowellOptimizer::BracketedLineOptimize ( double  ax,
double  bx,
double  cx,
double  fa,
double  fb,
double  fc,
double *  extX,
double *  extVal,
ParametersType tempCoord 
)
protectedvirtual
virtual bool itk::UCLPowellOptimizer::GetCatchGetValueException ( )
virtual
virtual const char* itk::UCLPowellOptimizer::GetClassName ( ) const
virtual

Run-time type information (and related methods).

virtual const MeasureType& itk::UCLPowellOptimizer::GetCurrentCost ( )
virtual

Return Current Value

virtual const unsigned int& itk::UCLPowellOptimizer::GetCurrentIteration ( )
virtual

Return Current Iteration

virtual const unsigned int& itk::UCLPowellOptimizer::GetCurrentLineIteration ( )
virtual

Get the current line search iteration

double itk::UCLPowellOptimizer::GetLineValue ( double  x) const
inlineprotected

Get the value of the n-dimensional cost function at this scalar step distance along the current line direction from the current line origin. Line origin and distances are set via SetLine

double itk::UCLPowellOptimizer::GetLineValue ( double  x,
ParametersType tempCoord 
) const
protected
virtual const bool& itk::UCLPowellOptimizer::GetMaximize ( )
virtual
virtual const unsigned int& itk::UCLPowellOptimizer::GetMaximumIteration ( )
virtual
virtual unsigned int itk::UCLPowellOptimizer::GetMaximumLineIteration ( ) const
virtual
double itk::UCLPowellOptimizer::GetMeasureOfParameterChange ( ParametersType  lastP,
ParametersType  p 
)
inlineprotected

Get a measure of the parameter change between two different sets of parameters.

virtual double itk::UCLPowellOptimizer::GetMetricWorstPossibleValue ( )
virtual
virtual double itk::UCLPowellOptimizer::GetParameterTolerance ( )
virtual
virtual unsigned int itk::UCLPowellOptimizer::GetSpaceDimension ( )
protectedvirtual
virtual const double& itk::UCLPowellOptimizer::GetStepLength ( )
virtual
virtual const double& itk::UCLPowellOptimizer::GetStepTolerance ( )
virtual
virtual bool itk::UCLPowellOptimizer::GetStop ( )
protectedvirtual
const std::string itk::UCLPowellOptimizer::GetStopConditionDescription ( ) const
inlineoverride
MeasureType itk::UCLPowellOptimizer::GetValue ( ) const
inline
virtual const double& itk::UCLPowellOptimizer::GetValueTolerance ( )
virtual
void itk::UCLPowellOptimizer::LineBracket ( double *  x1,
double *  x2,
double *  x3,
double *  f1,
double *  f2,
double *  f3 
)
inlineprotected

The LineBracket routine from NRC. Later reimplemented from the description of the method available in the Wikipedia.

Uses current origin and line direction (from SetLine) to find a triple of points (ax, bx, cx) that bracket the extreme "near" the origin. Search first considers the point StepLength distance from ax.

IMPORTANT: The value of ax and the value of the function at ax (i.e., fa), must both be provided to this function.

void itk::UCLPowellOptimizer::LineBracket ( double *  ax,
double *  bx,
double *  cx,
double *  fa,
double *  fb,
double *  fc,
ParametersType tempCoord 
)
protectedvirtual
static Pointer itk::UCLPowellOptimizer::New ( )
static

Method for creation through the object factory.

void itk::UCLPowellOptimizer::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected
virtual void itk::UCLPowellOptimizer::SetCatchGetValueException ( bool  _arg)
virtual
virtual void itk::UCLPowellOptimizer::SetCurrentCost ( double  _arg)
protectedvirtual
virtual void itk::UCLPowellOptimizer::SetCurrentIteration ( unsigned int  _arg)
protectedvirtual
void itk::UCLPowellOptimizer::SetCurrentLinePoint ( double  x,
double  fx 
)
inlineprotected

Set the given scalar step distance (x) and function value (fx) as the "best-so-far" optimizer values.

void itk::UCLPowellOptimizer::SetLine ( const ParametersType origin,
const vnl_vector< double > &  direction 
)
inlineprotected

Used to specify the line direction through the n-dimensional parameter space the is currently being bracketed and optimized.

virtual void itk::UCLPowellOptimizer::SetMaximize ( bool  _arg)
virtual

Set if the Optimizer should Maximize the metric

virtual void itk::UCLPowellOptimizer::SetMaximumIteration ( unsigned int  _arg)
virtual

Set/Get maximum iteration limit.

virtual void itk::UCLPowellOptimizer::SetMaximumLineIteration ( unsigned int  _arg)
virtual

Set/Get the maximum number of line search iterations

virtual void itk::UCLPowellOptimizer::SetMetricWorstPossibleValue ( double  _arg)
virtual
virtual void itk::UCLPowellOptimizer::SetParameterTolerance ( double  _arg)
virtual
void itk::UCLPowellOptimizer::SetSpaceDimension ( unsigned int  dim)
inlineprotected
virtual void itk::UCLPowellOptimizer::SetStepLength ( double  _arg)
virtual

Set/Get StepLength for the (scaled) spacing of the sampling of parameter space while bracketing the extremum

virtual void itk::UCLPowellOptimizer::SetStepTolerance ( double  _arg)
virtual

Set/Get StepTolerance. Once the local extreme is known to be within this distance of the current parameter values, optimization terminates

virtual void itk::UCLPowellOptimizer::SetStop ( bool  _arg)
protectedvirtual
virtual void itk::UCLPowellOptimizer::SetValueTolerance ( double  _arg)
virtual

Set/Get ValueTolerance. Once this current cost function value is known to be within this tolerance of the cost function value at the local extreme, optimization terminates

void itk::UCLPowellOptimizer::Shift ( double *  a,
double *  b,
double *  c,
double  d 
) const
inlineprotected

Used in bracketing the extreme along the current line. Adapted from NRC

void itk::UCLPowellOptimizer::StartOptimization ( void  )
override

Start optimization.

void itk::UCLPowellOptimizer::StopOptimization ( )
inline

When users call StartOptimization, this value will be set false. By calling StopOptimization, this flag will be set true, and optimization will stop at the next iteration.

void itk::UCLPowellOptimizer::Swap ( double *  a,
double *  b 
) const
inlineprotected

Used in bracketing the extreme along the current line. Adapted from NRC


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