Top Description Fields Constructors Methods
org.apache.commons.math3.optim

public Class SimpleValueChecker

extends AbstractConvergenceChecker<PointValuePair>
Class Inheritance
Imports
org.apache.commons.math3.util.FastMath, org.apache.commons.math3.exception.NotStrictlyPositiveException

Simple implementation of the ConvergenceChecker interface using only objective function values. Convergence is considered to have been reached if either the relative difference between the objective function values is smaller than a threshold or if either the absolute difference between the objective function values is smaller than another threshold.
The converged method will also return true if the number of iterations has been set (see this constructor).
Since
3.0

Field Summary

Modifier and TypeField and Description
private static final int
ITERATION_CHECK_DISABLED

If maxIterationCount is set to this value, the number of iterations will never cause converged(int, PointValuePair, PointValuePair) to return true.

private final int
maxIterationCount

Number of iterations after which the converged(int, PointValuePair, PointValuePair) method will return true (unless the check is disabled).

Constructor Summary

AccessConstructor and Description
public
SimpleValueChecker(final double
relative tolerance threshold
relativeThreshold
,
final double
absolute tolerance threshold
absoluteThreshold
)

Build an instance with specified thresholds.

public
SimpleValueChecker(final double
relative tolerance threshold
relativeThreshold
,
final double
absolute tolerance threshold
absoluteThreshold
,
final int
Maximum iteration count.
maxIter
)

Builds an instance with specified thresholds.

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

true if the algorithm has converged.
converged
(final int
Index of current iteration
iteration
,
final PointValuePair
Best point in the previous iteration.
previous
,
final PointValuePair
Best point in the current iteration.
current
)

Implements abstract org.apache.commons.math3.optim.AbstractConvergenceChecker.converged.

Implements org.apache.commons.math3.optim.ConvergenceChecker.converged.

Check if the optimization algorithm has converged considering the last two points.

Inherited from org.apache.commons.math3.optim.AbstractConvergenceChecker:
getAbsoluteThresholdgetRelativeThreshold

Field Detail

ITERATION_CHECK_DISABLEDback to summary
private static final int ITERATION_CHECK_DISABLED

If maxIterationCount is set to this value, the number of iterations will never cause converged(int, PointValuePair, PointValuePair) to return true.

maxIterationCountback to summary
private final int maxIterationCount

Number of iterations after which the converged(int, PointValuePair, PointValuePair) method will return true (unless the check is disabled).

Constructor Detail

SimpleValueCheckerback to summary
public SimpleValueChecker(final double relativeThreshold, final double absoluteThreshold)

Build an instance with specified thresholds. In order to perform only relative checks, the absolute tolerance must be set to a negative value. In order to perform only absolute checks, the relative tolerance must be set to a negative value.

Parameters
relativeThreshold:double

relative tolerance threshold

absoluteThreshold:double

absolute tolerance threshold

SimpleValueCheckerback to summary
public SimpleValueChecker(final double relativeThreshold, final double absoluteThreshold, final int maxIter)

Builds an instance with specified thresholds. In order to perform only relative checks, the absolute tolerance must be set to a negative value. In order to perform only absolute checks, the relative tolerance must be set to a negative value.

Parameters
relativeThreshold:double

relative tolerance threshold

absoluteThreshold:double

absolute tolerance threshold

maxIter:int

Maximum iteration count.

Exceptions
NotStrictlyPositiveException:
if maxIter <= 0.
Since
3.1

Method Detail

convergedback to summary
public boolean converged(final int iteration, final PointValuePair previous, final PointValuePair current)

Implements abstract org.apache.commons.math3.optim.AbstractConvergenceChecker.converged.

Implements org.apache.commons.math3.optim.ConvergenceChecker.converged.

Check if the optimization algorithm has converged considering the last two points. This method may be called several time from the same algorithm iteration with different points. This can be detected by checking the iteration number at each call if needed. Each time this method is called, the previous and current point correspond to points with the same role at each iteration, so they can be compared. As an example, simplex-based algorithms call this method for all points of the simplex, not only for the best or worst ones.

Parameters
iteration:int

Index of current iteration

previous:PointValuePair

Best point in the previous iteration.

current:PointValuePair

Best point in the current iteration.

Returns:boolean

true if the algorithm has converged.

Annotations
@Override