Main Page
Groups
Namespace List
Class Hierarchy
Alphabetical List
Compound List
File
List
Namespace Members
Compound Members
File Members
Concepts
itk::OnePlusOneEvolutionaryOptimizer Class Reference
[Numerics, Optimizers]
1+1 evolutionary strategy optimizer
More...
#include <itkOnePlusOneEvolutionaryOptimizer.h>
Inheritance diagram for itk::OnePlusOneEvolutionaryOptimizer:
[legend]Collaboration diagram for itk::OnePlusOneEvolutionaryOptimizer:
[legend]List of all members.
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
Constructor & Destructor Documentation
itk::OnePlusOneEvolutionaryOptimizer::OnePlusOneEvolutionaryOptimizer |
( |
|
) |
[protected] |
|
Member Function Documentation
virtual const MeasureType& itk::OnePlusOneEvolutionaryOptimizer::GetCurrentCost |
( |
|
) |
[virtual] |
|
virtual const unsigned int& itk::OnePlusOneEvolutionaryOptimizer::GetCurrentIteration |
( |
|
) |
[virtual] |
|
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] |
|
virtual const double& itk::OnePlusOneEvolutionaryOptimizer::GetShrinkFactor |
( |
|
) |
[virtual] |
|
|
Set/Get the search radius shrink factor. |
MeasureType itk::OnePlusOneEvolutionaryOptimizer::GetValue |
( |
|
) |
const [inline] |
|
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] |
|
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. |
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
1.3.5 written by Dimitri van Heesch,
© 1997-2000