Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::OnePlusOneEvolutionaryOptimizer Class Reference
[NumericsOptimizers]

1+1 evolutionary strategy optimizer More...

#include <itkOnePlusOneEvolutionaryOptimizer.h>

Inheritance diagram for itk::OnePlusOneEvolutionaryOptimizer:

Inheritance graph
[legend]
Collaboration diagram for itk::OnePlusOneEvolutionaryOptimizer:

Collaboration graph
[legend]
List of all members.

Public Types

typedef OnePlusOneEvolutionaryOptimizer Self
typedef SingleValuedNonLinearOptimizer Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef SingleValuedCostFunction CostFunctionType
typedef CostFunctionType::Pointer CostFunctionPointer
typedef Statistics::RandomVariateGeneratorBase NormalVariateGeneratorType

Public Member Functions

virtual const char * GetNameOfClass () const
virtual const double & GetFrobeniusNorm ()
void SetNormalVariateGenerator (NormalVariateGeneratorType *generator)
void Initialize (double initialRadius, double grow=-1, double shrink=-1)
virtual const unsigned int & GetCurrentIteration ()
void StartOptimization ()
void StopOptimization ()
virtual void SetMaximize (bool _arg)
virtual void MaximizeOn ()
virtual void MaximizeOff ()
virtual void SetMaximumIteration (unsigned int _arg)
virtual const unsigned int & GetMaximumIteration ()
virtual void SetGrowthFactor (double _arg)
virtual const double & GetGrowthFactor ()
virtual void SetShrinkFactor (double _arg)
virtual const double & GetShrinkFactor ()
virtual void SetInitialRadius (double _arg)
virtual const double & GetInitialRadius ()
virtual void SetEpsilon (double _arg)
virtual const double & GetEpsilon ()
virtual const MeasureTypeGetCurrentCost ()
MeasureType GetValue () const

Static Public Member Functions

Pointer New ()

Protected Member Functions

 OnePlusOneEvolutionaryOptimizer ()
 OnePlusOneEvolutionaryOptimizer (const OnePlusOneEvolutionaryOptimizer &)
virtual ~OnePlusOneEvolutionaryOptimizer ()
void PrintSelf (std::ostream &os, Indent indent) const

Detailed Description

1+1 evolutionary strategy optimizer

This optimizer searches for the optimal parameters. It changes its search radius and position using the grow factor ,shrink factor, and isotropic probability function (which is a random unit normal variate generator).

This optimizer needs a cost function and a random unit normal variate generator. The cost function should return cost with new position in parameter space which will be generated by 1+1 evolutionary strategy. Users should plug-in the random unit normal variate generator using SetNormalVariateGenerator method.

The SetEpsilon method is the minimum value for the frobenius_norm of the covariance matrix. If the fnorm is smaller than this value, the optimization process will stop even before it hits the maximum iteration.

Another way to stop the optimization process is calling the StopOptimization method. At next iteration after calling it, the optimization process will stop.

This optimizing scheme was initially developed and implemented by Martin Styner, Univ. of North Carolina at Chapel Hill, and his colleagues.

For more details. refer to the following articles. "Parametric estimate of intensity inhomogeneities applied to MRI" Martin Styner, G. Gerig, Christian Brechbuehler, Gabor Szekely, IEEE TRANSACTIONS ON MEDICAL IMAGING; 19(3), pp. 153-165, 2000, (http://www.cs.unc.edu/~styner/docs/tmi00.pdf)

"Evaluation of 2D/3D bias correction with 1+1ES-optimization" Martin Styner, Prof. Dr. G. Gerig (IKT, BIWI, ETH Zuerich), TR-197 (http://www.cs.unc.edu/~styner/docs/StynerTR97.pdf)

See also:
NormalVariateGenerator

Definition at line 68 of file itkOnePlusOneEvolutionaryOptimizer.h.


Member Typedef Documentation

typedef SmartPointer<const Self> itk::OnePlusOneEvolutionaryOptimizer::ConstPointer
 

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 76 of file itkOnePlusOneEvolutionaryOptimizer.h.

typedef CostFunctionType::Pointer itk::OnePlusOneEvolutionaryOptimizer::CostFunctionPointer
 

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 86 of file itkOnePlusOneEvolutionaryOptimizer.h.

typedef SingleValuedCostFunction itk::OnePlusOneEvolutionaryOptimizer::CostFunctionType
 

Type of the Cost Function

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 85 of file itkOnePlusOneEvolutionaryOptimizer.h.

typedef Statistics::RandomVariateGeneratorBase itk::OnePlusOneEvolutionaryOptimizer::NormalVariateGeneratorType
 

Normal random variate generator type.

Definition at line 89 of file itkOnePlusOneEvolutionaryOptimizer.h.

typedef SmartPointer<Self> itk::OnePlusOneEvolutionaryOptimizer::Pointer
 

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 75 of file itkOnePlusOneEvolutionaryOptimizer.h.

typedef OnePlusOneEvolutionaryOptimizer itk::OnePlusOneEvolutionaryOptimizer::Self
 

Standard "Self" typedef.

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 73 of file itkOnePlusOneEvolutionaryOptimizer.h.

typedef SingleValuedNonLinearOptimizer itk::OnePlusOneEvolutionaryOptimizer::Superclass
 

Reimplemented from itk::SingleValuedNonLinearOptimizer.

Definition at line 74 of file itkOnePlusOneEvolutionaryOptimizer.h.


Constructor & Destructor Documentation

itk::OnePlusOneEvolutionaryOptimizer::OnePlusOneEvolutionaryOptimizer  )  [protected]
 

itk::OnePlusOneEvolutionaryOptimizer::OnePlusOneEvolutionaryOptimizer const OnePlusOneEvolutionaryOptimizer  )  [protected]
 

