@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, optimizeInternal
computeObjectiveValue, getConvergenceChecker, getEvaluations, getGoalType, getLowerBound, getMaxEvaluations, getStartPoint, getUpperBound, optimize, optimize, optimizeInternal
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
optimize
getConvergenceChecker, getEvaluations, getMaxEvaluations
private 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.