@Billou Thanks for implementing this in Julia.
I checked your JuliaCMAES code with Julia 0.3.0-prerelease and got an error
and some warning. The error occurs when loading the function:
ERROR: syntax: incomplete: unterminated multi-line comment #= ... =#
which happens on l.140. Actually, it was new for me, too, that Julia now
has multi-line comment. That is nice though I like the comment format in,
e.g., Lua more because with placing or deleting a single character the
multi-line comment will be toggled. In this case, adding a space between
'#' and '=' helps.
When calling the function, we get the following warnings:
WARNING: min(x) is deprecated, use minimum(x) instead.
in max at deprecated.jl:26
in cmaes at /home/hwb/cmaes_orig.jl:32
and in lines 40, 71, 92, and 179 as well. Correcting this, of course, is
easy though only the one in line 32 needs to be and should be replaced.
(In my own version I assume that a user might want to supply a vector of
sigmas for all directions. This may require some more changes.)
WARNING: x::Number - A::Array is deprecated, use x .- A instead.
in - at deprecated.jl:26
in cmaes at /home/hwb/cmaes_orig.jl:71
to be corrected as easily.
May I add that your CMA-ES implementation should allow for lower and upper
boundaries. Most often, in global optimization problems and in stochastic
optimization in general, one is looking for minima/optima in certain
regions while the objective function may take on lower values outside. --
This functionality is offered in the full Matlab version, too.
This can easily be done after line 127 (that's about the place where I
introduced reducing to the boundaries in my own implementation).
On Tuesday, September 3, 2013 5:52:24 PM UTC+2, Billou Bielour wrote:
>
> Hey, I did an julia port of my favorite optimization algorithm, I've used
> it quite a bit on real problems and I find it pretty good overall.
>
> It's a minimal implementation, lots of features are missing, but on the
> few tests I did it seems to work. Code and example here:
>
> https://github.com/Staross/JuliaCMAES/
>
>
>