commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christiaan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (MATH-427) LevenbergMarquardtOptimizer: able to customize convergence condition
Date Mon, 18 Oct 2010 14:49:23 GMT

     [ 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.


Mime
View raw message