You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gilles (JIRA)" <ji...@apache.org> on 2012/10/18 15:58:03 UTC
[jira] [Commented] (MATH-879) "CMAESOptimizer" silently changes
invalid input
[ https://issues.apache.org/jira/browse/MATH-879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13479013#comment-13479013 ]
Gilles commented on MATH-879:
-----------------------------
The code is:
{code}
if (lambda <= 0) {
lambda = 4 + (int) (3 * Math.log(dimension));
}
{code}
This implies that the default is dependent on the number of optimized parameters. Hence, I would suggest that "lambda" be specified at the call to "optimize", as kind of "OptimizationData" (with a more suggestive name, such as "PopulationSize"), with no default (the value currently used in the code could appear as a _suggestion_ in the documentation).
And passing this parameter through the constructor will be deprecated.
What do you think?
> "CMAESOptimizer" silently changes invalid input
> -----------------------------------------------
>
> Key: MATH-879
> URL: https://issues.apache.org/jira/browse/MATH-879
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 3.0
> Reporter: Gilles
> Assignee: Gilles
> Priority: Trivial
> Fix For: 3.1
>
>
> The "lambda" input parameter must be strictly positive. But when it's not the case, an undocumented default is used (cf. line 526).
> When a precondition is not satisfied, the code must throw an exception.
> Instead of the code unknowingly changing the input, it is rather the documentation that should suggest a good default.
> This change would allow to make "lambda" a constant (final) field.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira