[
https://issues.apache.org/jira/browse/MATH-867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13466199#comment-13466199
]
Nikolaus Hansen commented on MATH-867:
--------------------------------------
I second to make encode/decode the identity to address the bug. I don't even
see a different way to address it. Then, inputSigma/sigmaArray/insigma should
become independent of the boundary values (which seems consistent with the doc,
as long as encode/decode remains the identity).
my previous snippet must read
{code}
guess[i] - sigmaArray[i]/2. > fitfun.encode(boundaries[0])[i]
{code}
because we have
{code}
final double[] guess = fitfun.encode(getStartPoint());
{code}
i.e. guess is an encoded initial guess.
> 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: MATH867_patch, 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