#include <itkOnePlusOneEvolutionaryOptimizer.h>
Inheritance diagram for itk::OnePlusOneEvolutionaryOptimizer:
Public Types | |
typedef OnePlusOneEvolutionaryOptimizer | Self |
typedef SingleValuedNonLinearOptimizer | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef SingleValuedCostFunction | CostFunctionType |
typedef CostFunctionType::Pointer | CostFunctionPointer |
typedef Statistics::RandomVariateGeneratorBase | NormalVariateGeneratorType |
Public Methods | |
virtual const char * | GetClassName () const |
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 | GetCurrentCost () |
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 |
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)
Definition at line 68 of file itkOnePlusOneEvolutionaryOptimizer.h.
|
Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 76 of file itkOnePlusOneEvolutionaryOptimizer.h. |
|
Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 86 of file itkOnePlusOneEvolutionaryOptimizer.h. |
|
Type of the Cost Function Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 85 of file itkOnePlusOneEvolutionaryOptimizer.h. |
|
Normal random variate generator type. Definition at line 89 of file itkOnePlusOneEvolutionaryOptimizer.h. |
|
Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 75 of file itkOnePlusOneEvolutionaryOptimizer.h. |
|
Standard "Self" typedef. Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 73 of file itkOnePlusOneEvolutionaryOptimizer.h. |
|
Reimplemented from itk::SingleValuedNonLinearOptimizer. Definition at line 74 of file itkOnePlusOneEvolutionaryOptimizer.h. |
|
|
|
|
|
Run-time type information (and related methods). Reimplemented from itk::SingleValuedNonLinearOptimizer. |
|
Definition at line 121 of file itkOnePlusOneEvolutionaryOptimizer.h. |
|
|
|
Set/Get the minimal size of search radius (frobenius_norm of covariance matrix). |
|
Get the search radius grow factor in parameter space. |
|
Get initial search radius in parameter space. |
|
Set/Get maximum iteration limit. |
|
Get search radius shrink factor. |
|
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 |
|
Method for creation through the object factory. Reimplemented from itk::SingleValuedNonLinearOptimizer. |
|
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. |
|
Set/Get the minimal size of search radius (frobenius_norm of covariance matrix). |
|
Set/Get maximum iteration limit. |
|
|
|
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. |
|
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 133 of file itkOnePlusOneEvolutionaryOptimizer.h. References itk::MeasureType, and HardConnectedComponentImageFilter::PrintSelf(). |