[ 
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

Reply via email to