You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Frank Hess (JIRA)" <ji...@apache.org> on 2012/09/19 23:35:07 UTC

[jira] [Commented] (MATH-865) Wide bounds to CMAESOptimizer result in NaN parameters passed to fitness function

    [ 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