org.apache.commons.math3.optimization.general

## Class NonLinearConjugateGradientOptimizer

- java.lang.Object
- - org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer<DifferentiableMultivariateFunction>
  - - org.apache.commons.math3.optimization.general.AbstractScalarDifferentiableOptimizer
    - - 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

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `NonLinearConjugateGradientOptimizer.IdentityPreconditioner` Deprecated. Default identity preconditioner.
    `private class` | `NonLinearConjugateGradientOptimizer.LineSearchFunction` Deprecated. Internal class for line search.

  - ### Field Summary

    Fields
    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.

    - ### Fields inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer

      `evaluations`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `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

    Methods
    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.

    - ### 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