org.apache.commons.math3.optimization.general
Class NonLinearConjugateGradientOptimizer

java.lang.Object
  extended by org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer<DifferentiableMultivariateFunction>
      extended by org.apache.commons.math3.optimization.general.AbstractScalarDifferentiableOptimizer
          extended by org.apache.commons.math3.optimization.general.NonLinearConjugateGradientOptimizer
All Implemented Interfaces:
BaseMultivariateOptimizer<DifferentiableMultivariateFunction>, BaseOptimizer<PointValuePair>, DifferentiableMultivariateOptimizer

Deprecated. As of 3.1 (to be removed in 4.0).

@Deprecated
public class NonLinearConjugateGradientOptimizer
extends AbstractScalarDifferentiableOptimizer

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.

Since:
2.0
Version:
$Id: NonLinearConjugateGradientOptimizer.java 1422230 2012-12-15 12:11:13Z erans $

Nested Class Summary
static class NonLinearConjugateGradientOptimizer.IdentityPreconditioner
          Deprecated. Default identity preconditioner.
private  class NonLinearConjugateGradientOptimizer.LineSearchFunction
          Deprecated. Internal class for line search.
 
Field Summary
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.
 
Fields inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer
evaluations
 
Constructor Summary
NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
          Deprecated. See SimpleValueChecker.SimpleValueChecker()
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.  
 
Method Summary
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.
 
Methods inherited from class org.apache.commons.math3.optimization.general.AbstractScalarDifferentiableOptimizer
computeObjectiveGradient, optimize, optimizeInternal
 
Methods inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer
computeObjectiveValue, getConvergenceChecker, getEvaluations, getGoalType, getLowerBound, getMaxEvaluations, getStartPoint, getUpperBound, optimize, optimize, optimizeInternal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.commons.math3.optimization.BaseMultivariateOptimizer
optimize
 
Methods inherited from interface org.apache.commons.math3.optimization.BaseOptimizer
getConvergenceChecker, getEvaluations, getMaxEvaluations
 

Field Detail

updateFormula

private final ConjugateGradientFormula updateFormula
Deprecated. 
Update formula for the beta parameter.


preconditioner

private final Preconditioner preconditioner
Deprecated. 
Preconditioner (may be null).


solver

private final UnivariateSolver solver
Deprecated. 
solver to use in the line search (may be null).


initialStep

private double initialStep
Deprecated. 
Initial step used to bracket the optimum in line search.


point

private double[] point
Deprecated. 
Current point.

Constructor Detail

NonLinearConjugateGradientOptimizer

@Deprecated
public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
Deprecated. See SimpleValueChecker.SimpleValueChecker()

Constructor with default checker, line search solver and preconditioner.

Parameters:
updateFormula - formula to use for updating the β parameter, must be one of ConjugateGradientFormula.FLETCHER_REEVES or ConjugateGradientFormula.POLAK_RIBIERE.

NonLinearConjugateGradientOptimizer

public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
                                           ConvergenceChecker<PointValuePair> checker)
Deprecated. 
Constructor with default line search solver and preconditioner.

Parameters:
updateFormula - formula to use for updating the β parameter, must be one of ConjugateGradientFormula.FLETCHER_REEVES or ConjugateGradientFormula.POLAK_RIBIERE.
checker - Convergence checker.

NonLinearConjugateGradientOptimizer

public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
                                           ConvergenceChecker<PointValuePair> checker,
                                           UnivariateSolver lineSearchSolver)
Deprecated. 
Constructor with default preconditioner.

Parameters:
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.

NonLinearConjugateGradientOptimizer

public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
                                           ConvergenceChecker<PointValuePair> checker,
                                           UnivariateSolver lineSearchSolver,
                                           Preconditioner preconditioner)
Deprecated. 
Parameters:
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.
Method Detail

setInitialStep

public void setInitialStep(double initialStep)
Deprecated. 
Set the initial step used to bracket the optimum in line search.

The initial step is a factor with respect to the search direction, which itself is roughly related to the gradient of the function

Parameters:
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

doOptimize

protected PointValuePair doOptimize()
Deprecated. 
Perform the bulk of the optimization algorithm.

Specified by:
doOptimize in class BaseAbstractMultivariateOptimizer<DifferentiableMultivariateFunction>
Returns:
the point/value pair giving the optimal value of the objective function.

findUpperBound

private double findUpperBound(UnivariateFunction f,
                              double a,
                              double h)
Deprecated. 
Find the upper bound b ensuring bracketing of a root between a and b.

Parameters:
f - function whose root must be bracketed.
a - lower bound of the interval.
h - initial step to try.
Returns:
b such that f(a) and f(b) have opposite signs.
Throws:
MathIllegalStateException - if no bracket can be found.


Copyright (c) 2003-2013 Apache Software Foundation