Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.math3.optim.nonlinear.scalar.noderiv
Class PowellOptimizer

    java.lang.Object
      org.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.noderiv.PowellOptimizer

    public class PowellOptimizer

extends 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 1413594 2012-11-26 13:16:39Z erans $

Field Summary

Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer
`evaluations, iterations`

Constructor Summary
`PowellOptimizer(double rel, double abs)` The parameters control the default convergence checking procedure.
`PowellOptimizer(double rel, double abs, ConvergenceChecker<PointValuePair> checker)` 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)` Builds an instance with the default convergence checking procedure.
`PowellOptimizer(double rel, double abs, double lineRel, double lineAbs, ConvergenceChecker<PointValuePair> checker)` 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
`protected PointValuePair` | `doOptimize()` Performs the bulk of the optimization algorithm.

Methods inherited from class org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer
`computeObjectiveValue, getGoalType, optimize`

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

### PowellOptimizer

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

  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)

  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)

  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)

  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)`.

Method Detail

### doOptimize

    protected PointValuePair doOptimize()

  Performs the bulk of the optimization algorithm.

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.