org.apache.commons.math3.optimization.direct

## Class PowellOptimizer

- java.lang.Object
- - org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer<MultivariateFunction>
  - - org.apache.commons.math3.optimization.direct.PowellOptimizer

- All Implemented Interfaces:
    BaseMultivariateOptimizer<MultivariateFunction>, BaseOptimizer<PointValuePair>, MultivariateOptimizer

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

      @Deprecated
      public class PowellOptimizer
      extends BaseAbstractMultivariateOptimizer<MultivariateFunction>
      implements MultivariateOptimizer

  Powell algorithm. This code is translated and adapted from the Python version of this algorithm (as implemented in module `optimize.py` v0.5 of SciPy).
  The default stopping criterion is based on the differences of the function value between two successive iterations. It is however possible to define a custom convergence checker that might terminate the algorithm earlier.
  The internal line search optimizer is a `BrentOptimizer` with a convergence checker set to `SimpleUnivariateValueChecker`.
  Since:
    2.2
  Version:
    $Id: PowellOptimizer.java 1422313 2012-12-15 18:53:41Z psteitz $

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private class` | `PowellOptimizer.LineSearch` Deprecated. Class for finding the minimum of the objective function along a given direction.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private double` | `absoluteThreshold` Deprecated. Absolute threshold.
    `private PowellOptimizer.LineSearch` | `line` Deprecated. Line search.
    `private static double` | `MIN_RELATIVE_TOLERANCE` Deprecated. Minimum relative tolerance.
    `private double` | `relativeThreshold` Deprecated. Relative threshold.

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

      `evaluations`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PowellOptimizer(double rel, double abs)` Deprecated. The parameters control the default convergence checking procedure.
    `PowellOptimizer(double rel, double abs, ConvergenceChecker<PointValuePair> checker)` Deprecated. This constructor allows to specify a user-defined convergence checker, in addition to the parameters that control the default convergence checking procedure.
    `PowellOptimizer(double rel, double abs, double lineRel, double lineAbs)` Deprecated. Builds an instance with the default convergence checking procedure.
    `PowellOptimizer(double rel, double abs, double lineRel, double lineAbs, ConvergenceChecker<PointValuePair> checker)` Deprecated. This constructor allows to specify a user-defined convergence checker, in addition to the parameters that control the default convergence checking procedure and the line search tolerances.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected PointValuePair` | `doOptimize()` Deprecated. Perform the bulk of the optimization algorithm.
    `private double[][]` | `newPointAndDirection(double[] p, double[] d, double optimum)` Deprecated. Compute a new point (in the original space) and a new direction vector, resulting from the line search.

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

      `computeObjectiveValue, getConvergenceChecker, getEvaluations, getGoalType, getLowerBound, getMaxEvaluations, getStartPoint, getUpperBound, optimize, optimize, optimizeInternal, 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

    - #### MIN_RELATIVE_TOLERANCE

          private static final double MIN_RELATIVE_TOLERANCE

      Deprecated.
      Minimum relative tolerance.

    - #### relativeThreshold

          private final double relativeThreshold

      Deprecated.
      Relative threshold.

    - #### absoluteThreshold

          private final double absoluteThreshold

      Deprecated.
      Absolute threshold.

    - #### line

          private final PowellOptimizer.LineSearch line

      Deprecated.
      Line search.

  - ### Constructor Detail

    - #### PowellOptimizer

          public PowellOptimizer(double rel,
                         double abs,
                         ConvergenceChecker<PointValuePair> checker)

      Deprecated.
      This constructor allows to specify a user-defined convergence checker, in addition to the parameters that control the default convergence checking procedure.
      The internal line search tolerances are set to the square-root of their corresponding value in the multivariate optimizer.
      Parameters:
        `rel` - Relative threshold.
        `abs` - Absolute threshold.
        `checker` - Convergence checker.
      Throws:
        `NotStrictlyPositiveException` - if `abs <= 0`.
        `NumberIsTooSmallException` - if `rel < 2 * Math.ulp(1d)`.

    - #### PowellOptimizer

          public PowellOptimizer(double rel,
                         double abs,
                         double lineRel,
                         double lineAbs,
                         ConvergenceChecker<PointValuePair> checker)

      Deprecated.
      This constructor allows to specify a user-defined convergence checker, in addition to the parameters that control the default convergence checking procedure and the line search tolerances.
      Parameters:
        `rel` - Relative threshold for this optimizer.
        `abs` - Absolute threshold for this optimizer.
        `lineRel` - Relative threshold for the internal line search optimizer.
        `lineAbs` - Absolute threshold for the internal line search optimizer.
        `checker` - Convergence checker.
      Throws:
        `NotStrictlyPositiveException` - if `abs <= 0`.
        `NumberIsTooSmallException` - if `rel < 2 * Math.ulp(1d)`.

    - #### PowellOptimizer

          public PowellOptimizer(double rel,
                         double abs)

      Deprecated.
      The parameters control the default convergence checking procedure.
      The internal line search tolerances are set to the square-root of their corresponding value in the multivariate optimizer.
      Parameters:
        `rel` - Relative threshold.
        `abs` - Absolute threshold.
      Throws:
        `NotStrictlyPositiveException` - if `abs <= 0`.
        `NumberIsTooSmallException` - if `rel < 2 * Math.ulp(1d)`.

    - #### PowellOptimizer

          public PowellOptimizer(double rel,
                         double abs,
                         double lineRel,
                         double lineAbs)

      Deprecated.
      Builds an instance with the default convergence checking procedure.
      Parameters:
        `rel` - Relative threshold.
        `abs` - Absolute threshold.
        `lineRel` - Relative threshold for the internal line search optimizer.
        `lineAbs` - Absolute threshold for the internal line search optimizer.
      Throws:
        `NotStrictlyPositiveException` - if `abs <= 0`.
        `NumberIsTooSmallException` - if `rel < 2 * Math.ulp(1d)`.
      Since:
        3.1

  - ### Method Detail

    - #### doOptimize

          protected PointValuePair doOptimize()

      Deprecated.
      Perform the bulk of the optimization algorithm.
      Specified by:
        `doOptimize` in class `BaseAbstractMultivariateOptimizer<MultivariateFunction>`
      Returns:
        the point/value pair giving the optimal value of the objective function.

    - #### newPointAndDirection

          private double[][] newPointAndDirection(double[] p,
                                        double[] d,
                                        double optimum)

      Deprecated.
      Compute a new point (in the original space) and a new direction vector, resulting from the line search.
      Parameters:
        `p` - Point used in the line search.
        `d` - Direction used in the line search.
        `optimum` - Optimum found by the line search.
      Returns:
        a 2-element array containing the new point (at index 0) and the new direction (at index 1).

Copyright (c) 2003-2013 Apache Software Foundation