public class NonLinearConjugateGradientOptimizer extends AbstractScalarDifferentiableOptimizer
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.IdentityPreconditioner
Default identity preconditioner.
|
evaluations| Constructor and Description |
|---|
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
|
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
ConvergenceChecker<PointValuePair> checker)
Constructor with default
line search solver and
preconditioner. |
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
ConvergenceChecker<PointValuePair> checker,
UnivariateSolver lineSearchSolver)
Constructor with default
preconditioner. |
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
ConvergenceChecker<PointValuePair> checker,
UnivariateSolver lineSearchSolver,
Preconditioner preconditioner) |
| Modifier and Type | Method and Description |
|---|---|
protected PointValuePair |
doOptimize()
Perform the bulk of the optimization algorithm.
|
void |
setInitialStep(double initialStep)
Set the initial step used to bracket the optimum in line search.
|
computeObjectiveGradient, optimizecomputeObjectiveValue, getConvergenceChecker, getEvaluations, getGoalType, getMaxEvaluations, getStartPointclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetConvergenceChecker, getEvaluations, getMaxEvaluationspublic NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
updateFormula - formula to use for updating the β parameter,
must be one of ConjugateGradientFormula.FLETCHER_REEVES or ConjugateGradientFormula.POLAK_RIBIERE.public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula, ConvergenceChecker<PointValuePair> checker)
line search solver and
preconditioner.updateFormula - formula to use for updating the β parameter,
must be one of ConjugateGradientFormula.FLETCHER_REEVES or ConjugateGradientFormula.POLAK_RIBIERE.checker - Convergence checker.public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula, ConvergenceChecker<PointValuePair> checker, UnivariateSolver lineSearchSolver)
preconditioner.updateFormula - formula to use for updating the β parameter,
must be one of ConjugateGradientFormula.FLETCHER_REEVES or ConjugateGradientFormula.POLAK_RIBIERE.checker - Convergence checker.lineSearchSolver - Solver to use during line search.public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula, ConvergenceChecker<PointValuePair> checker, UnivariateSolver lineSearchSolver, Preconditioner preconditioner)
updateFormula - formula to use for updating the β parameter,
must be one of ConjugateGradientFormula.FLETCHER_REEVES or ConjugateGradientFormula.POLAK_RIBIERE.checker - Convergence checker.lineSearchSolver - Solver to use during line search.preconditioner - Preconditioner.public void setInitialStep(double initialStep)
The initial step is a factor with respect to the search direction, which itself is roughly related to the gradient of the function
initialStep - initial step used to bracket the optimum in line search,
if a non-positive value is used, the initial step is reset to its
default value of 1.0protected PointValuePair doOptimize()
doOptimize in class BaseAbstractMultivariateOptimizer<DifferentiableMultivariateFunction>Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.