Details
-
Task
-
Status: Resolved
-
Trivial
-
Resolution: Fixed
-
3.0
-
None
Description
The custom convergence checkers let users override the ad-hoc convergence criteria that most optimization algorithms provide.
CM defines "simple" checkers that inherit from "AbstractConvergenceChecker" and use the default values provided in that class. However good values for the tolerances are problem-dependent.
User control cannot come without the user paying attention to those values, or "strange" failures can happen (cf. issue MATH-798).
It is thus proposed to remove the default values defined in "AbstractConvergenceChecker", and also to remove the default (no-arg) constructor for all the convergence checkers defined in CM, i.e.:
- AbstractConvergenceChecker
- SimpleValueChecker
- SimpleUnivariateValueChecker
- SimplePointChecker
- SimpleVectorValueChecker
In turn, this implies the removal of some of the constructors (which call the above constructors) in the following classes:
- SimplexOptimizer
- BaseAbstractMultivariateOptimizer
- BaseAbstractMultivariateVectorOptimizer
- CMAESOptimizer
- BaseAbstractMultivariateSimpleBoundsOptimizer
- AbstractScalarDifferentiableOptimizer
- GaussNewtonOptimizer
- AbstractLeastSquaresOptimizer
- NonLinearConjugateGradientOptimizer
- LevenbergMarquardtOptimizer
To maintain backwards-compatibility, the fields and constructors will be deprecated but not removed until the preparation of release 4.0.
Attachments
Issue Links
- relates to
-
MATH-798 PolynomialFitter.fit() stalls
- Closed