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 public class PowellOptimizer extends BaseAbstractMultivariateOptimizer<MultivariateFunction> implements MultivariateOptimizer
Deprecated.As of 3.1 (to be removed in 4.0).Powell algorithm. This code is translated and adapted from the Python version of this algorithm (as implemented in moduleoptimize.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 aBrentOptimizer
with a convergence checker set toSimpleUnivariateValueChecker
.- Since:
- 2.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 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 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 Description PowellOptimizer(double rel, double abs)
Deprecated.The parameters 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.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.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method 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
- ifabs <= 0
.NumberIsTooSmallException
- ifrel < 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
- ifabs <= 0
.NumberIsTooSmallException
- ifrel < 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
- ifabs <= 0
.NumberIsTooSmallException
- ifrel < 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
- ifabs <= 0
.NumberIsTooSmallException
- ifrel < 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 classBaseAbstractMultivariateOptimizer<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).
-
-