@Deprecated 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
Deprecated.
Default identity preconditioner.
|
private class |
NonLinearConjugateGradientOptimizer.LineSearchFunction
Deprecated.
Internal class for line search.
|
| Modifier and Type | Field and Description |
|---|---|
private double |
initialStep
Deprecated.
Initial step used to bracket the optimum in line search.
|
private double[] |
point
Deprecated.
Current point.
|
private Preconditioner |
preconditioner
Deprecated.
Preconditioner (may be null).
|
private UnivariateSolver |
solver
Deprecated.
solver to use in the line search (may be null).
|
private ConjugateGradientFormula |
updateFormula
Deprecated.
Update formula for the beta parameter.
|
evaluations| Constructor and Description |
|---|
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
Deprecated.
|
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
ConvergenceChecker<PointValuePair> checker)
Deprecated.
Constructor with default
line search solver and
preconditioner. |
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
ConvergenceChecker<PointValuePair> checker,
UnivariateSolver lineSearchSolver)
Deprecated.
Constructor with default
preconditioner. |
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
ConvergenceChecker<PointValuePair> checker,
UnivariateSolver lineSearchSolver,
Preconditioner preconditioner)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
protected PointValuePair |
doOptimize()
Deprecated.
Perform the bulk of the optimization algorithm.
|
private double |
findUpperBound(UnivariateFunction f,
double a,
double h)
Deprecated.
Find the upper bound b ensuring bracketing of a root between a and b.
|
void |
setInitialStep(double initialStep)
Deprecated.
Set the initial step used to bracket the optimum in line search.
|
computeObjectiveGradient, optimize, optimizeInternalcomputeObjectiveValue, getConvergenceChecker, getEvaluations, getGoalType, getLowerBound, getMaxEvaluations, getStartPoint, getUpperBound, optimize, optimize, optimizeInternalclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitoptimizegetConvergenceChecker, getEvaluations, getMaxEvaluationsprivate final ConjugateGradientFormula updateFormula
private final Preconditioner preconditioner
private final UnivariateSolver solver
private double initialStep
private double[] point
@Deprecated public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
SimpleValueChecker.SimpleValueChecker()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>private double findUpperBound(UnivariateFunction f, double a, double h)
f - function whose root must be bracketed.a - lower bound of the interval.h - initial step to try.MathIllegalStateException - if no bracket can be found.Copyright (c) 2003-2015 Apache Software Foundation