![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
A set of conjugate gradient algorithms. More...
#include <itkGenericConjugateGradientOptimizer.h>
A set of conjugate gradient algorithms.
The steplength is determined at each iteration by means of a line search routine. The itk::MoreThuenteLineSearchOptimizer works well.
Definition at line 37 of file itkGenericConjugateGradientOptimizer.h.
typedef std::map< BetaDefinitionType, ComputeBetaFunctionType > itk::GenericConjugateGradientOptimizer::BetaDefinitionMapType |
Definition at line 69 of file itkGenericConjugateGradientOptimizer.h.
typedef std::string itk::GenericConjugateGradientOptimizer::BetaDefinitionType |
Definition at line 67 of file itkGenericConjugateGradientOptimizer.h.
typedef double(Self::* itk::GenericConjugateGradientOptimizer::ComputeBetaFunctionType)(const DerivativeType &, const DerivativeType &, const ParametersType &) |
Typedef for a function that computes , given the previousGradient, the current gradient, and the previous search direction
Definition at line 64 of file itkGenericConjugateGradientOptimizer.h.
typedef SmartPointer<const Self> itk::GenericConjugateGradientOptimizer::ConstPointer |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
Definition at line 45 of file itkGenericConjugateGradientOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
Definition at line 53 of file itkGenericConjugateGradientOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
Definition at line 52 of file itkGenericConjugateGradientOptimizer.h.
typedef LineSearchOptimizerType::Pointer itk::GenericConjugateGradientOptimizer::LineSearchOptimizerPointer |
Definition at line 59 of file itkGenericConjugateGradientOptimizer.h.
Definition at line 58 of file itkGenericConjugateGradientOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Definition at line 55 of file itkGenericConjugateGradientOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
Definition at line 49 of file itkGenericConjugateGradientOptimizer.h.
typedef SmartPointer<Self> itk::GenericConjugateGradientOptimizer::Pointer |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
Definition at line 44 of file itkGenericConjugateGradientOptimizer.h.
typedef Superclass::ScaledCostFunctionType itk::GenericConjugateGradientOptimizer::ScaledCostFunctionType |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Definition at line 54 of file itkGenericConjugateGradientOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
Definition at line 56 of file itkGenericConjugateGradientOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
Definition at line 42 of file itkGenericConjugateGradientOptimizer.h.
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Definition at line 43 of file itkGenericConjugateGradientOptimizer.h.
MetricError | |
LineSearchError | |
MaximumNumberOfIterations | |
GradientMagnitudeTolerance | |
ValueTolerance | |
InfiniteBeta | |
Unknown |
Reimplemented in elastix::ConjugateGradient< TElastix >.
Definition at line 71 of file itkGenericConjugateGradientOptimizer.h.
itk::GenericConjugateGradientOptimizer::GenericConjugateGradientOptimizer | ( | ) | [protected] |
virtual itk::GenericConjugateGradientOptimizer::~GenericConjugateGradientOptimizer | ( | ) | [inline, protected, virtual] |
Definition at line 132 of file itkGenericConjugateGradientOptimizer.h.
itk::GenericConjugateGradientOptimizer::GenericConjugateGradientOptimizer | ( | const Self & | ) | [private] |
virtual void itk::GenericConjugateGradientOptimizer::AddBetaDefinition | ( | const BetaDefinitionType & | name, |
ComputeBetaFunctionType | function | ||
) | [protected, virtual] |
Function to add a new beta definition. The first argument should be a name via which a user can select this definition. The second argument is a pointer to a method that computes
. Called in the constructor of this class, and possibly by subclasses.
virtual double itk::GenericConjugateGradientOptimizer::ComputeBeta | ( | const DerivativeType & | previousGradient, |
const DerivativeType & | gradient, | ||
const ParametersType & | previousSearchDir | ||
) | [protected, virtual] |
Compute according to the user set
-definition
double itk::GenericConjugateGradientOptimizer::ComputeBetaDY | ( | const DerivativeType & | previousGradient, |
const DerivativeType & | gradient, | ||
const ParametersType & | previousSearchDir | ||
) | [protected] |
"DaiYuan"
double itk::GenericConjugateGradientOptimizer::ComputeBetaDYHS | ( | const DerivativeType & | previousGradient, |
const DerivativeType & | gradient, | ||
const ParametersType & | previousSearchDir | ||
) | [protected] |
"DaiYuanHestenesStiefel"
double itk::GenericConjugateGradientOptimizer::ComputeBetaFR | ( | const DerivativeType & | previousGradient, |
const DerivativeType & | gradient, | ||
const ParametersType & | previousSearchDir | ||
) | [protected] |
"FletcherReeves"
double itk::GenericConjugateGradientOptimizer::ComputeBetaHS | ( | const DerivativeType & | previousGradient, |
const DerivativeType & | gradient, | ||
const ParametersType & | previousSearchDir | ||
) | [protected] |
"HestenesStiefel"
double itk::GenericConjugateGradientOptimizer::ComputeBetaPR | ( | const DerivativeType & | previousGradient, |
const DerivativeType & | gradient, | ||
const ParametersType & | previousSearchDir | ||
) | [protected] |
"PolakRibiere"
double itk::GenericConjugateGradientOptimizer::ComputeBetaSD | ( | const DerivativeType & | previousGradient, |
const DerivativeType & | gradient, | ||
const ParametersType & | previousSearchDir | ||
) | [protected] |
Different definitions of "SteepestDescent: beta=0
virtual void itk::GenericConjugateGradientOptimizer::ComputeSearchDirection | ( | const DerivativeType & | previousGradient, |
const DerivativeType & | gradient, | ||
ParametersType & | searchDir | ||
) | [protected, virtual] |
Compute the search direction:
In the first iteration the search direction is computed as:
On calling, searchDir should equal . On return searchDir equals
.
virtual const BetaDefinitionType& itk::GenericConjugateGradientOptimizer::GetBetaDefinition | ( | ) | [virtual] |
virtual const char* itk::GenericConjugateGradientOptimizer::GetClassName | ( | ) | const [virtual] |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
virtual const DerivativeType& itk::GenericConjugateGradientOptimizer::GetCurrentGradient | ( | ) | [virtual] |
virtual unsigned long itk::GenericConjugateGradientOptimizer::GetCurrentIteration | ( | ) | const [virtual] |
Get information about optimization process:
virtual double itk::GenericConjugateGradientOptimizer::GetCurrentStepLength | ( | ) | const [virtual] |
virtual MeasureType itk::GenericConjugateGradientOptimizer::GetCurrentValue | ( | ) | const [virtual] |
virtual double itk::GenericConjugateGradientOptimizer::GetGradientMagnitudeTolerance | ( | ) | const [virtual] |
Setting: the mininum gradient magnitude. By default 1e-5.
The optimizer stops when:
virtual bool itk::GenericConjugateGradientOptimizer::GetInLineSearch | ( | ) | const [virtual] |
virtual LineSearchOptimizerType* itk::GenericConjugateGradientOptimizer::GetLineSearchOptimizer | ( | ) | [virtual] |
virtual unsigned long itk::GenericConjugateGradientOptimizer::GetMaximumNumberOfIterations | ( | ) | const [virtual] |
Setting: the maximum number of iterations
virtual unsigned long itk::GenericConjugateGradientOptimizer::GetMaxNrOfItWithoutImprovement | ( | ) | const [virtual] |
virtual const StopConditionType& itk::GenericConjugateGradientOptimizer::GetStopCondition | ( | ) | [virtual] |
virtual double itk::GenericConjugateGradientOptimizer::GetValueTolerance | ( | ) | const [virtual] |
Setting: a stopping criterion, the value tolerance. By default 1e-5.
The optimizer stops when
is satisfied MaxNrOfItWithoutImprovement times in a row.
virtual void itk::GenericConjugateGradientOptimizer::LineSearch | ( | const ParametersType | searchDir, |
double & | step, | ||
ParametersType & | x, | ||
MeasureType & | f, | ||
DerivativeType & | g | ||
) | [protected, virtual] |
Perform a line search along the search direction. On calling, , and
should contain the current position, the cost function value at this position, and the derivative. On return the step,
(new position),
(value at
), and
(derivative at
) are updated.
Reimplemented in elastix::ConjugateGradient< TElastix >.
static Pointer itk::GenericConjugateGradientOptimizer::New | ( | ) | [static] |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
void itk::GenericConjugateGradientOptimizer::operator= | ( | const Self & | ) | [private] |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
Reimplemented in elastix::ConjugateGradient< TElastix >.
void itk::GenericConjugateGradientOptimizer::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected] |
Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.
virtual void itk::GenericConjugateGradientOptimizer::ResumeOptimization | ( | void | ) | [virtual] |
virtual void itk::GenericConjugateGradientOptimizer::SetBetaDefinition | ( | const BetaDefinitionType & | arg | ) | [virtual] |
Setting: the definition of , by default "DaiYuanHestenesStiefel"
virtual void itk::GenericConjugateGradientOptimizer::SetGradientMagnitudeTolerance | ( | double | _arg | ) | [virtual] |
virtual void itk::GenericConjugateGradientOptimizer::SetInLineSearch | ( | bool | _arg | ) | [protected, virtual] |
virtual void itk::GenericConjugateGradientOptimizer::SetLineSearchOptimizer | ( | LineSearchOptimizerType * | _arg | ) | [virtual] |
Setting: the line search optimizer
virtual void itk::GenericConjugateGradientOptimizer::SetMaximumNumberOfIterations | ( | unsigned long | _arg | ) | [virtual] |
virtual void itk::GenericConjugateGradientOptimizer::SetMaxNrOfItWithoutImprovement | ( | unsigned long | arg | ) | [virtual] |
Setting: the maximum number of iterations in a row that satisfy the value tolerance criterion. By default (if never set) equal to the number of parameters.
virtual void itk::GenericConjugateGradientOptimizer::SetValueTolerance | ( | double | _arg | ) | [virtual] |
virtual void itk::GenericConjugateGradientOptimizer::StartOptimization | ( | void | ) | [virtual] |
Reimplemented in elastix::ConjugateGradient< TElastix >.
virtual void itk::GenericConjugateGradientOptimizer::StopOptimization | ( | void | ) | [virtual] |
virtual bool itk::GenericConjugateGradientOptimizer::TestConvergence | ( | bool | firstLineSearchDone | ) | [protected, virtual] |
Check if convergence has occured; The firstLineSearchDone bool allows the implementation of TestConvergence to decide to skip a few convergence checks when no line search has performed yet (so, before the actual optimisation begins)
Reimplemented in elastix::ConjugateGradient< TElastix >.
The name of the BetaDefinition
Definition at line 158 of file itkGenericConjugateGradientOptimizer.h.
A mapping that links the names of the BetaDefinitions to functions that compute .
Definition at line 162 of file itkGenericConjugateGradientOptimizer.h.
Definition at line 136 of file itkGenericConjugateGradientOptimizer.h.
unsigned long itk::GenericConjugateGradientOptimizer::m_CurrentIteration [protected] |
Definition at line 138 of file itkGenericConjugateGradientOptimizer.h.
Definition at line 141 of file itkGenericConjugateGradientOptimizer.h.
Definition at line 137 of file itkGenericConjugateGradientOptimizer.h.
Definition at line 251 of file itkGenericConjugateGradientOptimizer.h.
Is true when the LineSearchOptimizer has been started.
Definition at line 148 of file itkGenericConjugateGradientOptimizer.h.
Definition at line 254 of file itkGenericConjugateGradientOptimizer.h.
unsigned long itk::GenericConjugateGradientOptimizer::m_MaximumNumberOfIterations [private] |
Definition at line 249 of file itkGenericConjugateGradientOptimizer.h.
unsigned long itk::GenericConjugateGradientOptimizer::m_MaxNrOfItWithoutImprovement [private] |
Definition at line 252 of file itkGenericConjugateGradientOptimizer.h.
Flag that says if the previous gradient and search direction are known. Typically 'true' at the start of optimization, or when a stopped optimisation is resumed (in the latter case the previous gradient and search direction may of course still be valid, but to be safe it is assumed that they are not).
Definition at line 149 of file itkGenericConjugateGradientOptimizer.h.
bool itk::GenericConjugateGradientOptimizer::m_Stop [protected] |
Definition at line 140 of file itkGenericConjugateGradientOptimizer.h.
Definition at line 139 of file itkGenericConjugateGradientOptimizer.h.
Flag that is true as long as the method SetMaxNrOfItWithoutImprovement is never called
Definition at line 145 of file itkGenericConjugateGradientOptimizer.h.
Definition at line 250 of file itkGenericConjugateGradientOptimizer.h.
Generated on 24-10-2011 for elastix by ![]() |
![]() |