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 7721 2013-02-14 14:07:13Z CardosoP $
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. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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)
.
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.
Copyright © 2017 CNES. All Rights Reserved.