[
https://issues.apache.org/jira/browse/MATH-427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christiaan updated MATH-427:
----------------------------
Description:
Currently it is not possible to customize the condition for exiting the
iterations in the doOptimize() of LevenbergMarquardtOptimizer. I ran into the
scenario where the following condition was already met after 2 iterations,
however in this scenario a better result could be achieved after 118 iterations:
Current condition:
// tests for convergence.
if (((Math.abs(actRed) <= costRelativeTolerance) &&
(preRed <= costRelativeTolerance) &&
(ratio <= 2.0)) ||
(delta <= parRelativeTolerance * xNorm)) {
return new VectorialPointValuePair(point, objective);
}
Preferred condition:
delta <= 2.2204e-16 * xNorm
Eg. code should probably invoke VectorialConvergenceChecker in
AbstractLeastSquaresOptimizer
was:
Currently it is not possible to customize the condition for exiting the
iterations in the doOptimize() of LevenbergMarquardtOptimizer. I ran into the
scenario where the following condition was already met after 2 iterations,
however in this scenario a better result could be achieved after 118 iterations:
Current condition:
// tests for convergence.
if (((Math.abs(actRed) <= costRelativeTolerance) &&
(preRed <= costRelativeTolerance) &&
(ratio <= 2.0)) ||
(delta <= parRelativeTolerance * xNorm)) {
return new VectorialPointValuePair(point, objective);
}
Preferred condition:
delta <= 2.2204e-16 * xNorm
Eg. if code is put in a protected method convergenceCondition() then
LevenbergMarquardtOptimizer could be subclassed to customize this behaviour.
> LevenbergMarquardtOptimizer: able to customize convergence condition
> --------------------------------------------------------------------
>
> Key: MATH-427
> URL: https://issues.apache.org/jira/browse/MATH-427
> Project: Commons Math
> Issue Type: Improvement
> Reporter: Christiaan
>
> Currently it is not possible to customize the condition for exiting the
> iterations in the doOptimize() of LevenbergMarquardtOptimizer. I ran into the
> scenario where the following condition was already met after 2 iterations,
> however in this scenario a better result could be achieved after 118
> iterations:
> Current condition:
> // tests for convergence.
> if (((Math.abs(actRed) <= costRelativeTolerance) &&
> (preRed <= costRelativeTolerance) &&
> (ratio <= 2.0)) ||
> (delta <= parRelativeTolerance * xNorm)) {
> return new VectorialPointValuePair(point, objective);
> }
> Preferred condition:
> delta <= 2.2204e-16 * xNorm
> Eg. code should probably invoke VectorialConvergenceChecker in
> AbstractLeastSquaresOptimizer
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.