org.apache.commons.math.optimization
Interface RealConvergenceChecker

All Known Implementing Classes:
SimpleRealPointChecker, SimpleScalarValueChecker

public interface RealConvergenceChecker

This interface specifies how to check if an 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.

Since:
2.0
Version:
$Revision: 799857 $ $Date: 2009-08-01 15:07:12 +0200 (sam. 01 août 2009) $

Method Summary
 boolean converged(int iteration, RealPointValuePair previous, RealPointValuePair current)
          Check if the optimization algorithm has converged considering the last points.
 

Method Detail

converged

boolean converged(int iteration,
                  RealPointValuePair previous,
                  RealPointValuePair current)
Check if the optimization algorithm has converged considering the last 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 - index of current iteration
previous - point from previous iteration
current - point from current iteration
Returns:
true if the algorithm is considered to have converged


Copyright © 2003-2011 The Apache Software Foundation. All Rights Reserved.