|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math.optimization.general.AbstractScalarDifferentiableOptimizer
org.apache.commons.math.optimization.direct.PowellOptimizer
public class PowellOptimizer
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).
Nested Class Summary | |
---|---|
private class |
PowellOptimizer.LineSearch
Class for finding the minimum of the objective function along a given direction. |
Field Summary | |
---|---|
static double |
DEFAULT_LS_ABSOLUTE_TOLERANCE
Default absolute tolerance for line search (1.0E-11). |
static double |
DEFAULT_LS_RELATIVE_TOLERANCE
Default relative tolerance for line search (1.0E-7). |
private PowellOptimizer.LineSearch |
line
Line search. |
Fields inherited from class org.apache.commons.math.optimization.general.AbstractScalarDifferentiableOptimizer |
---|
checker, DEFAULT_MAX_ITERATIONS, goal, point |
Constructor Summary | |
---|---|
PowellOptimizer()
Constructor with default line search tolerances (see the other constructor ). |
|
PowellOptimizer(double lsRelativeTolerance)
Constructor with default absolute line search tolerances (see the other constructor ). |
|
PowellOptimizer(double lsRelativeTolerance,
double lsAbsoluteTolerance)
|
Method Summary | |
---|---|
private double[] |
copyOf(double[] source,
int newLen)
Java 1.5 does not support Arrays.copyOf() |
protected RealPointValuePair |
doOptimize()
Perform the bulk of optimization algorithm. |
private double[][] |
newPointAndDirection(double[] p,
double[] d,
double optimum)
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.math.optimization.general.AbstractScalarDifferentiableOptimizer |
---|
computeObjectiveGradient, computeObjectiveValue, getConvergenceChecker, getEvaluations, getGradientEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementIterationsCounter, optimize, setConvergenceChecker, setMaxEvaluations, setMaxIterations |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final double DEFAULT_LS_RELATIVE_TOLERANCE
public static final double DEFAULT_LS_ABSOLUTE_TOLERANCE
private final PowellOptimizer.LineSearch line
Constructor Detail |
---|
public PowellOptimizer()
other constructor
).
public PowellOptimizer(double lsRelativeTolerance)
other constructor
).
lsRelativeTolerance
- Relative error tolerance for
the line search algorithm (BrentOptimizer
).public PowellOptimizer(double lsRelativeTolerance, double lsAbsoluteTolerance)
lsRelativeTolerance
- Relative error tolerance for
the line search algorithm (BrentOptimizer
).lsAbsoluteTolerance
- Relative error tolerance for
the line search algorithm (BrentOptimizer
).Method Detail |
---|
protected RealPointValuePair doOptimize() throws FunctionEvaluationException, OptimizationException
doOptimize
in class AbstractScalarDifferentiableOptimizer
FunctionEvaluationException
- if the objective function throws one during
the search
OptimizationException
- if the algorithm failed to convergeprivate double[][] newPointAndDirection(double[] p, double[] d, double optimum)
p
and d
will be changed in-place.
p
- Point used in the line search.d
- Direction used in the line search.optimum
- Optimum found by the line search.
private double[] copyOf(double[] source, int newLen)
source
- the array to be copiednewLen
- the length of the copy to be returned
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |