# commons-issues mailing list archives

##### Site index · List index
Message view
Top
From "Frank Hess (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-867) CMAESOptimizer with bounds fits finely near lower bound and coarsely near upper bound.
Date Mon, 24 Sep 2012 13:38:07 GMT
```
[ https://issues.apache.org/jira/browse/MATH-867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461788#comment-13461788
]

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

I tried changing the FitnessFunction.encode/decode methods so they don't offset and that causes
my test program to fit well near both bounds.  That is, I changed encode from:

res[i] = (x[i] - boundaries[0][i]) / diff;

to:

res[i] = x[i] / diff;

and changed decode from:

res[i] = diff * x[i] + boundaries[0][i];

to:

res[i] = diff * x[i];

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