[
https://issues.apache.org/jira/browse/MATH-865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13459176#comment-13459176
]
Frank Hess commented on MATH-865:
---------------------------------
Another issue is, if you use bounds then the bounded range is mapped onto the
interval [0,1] where the fit is performed, and then blown back up to your
specified bounds after getting a result. This means if you use a large range,
the discreteness of Double variables becomes very noticeable in the fit
results. For example, if you set the boundsMagnitude to 5e15 (approx.
1./Math.ulp(1.)) in the Math865Test program I attached, the fitter is unable to
fit anything to a precision smaller than 1.
> Wide bounds to CMAESOptimizer result in NaN parameters passed to fitness
> function
> ---------------------------------------------------------------------------------
>
> Key: MATH-865
> URL: https://issues.apache.org/jira/browse/MATH-865
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 3.0, 3.1
> Reporter: Frank Hess
> Attachments: Math865Test.java
>
>
> If you give large values as lower/upper bounds (for example -Double.MAX_VALUE
> as a lower bound), the optimizer can call the fitness function with
> parameters set to NaN. My guess is this is due to
> FitnessFunction.encode/decode generating NaN when normalizing/denormalizing
> parameters. For example, if the difference between the lower and upper bound
> is greater than Double.MAX_VALUE, encode could divide infinity by infinity.
--
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