Class LineSearch
java.lang.Object
org.apache.commons.math3.optim.nonlinear.scalar.LineSearch
Class for finding the minimum of the objective function along a given
direction.
- Since:
- 3.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final double
Value that will pass the precondition check forBrentOptimizer
but will not pass the convergence check, so that the custom checker will always decide when to stop the line search.private final BracketFinder
Automatic bracketing.private final double
Extent of the initial interval used to find an interval that brackets the optimum.private final UnivariateOptimizer
Optimizer used for line search.private final MultivariateOptimizer
Optimizer on behalf of which the line search must be performed.private static final double
Value that will pass the precondition check forBrentOptimizer
but will not pass the convergence check, so that the custom checker will always decide when to stop the line search. -
Constructor Summary
ConstructorsConstructorDescriptionLineSearch
(MultivariateOptimizer optimizer, double relativeTolerance, double absoluteTolerance, double initialBracketingRange) TheBrentOptimizer
default stopping criterion uses the tolerances to check the domain (point) values, not the function values. -
Method Summary
Modifier and TypeMethodDescriptionsearch
(double[] startPoint, double[] direction) Finds the numberalpha
that optimizesf(startPoint + alpha * direction)
.
-
Field Details
-
REL_TOL_UNUSED
private static final double REL_TOL_UNUSEDValue that will pass the precondition check forBrentOptimizer
but will not pass the convergence check, so that the custom checker will always decide when to stop the line search.- See Also:
-
ABS_TOL_UNUSED
private static final double ABS_TOL_UNUSEDValue that will pass the precondition check forBrentOptimizer
but will not pass the convergence check, so that the custom checker will always decide when to stop the line search.- See Also:
-
lineOptimizer
Optimizer used for line search. -
bracket
Automatic bracketing. -
initialBracketingRange
private final double initialBracketingRangeExtent of the initial interval used to find an interval that brackets the optimum. -
mainOptimizer
Optimizer on behalf of which the line search must be performed.
-
-
Constructor Details
-
LineSearch
public LineSearch(MultivariateOptimizer optimizer, double relativeTolerance, double absoluteTolerance, double initialBracketingRange) TheBrentOptimizer
default stopping criterion uses the tolerances to check the domain (point) values, not the function values. TherelativeTolerance
andabsoluteTolerance
arguments are thus passed to acustom checker
that will use the function values.- Parameters:
optimizer
- Optimizer on behalf of which the line search be performed. ItscomputeObjectiveValue
method will be called by thesearch
method.relativeTolerance
- Search will stop when the function relative difference between successive iterations is below this value.absoluteTolerance
- Search will stop when the function absolute difference between successive iterations is below this value.initialBracketingRange
- Extent of the initial interval used to find an interval that brackets the optimum. If the optimized function varies a lot in the vicinity of the optimum, it may be necessary to provide a value lower than the distance between successive local minima.
-
-
Method Details
-
search
Finds the numberalpha
that optimizesf(startPoint + alpha * direction)
.- Parameters:
startPoint
- Starting point.direction
- Search direction.- Returns:
- the optimum.
- Throws:
TooManyEvaluationsException
- if the number of evaluations is exceeded.
-