go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
elastix::SimultaneousPerturbation< TElastix > Class Template Reference

#include <elxSimultaneousPerturbation.h>

Inheritance diagram for elastix::SimultaneousPerturbation< TElastix >:
Inheritance graph
[legend]
Collaboration diagram for elastix::SimultaneousPerturbation< TElastix >:
Collaboration graph
[legend]

Public Types

typedef
Superclass2::ConfigurationPointer 
ConfigurationPointer
typedef
Superclass2::ConfigurationType 
ConfigurationType
typedef SmartPointer< const SelfConstPointer
typedef
Superclass1::CostFunctionPointer 
CostFunctionPointer
typedef
Superclass1::CostFunctionType 
CostFunctionType
typedef Superclass2::ElastixPointer ElastixPointer
typedef Superclass2::ElastixType ElastixType
typedef Superclass2::ITKBaseType ITKBaseType
typedef Superclass1::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef
Superclass2::RegistrationPointer 
RegistrationPointer
typedef
Superclass2::RegistrationType 
RegistrationType
typedef SimultaneousPerturbation Self
typedef
Superclass1::StopConditionType 
StopConditionType
typedef SPSAOptimizer Superclass1
typedef OptimizerBase< TElastix > Superclass2

Public Member Functions

virtual void AfterEachIteration (void)
virtual void AfterEachResolution (void)
virtual void AfterRegistration (void)
virtual void BeforeEachResolution (void)
virtual void BeforeRegistration (void)
 elxClassNameMacro ("SimultaneousPerturbation")
virtual const char * GetClassName () const
virtual void SetInitialPosition (const ParametersType &param)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 SimultaneousPerturbation ()
virtual ~SimultaneousPerturbation ()

Protected Attributes

bool m_ShowMetricValues

Private Member Functions

void operator= (const Self &)
 SimultaneousPerturbation (const Self &)

Detailed Description

template<class TElastix>
class elastix::SimultaneousPerturbation< TElastix >

An optimizer based on the itk::SPSAOptimizer.

The ITK doxygen help gives more information about this optimizer.

This optimizer supports the NewSamplesEveryIteration parameter.

The parameters used in this class are:

Parameters:
Optimizer: Select this optimizer as follows:
(Optimizer "SimultaneousPerturbation")
Parameters:
MaximumNumberOfIterations: The maximum number of iterations in each resolution.
example: (MaximumNumberOfIterations 100 100 50)
Default value: 500.
Parameters:
NumberOfPerturbations: The number of perturbation used to construct a gradient estimate $g_k$.
$q =$ NumberOfPerturbations
$g_k = 1/q \sum_{j = 1..q} g^(j)_k$
This parameter can be defined for each resolution.
example: (NumberOfPerturbations 1 1 2)
Default value: 1.
Parameters:
SP_a: The gain $a(k)$ at each iteration $k$ is defined by
$a(k) = SP\_a / (SP\_A + k + 1)^{SP\_alpha}$.
SP_a can be defined for each resolution.
example: (SP_a 3200.0 3200.0 1600.0)
The default value is 400.0. Tuning this variable for you specific problem is recommended.
Parameters:
SP_A: The gain $a(k)$ at each iteration $k$ is defined by
$a(k) = SP\_a / (SP\_A + k + 1)^{SP\_alpha}$.
SP_A can be defined for each resolution.
example: (SP_A 50.0 50.0 100.0)
The default/recommended value is 50.0.
Parameters:
SP_alpha: The gain $a(k)$ at each iteration $k$ is defined by
$a(k) = SP\_a / (SP\_A + k + 1)^{SP\_alpha}$.
SP_alpha can be defined for each resolution.
example: (SP_alpha 0.602 0.602 0.602)
The default/recommended value is 0.602.
Parameters:
SP_c: The perturbation step size $c(k)$ at each iteration $k$ is defined by
$c(k) = SP\_c / ( k + 1)^{SP\_gamma}$.
SP_c can be defined for each resolution.
example: (SP_c 2.0 1.0 1.0)
The default value is 1.0.
Parameters:
SP_gamma: The perturbation step size $c(k)$ at each iteration $k$ is defined by
$c(k) = SP\_c / ( k + 1)^{SP\_gamma}$.
SP_gamma can be defined for each resolution.
example: (SP_gamma 0.101 0.101 0.101)
The default/recommended value is 0.101.
Parameters:
ShowMetricValues: Defines whether to compute/show the metric value in each iteration.
This flag can NOT be defined for each resolution.
example: (ShowMetricValues "true" )
Default value: "false". Note that turning this flag on increases computation time.

Definition at line 81 of file elxSimultaneousPerturbation.h.


