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 Methods

virtual const char * GetClassName () const
void MaximizeOn ()
virtual double GetGrowthFactor () const
virtual double GetShrinkFactor () const
virtual double GetInitialRadius () const
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 SetEpsilon (double _arg)
virtual double GetEpsilon () const

Static Public Methods

Pointer New ()

Protected Methods

 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]
 

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]
 

Get the search radius grow factor in parameter space.

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

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]
 

Get search radius shrink factor.

MeasureType itk::OnePlusOneEvolutionaryOptimizer::GetValue   [inline]
 

Definition at line 125 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::SetMaximumIteration unsigned int    _arg [virtual]
 

Set/Get maximum iteration limit.

void itk::OnePlusOneEvolutionaryOptimizer::SetNormalVariateGenerator NormalVariateGeneratorType   generator
 

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 137 of file itkOnePlusOneEvolutionaryOptimizer.h.

References HardConnectedComponentImageFilter::PrintSelf().


The documentation for this class was generated from the following file:
Generated at Fri May 21 01:20:51 2004 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000