|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.math.optimization.general.AbstractScalarDifferentiableOptimizer
org.apache.commons.math.optimization.general.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.
| Field Summary |
|---|
| Fields inherited from class org.apache.commons.math.optimization.general.AbstractScalarDifferentiableOptimizer |
|---|
checker, DEFAULT_MAX_ITERATIONS, goal, point |
| Constructor Summary | |
|---|---|
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
Simple constructor with default settings. |
|
| Method Summary | |
|---|---|
protected RealPointValuePair |
doOptimize()
Perform the bulk of optimization algorithm. |
void |
setInitialStep(double initialStep)
Set the initial step used to bracket the optimum in line search. |
void |
setLineSearchSolver(UnivariateRealSolver lineSearchSolver)
Set the solver to use during line search. |
void |
setPreconditioner(Preconditioner preconditioner)
Set the preconditioner. |
| Methods inherited from class org.apache.commons.math.optimization.general.AbstractScalarDifferentiableOptimizer |
|---|
computeObjectiveGradient, computeObjectiveValue, getConvergenceChecker, getEvaluations, getGradientEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementIterationsCounter, optimize, setConvergenceChecker, setMaxEvaluations, setMaxIterations |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
The convergence check is set to a SimpleVectorialValueChecker
and the maximal number of iterations is set to
AbstractScalarDifferentiableOptimizer.DEFAULT_MAX_ITERATIONS.
updateFormula - formula to use for updating the β parameter,
must be one of ConjugateGradientFormula.FLETCHER_REEVES or ConjugateGradientFormula.POLAK_RIBIERE| Method Detail |
|---|
public void setPreconditioner(Preconditioner preconditioner)
preconditioner - preconditioner to use for next optimization,
may be null to remove an already registered preconditionerpublic void setLineSearchSolver(UnivariateRealSolver lineSearchSolver)
lineSearchSolver - solver to use during line search, may be null
to remove an already registered solver and fall back to the
default Brent solver.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.0
protected RealPointValuePair doOptimize()
throws FunctionEvaluationException,
OptimizationException,
IllegalArgumentException
doOptimize in class AbstractScalarDifferentiableOptimizerFunctionEvaluationException - if the objective function throws one during
the search
OptimizationException - if the algorithm failed to converge
IllegalArgumentException - if the start point dimension is wrong
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||