|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math3.optim.BaseOptimizer<PAIR>
org.apache.commons.math3.optim.BaseMultivariateOptimizer<PointValuePair>
org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer
org.apache.commons.math3.optim.nonlinear.scalar.GradientMultivariateOptimizer
org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer
public class NonLinearConjugateGradientOptimizer
Non-linear conjugate gradient optimizer.
This class supports both the Fletcher-Reeves and the Polak-Ribière
update formulas for the conjugate search directions.
It also supports optional preconditioning.
Constraints are not supported: the call to
optimize
will throw
MathUnsupportedOperationException
if bounds are passed to it.
Nested Class Summary | |
---|---|
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. |
Field Summary |
---|
Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer |
---|
evaluations, iterations |
Constructor Summary | |
---|---|
NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormula,
ConvergenceChecker<PointValuePair> checker)
Constructor with default line search solver and
preconditioner . |
|
NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormula,
ConvergenceChecker<PointValuePair> checker,
UnivariateSolver lineSearchSolver)
Constructor with default preconditioner . |
|
NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormula,
ConvergenceChecker<PointValuePair> checker,
UnivariateSolver lineSearchSolver,
Preconditioner preconditioner)
|
Method Summary | |
---|---|
protected PointValuePair |
doOptimize()
Performs the bulk of the optimization algorithm. |
PointValuePair |
optimize(OptimizationData... optData)
Stores data and performs the optimization. |
protected void |
parseOptimizationData(OptimizationData... optData)
Scans the list of (required and optional) optimization data that characterize the problem. |
Methods inherited from class org.apache.commons.math3.optim.nonlinear.scalar.GradientMultivariateOptimizer |
---|
computeObjectiveGradient |
Methods inherited from class org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer |
---|
computeObjectiveValue, getGoalType |
Methods inherited from class org.apache.commons.math3.optim.BaseMultivariateOptimizer |
---|
getLowerBound, getStartPoint, getUpperBound |
Methods inherited from class org.apache.commons.math3.optim.BaseOptimizer |
---|
getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public NonLinearConjugateGradientOptimizer(NonLinearConjugateGradientOptimizer.Formula updateFormula, ConvergenceChecker<PointValuePair> checker)
line search solver
and
preconditioner
.
updateFormula
- 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 updateFormula, ConvergenceChecker<PointValuePair> checker, UnivariateSolver lineSearchSolver)
preconditioner
.
updateFormula
- 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 updateFormula, ConvergenceChecker<PointValuePair> checker, UnivariateSolver lineSearchSolver, Preconditioner preconditioner)
updateFormula
- 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.preconditioner
- Preconditioner.Method Detail |
---|
public PointValuePair optimize(OptimizationData... optData) throws TooManyEvaluationsException
BaseOptimizer.parseOptimizationData(OptimizationData[])
if they need to register
their own options; but then, they must also call
super.parseOptimizationData(optData)
within that method.
optimize
in class GradientMultivariateOptimizer
optData
- Optimization data. In addition to those documented in
GradientMultivariateOptimizer
, this method will register the following data:
TooManyEvaluationsException
- if the maximal number of
evaluations (of the objective function) is exceeded.protected PointValuePair doOptimize()
doOptimize
in class BaseOptimizer<PointValuePair>
protected void parseOptimizationData(OptimizationData... optData)
parseOptimizationData
in class GradientMultivariateOptimizer
optData
- Optimization data.
The following data will be looked for:
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |