public class NonLinearConjugateGradientOptimizer extends GradientMultivariateOptimizer
This class supports both the Fletcher-Reeves and the Polak-Ribière update formulas for the conjugate search directions. It also supports optional preconditioning.
Modifier and Type | Class and Description |
---|---|
static class |
NonLinearConjugateGradientOptimizer.BracketingStep
The initial step is a factor with respect to the search direction
(which itself is roughly related to the gradient of the function).
|
static class |
NonLinearConjugateGradientOptimizer.Formula
Available choices of update formulas for the updating the parameter
that is used to compute the successive conjugate search directions.
|
static class |
NonLinearConjugateGradientOptimizer.IdentityPreconditioner
Default identity preconditioner.
|
evaluations, iterations
Constructor and Description |
---|
NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormulaIn,
ConvergenceChecker<PointValuePair> checker)
Constructor with default
line search solver and preconditioner
. |
NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormulaIn,
ConvergenceChecker<PointValuePair> checker,
UnivariateSolver lineSearchSolver)
Constructor with default
preconditioner . |
NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormulaIn,
ConvergenceChecker<PointValuePair> checker,
UnivariateSolver lineSearchSolver,
Preconditioner preconditionerIn) |
Modifier and Type | Method and Description |
---|---|
protected PointValuePair |
doOptimize()
Performs the bulk of the optimization algorithm.
|
PointValuePair |
optimize(OptimizationData... optData)
Stores data and performs the optimization.
|
computeObjectiveGradient
computeObjectiveValue, getGoalType
getLowerBound, getStartPoint, getUpperBound
getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount
public NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormulaIn, ConvergenceChecker<PointValuePair> checker)
line search solver
and preconditioner
.updateFormulaIn
- formula to use for updating the β parameter,
must be one of NonLinearConjugateGradientOptimizer.Formula.FLETCHER_REEVES
or NonLinearConjugateGradientOptimizer.Formula.POLAK_RIBIERE
.checker
- Convergence checker.public NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormulaIn, ConvergenceChecker<PointValuePair> checker, UnivariateSolver lineSearchSolver)
preconditioner
.updateFormulaIn
- formula to use for updating the β parameter,
must be one of NonLinearConjugateGradientOptimizer.Formula.FLETCHER_REEVES
or NonLinearConjugateGradientOptimizer.Formula.POLAK_RIBIERE
.checker
- Convergence checker.lineSearchSolver
- Solver to use during line search.public NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormulaIn, ConvergenceChecker<PointValuePair> checker, UnivariateSolver lineSearchSolver, Preconditioner preconditionerIn)
updateFormulaIn
- formula to use for updating the β parameter,
must be one of NonLinearConjugateGradientOptimizer.Formula.FLETCHER_REEVES
or NonLinearConjugateGradientOptimizer.Formula.POLAK_RIBIERE
.checker
- Convergence checker.lineSearchSolver
- Solver to use during line search.preconditionerIn
- Preconditioner.public PointValuePair optimize(OptimizationData... optData)
optimize
in class GradientMultivariateOptimizer
optData
- Optimization data.
The following data will be looked for:
TooManyEvaluationsException
- if the maximal number of
evaluations (of the objective function) is exceeded.protected PointValuePair doOptimize()
doOptimize
in class BaseOptimizer<PointValuePair>
Copyright © 2021 CNES. All rights reserved.