MATLAB Answers


Is there CMA-ES implementation that can deal with a mixed integer problem and run parallel evaluations of the objective function?

Asked by Jorge Mallo on 19 Sep 2016


I need to optimize a function. The problem has: -20 parameters -upper and lower bounds for each parameter -first and second order derivatives are not available / existent -There is quite a bit of noise -Each evaluation of the objective function takes ~5-10 mins

I have been using the genetic algorithm and works well in general. The issue is that it needs ~1 week to converge, and I need to do several optimizations like this.

To speed up the optimization, I was considering other evolutionary algorithms, and I read about CMA-ES. It seems that for certain problems can converge much faster and I wanted to try it. I found several implementations:

- In the Google repository

- In Matlab central

- At LRA

None of them works with mixed integers and has a parallel implementation (my objective function can not be vectorized, should be computed using parallel evaluation).

Are you aware of a good Matlab implementation of CMA-ES other than the ones mentioned above?

[Question for Matlab community managers] Is CMA-ES expected to be implemented in the optimization toolbox in coming Matlab releases?

Thanks, Jorge


Sign in to comment.

2 Answers

Answer by Jordan Ross on 22 Sep 2016

Hi Jorge,

I work for MathWorks and I have forwarded this enhancement request to the appropriate product team. They might consider implementing this feature in a future release.


Sign in to comment.

I'd like to see this implemented in a future MATLAB release. The problem that I am working on is almost identical to that described here.

A CMA-ES implementation native within MATLAB, capable of handling integer variables would indeed be much welcome.


Sign in to comment.