virtual itk::OnePlusOneEvolutionaryOptimizer::~OnePlusOneEvolutionaryOptimizer  )  [protected, virtual]
 


Member Function Documentation

virtual const MeasureType& itk::OnePlusOneEvolutionaryOptimizer::GetCurrentCost  )  [virtual]
 

Return Current Value

virtual const unsigned int& itk::OnePlusOneEvolutionaryOptimizer::GetCurrentIteration  )  [virtual]
 

Return Current Iteration

virtual const double& itk::OnePlusOneEvolutionaryOptimizer::GetEpsilon  )  [virtual]
 

Set/Get the minimal size of search radius (frobenius_norm of covariance matrix).

virtual const double& itk::OnePlusOneEvolutionaryOptimizer::GetFrobeniusNorm  )  [virtual]
 

Get the current Frobenius norm of covariance matrix

virtual const double& itk::OnePlusOneEvolutionaryOptimizer::GetGrowthFactor  )  [virtual]
 

Set/Get the search radius grow factor in parameter space.

virtual const double& itk::OnePlusOneEvolutionaryOptimizer::GetInitialRadius  )  [virtual]
 

Set/Get initial search radius in parameter space

virtual const unsigned int& itk::OnePlusOneEvolutionaryOptimizer::GetMaximumIteration  )  [virtual]
 

Set/Get maximum iteration limit.

virtual const char* itk::OnePlusOneEvolutionaryOptimizer::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods).

Reimplemented from itk::SingleValuedNonLinearOptimizer.

virtual const double& itk::OnePlusOneEvolutionaryOptimizer::GetShrinkFactor  )  [virtual]
 

Set/Get the search radius shrink factor.

MeasureType itk::OnePlusOneEvolutionaryOptimizer::GetValue  )  const [inline]
 

Return Current Value

Definition at line 138 of file itkOnePlusOneEvolutionaryOptimizer.h.

void itk::OnePlusOneEvolutionaryOptimizer::Initialize double  initialRadius,
double  grow = -1,
double  shrink = -1
 

Initializes the optimizer. Before running this optimizer, this function should have been called.

initialRadius: search radius in parameter space grow: search radius grow factor shrink: searhc radius shrink factor

virtual void itk::OnePlusOneEvolutionaryOptimizer::MaximizeOff  )  [virtual]
 

Set if the Optimizer should Maximize the metric

virtual void itk::OnePlusOneEvolutionaryOptimizer::MaximizeOn  )  [virtual]
 

Set if the Optimizer should Maximize the metric

Pointer itk::OnePlusOneEvolutionaryOptimizer::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::SingleValuedNonLinearOptimizer.

void itk::OnePlusOneEvolutionaryOptimizer::PrintSelf std::ostream &  os,
Indent  indent
const [protected, virtual]
 

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.

virtual void itk::OnePlusOneEvolutionaryOptimizer::SetEpsilon double  _arg  )  [virtual]
 

Set/Get the minimal size of search radius (frobenius_norm of covariance matrix).

virtual void itk::OnePlusOneEvolutionaryOptimizer::SetGrowthFactor double  _arg  )  [virtual]
 

Set/Get the search radius grow factor in parameter space.

virtual void itk::OnePlusOneEvolutionaryOptimizer::SetInitialRadius double  _arg  )  [virtual]
 

Set/Get initial search radius in parameter space

virtual void itk::OnePlusOneEvolutionaryOptimizer::SetMaximize bool  _arg  )  [virtual]
 

Set if the Optimizer should Maximize the metric

virtual void itk::OnePlusOneEvolutionaryOptimizer::SetMaximumIteration unsigned int  _arg  )  [virtual]
 

Set/Get maximum iteration limit.

void itk::OnePlusOneEvolutionaryOptimizer::SetNormalVariateGenerator NormalVariateGeneratorType generator  ) 
 

virtual void itk::OnePlusOneEvolutionaryOptimizer::SetShrinkFactor double  _arg  )  [virtual]
 

Set/Get the search radius shrink factor.

void itk::OnePlusOneEvolutionaryOptimizer::StartOptimization  )  [virtual]
 

Start optimization. Optimization will stop when it meets either of two termination conditions, the maximum iteration limit or epsilon (minimal search radius)

Reimplemented from itk::Optimizer.

void itk::OnePlusOneEvolutionaryOptimizer::StopOptimization void   )  [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.

Definition at line 152 of file itkOnePlusOneEvolutionaryOptimizer.h.


The documentation for this class was generated from the following file:
Generated at Thu May 25 01:59:38 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000