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

Gilles commented on MATH-867:
-----------------------------

bq. to me it makes perfectly sense: luckily enough line 589 performs the same 
transformation on inputSigma as the encode function on getStartPoint() [...]

I may be missing something (and I can just make wild guesses since I have no 
clue about the CMAES algorithm) but I would be expecting that the code behaves 
the same way without boundaries as with boundaries that become arbitrarily 
large (i.e. when the [loBound, hiBound] interval becomes [-inf, +inf]).
The line that uses "inputSigma" does not behave that way since the "range" 
becomes arbitrarily large as the bounds grow although when there is no 
boundaries it is set 1.0.

This is also shown by some unit tests which I've just set up, by copying 
existing ones which minimized a function without constraint and specifying a 
very large allowed interval (e.g. [-1e20, 1e20]): those tests fail.
Intuitively, when the solution is far from the bounds (and the initial point 
also), whether there are bounds or not should not matter. But with the current 
implementation that's clearly not the case.

                
> 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

Reply via email to