[ 
https://issues.apache.org/jira/browse/MATH-867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461867#comment-13461867
 ] 

Frank Hess commented on MATH-867:
---------------------------------

If I'm fitting a peak width, for example, I only want to fit positive widths.  
So specifying a range with a bound on only one end like [0,+Infinity] would be 
natural.  Now the CMAESOptimizer doesn't accept infinite bounds, so the best I 
could do would be something like [0, VeryLargeValue].  And I might reasonably 
use an initial peak width of 1.  My expectation as a user is that specifying 
this bound actually helps the optimizer.  Instead what happens is the entirely 
the opposite (well, actually it works fine when the lower bound is zero but 
would blow up if you were setting a finite upper bound instead of a finite 
lower bound).

As a user the encoding of my fitted parameters to the interval 0 to 1 is 
entirely invisible and internal to the library.  So my expectation is the 
optimizer would give results with a precision matching the precision of the 
parameter being fitted (in the form I passed it in, not in some internal 
normalized form I know nothing about).
                
> CMAESOptimizer with bounds fits finely near lower bound and coarsely near 
> upper bound. 
> ---------------------------------------------------------------------------------------
>
>                 Key: MATH-867
>                 URL: https://issues.apache.org/jira/browse/MATH-867
>             Project: Commons Math
>          Issue Type: Bug
>            Reporter: Frank Hess
>         Attachments: Math867Test.java
>
>
> When fitting with bounds, the CMAESOptimizer fits finely near the lower bound 
> and coarsely near the upper bound.  This is because it internally maps the 
> fitted parameter range into the interval [0,1].  The unit of least precision 
> (ulp) between floating point numbers is much smaller near zero than near one. 
>  Thus, fits have much better resolution near the lower bound (which is mapped 
> to zero) than the upper bound (which is mapped to one).  I will attach a 
> example program to demonstrate.

--
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