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 * GetClassName () const
void MaximizeOn ()
void SetNormalVariateGenerator (NormalVariateGeneratorType *generator)
void Initialize (double initialRadius, double grow=-1, double shrink=-1)
MeasureType GetValue ()
virtual unsigned int GetCurrentIteration () const
void StartOptimization ()
void StopOptimization ()
virtual void SetMaximumIteration (unsigned int _arg)
virtual unsigned int GetMaximumIteration () const
virtual void SetGrowthFactor (double _arg)
virtual double GetGrowthFactor () const
virtual void SetShrinkFactor (double _arg)
virtual double GetShrinkFactor () const
virtual void SetInitialRadius (double _arg)
virtual double GetInitialRadius () const
virtual void SetEpsilon (double _arg)
virtual double GetEpsilon () 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 char* itk::OnePlusOneEvolutionaryOptimizer::GetClassName  )  const [virtual]
 

Run-time type information (and related methods).

Reimplemented from itk::SingleValuedNonLinearOptimizer.

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

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

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

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

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

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

Set/Get initial search radius in parameter space

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

Set/Get maximum iteration limit.

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

Set/Get the search radius shrink factor.

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

Definition at line 131 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

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

Set if the Optimizer should Maximize the metric Definition at line 92 of file itkOnePlusOneEvolutionaryOptimizer.h.

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::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  )  [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 143 of file itkOnePlusOneEvolutionaryOptimizer.h.


The documentation for this class was generated from the following file:
Generated at Sun Apr 1 03:15:44 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000