[
https://issues.apache.org/jira/browse/MATH-865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13459118#comment-13459118
]
Frank Hess commented on MATH-865:
---------------------------------
Also, if the first call to the fitness function returns NaN and gets stored in
the bestValue local variable in doOptimize() before the generationLoop, then
the optimization will completely fail. This is because the later comparison
if(bestValue > bestFitness) will always return false if bestValue is NaN and no
more optimal result will ever be found.
> 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
>
> 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