[ 
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

Reply via email to