Member Typedef Documentation

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 117 of file elxSimultaneousPerturbation.h.

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 116 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef SmartPointer<const Self> elastix::SimultaneousPerturbation< TElastix >::ConstPointer

Definition at line 94 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef Superclass1::CostFunctionPointer elastix::SimultaneousPerturbation< TElastix >::CostFunctionPointer

Definition at line 110 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef Superclass1::CostFunctionType elastix::SimultaneousPerturbation< TElastix >::CostFunctionType

Typedef's inherited from Superclass1.

Definition at line 109 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef Superclass2::ElastixPointer elastix::SimultaneousPerturbation< TElastix >::ElastixPointer

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 115 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef Superclass2::ElastixType elastix::SimultaneousPerturbation< TElastix >::ElastixType

Typedef's inherited from Elastix.

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 114 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef Superclass2::ITKBaseType elastix::SimultaneousPerturbation< TElastix >::ITKBaseType

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 120 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef Superclass1::ParametersType elastix::SimultaneousPerturbation< TElastix >::ParametersType

Typedef for the ParametersType.

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 123 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef SmartPointer<Self> elastix::SimultaneousPerturbation< TElastix >::Pointer

Definition at line 93 of file elxSimultaneousPerturbation.h.

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 119 of file elxSimultaneousPerturbation.h.

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 118 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef SimultaneousPerturbation elastix::SimultaneousPerturbation< TElastix >::Self

Standard ITK.

Reimplemented from elastix::OptimizerBase< TElastix >.

Definition at line 90 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef Superclass1::StopConditionType elastix::SimultaneousPerturbation< TElastix >::StopConditionType

Definition at line 111 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef SPSAOptimizer elastix::SimultaneousPerturbation< TElastix >::Superclass1

Definition at line 91 of file elxSimultaneousPerturbation.h.

template<class TElastix >
typedef OptimizerBase<TElastix> elastix::SimultaneousPerturbation< TElastix >::Superclass2

Definition at line 92 of file elxSimultaneousPerturbation.h.


Constructor & Destructor Documentation

template<class TElastix >
elastix::SimultaneousPerturbation< TElastix >::SimultaneousPerturbation ( ) [protected]
template<class TElastix >
virtual elastix::SimultaneousPerturbation< TElastix >::~SimultaneousPerturbation ( ) [inline, protected, virtual]

Definition at line 141 of file elxSimultaneousPerturbation.h.

template<class TElastix >
elastix::SimultaneousPerturbation< TElastix >::SimultaneousPerturbation ( const Self ) [private]

Member Function Documentation

template<class TElastix >
virtual void elastix::SimultaneousPerturbation< TElastix >::AfterEachIteration ( void  ) [virtual]

Reimplemented from elastix::BaseComponent.

template<class TElastix >
virtual void elastix::SimultaneousPerturbation< TElastix >::AfterEachResolution ( void  ) [virtual]

Reimplemented from elastix::BaseComponent.

template<class TElastix >
virtual void elastix::SimultaneousPerturbation< TElastix >::AfterRegistration ( void  ) [virtual]

Reimplemented from elastix::BaseComponent.

template<class TElastix >
virtual void elastix::SimultaneousPerturbation< TElastix >::BeforeEachResolution ( void  ) [virtual]

Reimplemented from elastix::BaseComponent.

template<class TElastix >
virtual void elastix::SimultaneousPerturbation< TElastix >::BeforeRegistration ( void  ) [virtual]

Methods that take care of setting parameters and printing progress information.

Reimplemented from elastix::BaseComponent.

template<class TElastix >
elastix::SimultaneousPerturbation< TElastix >::elxClassNameMacro ( "SimultaneousPerturbation< TElastix >"  )

Name of this class. Use this name in the parameter file to select this specific optimizer.
example: (Optimizer "SimultaneousPerturbation")

template<class TElastix >
virtual const char* elastix::SimultaneousPerturbation< TElastix >::GetClassName ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from elastix::OptimizerBase< TElastix >.

template<class TElastix >
static Pointer elastix::SimultaneousPerturbation< TElastix >::New ( ) [static]

Method for creation through the object factory.

template<class TElastix >
void elastix::SimultaneousPerturbation< TElastix >::operator= ( const Self ) [private]
template<class TElastix >
virtual void elastix::SimultaneousPerturbation< TElastix >::SetInitialPosition ( const ParametersType param) [virtual]

Override the SetInitialPosition. Override the implementation in itkOptimizer.h, to ensure that the scales array and the parameters array have the same size.


Field Documentation

template<class TElastix >
bool elastix::SimultaneousPerturbation< TElastix >::m_ShowMetricValues [protected]

Definition at line 141 of file elxSimultaneousPerturbation.h.



Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo