public interface RealConvergenceChecker
optimization
algorithm
has converged.
Deciding if convergence has been reached is a problem-dependent issue. The user should provide a class implementing this interface to allow the optimization algorithm to stop its search according to the problem at hand.
For convenience, two implementations that fit simple needs are already provided:
SimpleScalarValueChecker
and SimpleRealPointChecker
. The first
one considers convergence is reached when the objective function value does not
change much anymore, it does not use the point set at all. The second one
considers convergence is reached when the input point set does not change
much anymore, it does not use objective function value at all.
Modifier and Type | Method and Description |
---|---|
boolean |
converged(int iteration,
RealPointValuePair previous,
RealPointValuePair current)
Check if the optimization algorithm has converged considering the last points.
|
boolean converged(int iteration, RealPointValuePair previous, RealPointValuePair current)
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.
iteration
- index of current iterationprevious
- point from previous iterationcurrent
- point from current iterationCopyright © 2010 - 2020 Adobe. All Rights Reserved