Home \ Metaheuristics \ CMA-ES in MATLAB


Evolution Strategy (ES) is the first and oldest evolutionary algorithm, and it is based on the adaptation and evolution. Specially, the main concept used to describe how Evolution Strategy works, is the Evolution of Evolution. In fact, evolution strategy is a family of related algorithms, and because of this, the plural name Evolution Strategies is also widely used, in the community. For more detail on the Evolution Strategies, you can refer to this article on Wikipedia.

One of the most recent and powerful versions of evolution strategy algorithm, is the Covariance Matrix Adaptation Evolution Strategy (CMA-ES), which is proposed by Nikolaus Hansen and Andreas Ostermeier, in 2001, in this paper. It is notable that, the original name of the algorithm, was Completely Derandomized Self-Adaptation in Evolution Strategies, in the mentioned paper, and the current CMA-ES, is almost the same algorithm.

CMA-ES creates a Gaussian probabilistic model of promising solutions and in creation of the next generation population, this model is utilized. So the CMA-ES, is an Estimation of Distribution Algorithm (EDA). For more information on EDAs, you can refer to the related article on Wikipedia, located in this link. The mathematical and statistical model used in the structure of CMA-ES, is really interesting and distinguishes this algorithm, from all other evolutionary algorithms and metaheuristics.

In this post, we are going to share with you, a structured open-source implementation of CMA-ES in MATLAB. If you are familiar with MATLAB programming language, you will find it easy, to use the provided source codes in your research and projects.


The download link of this project follows.

Implementation of Covariance Matrix Adaptation Evolution Strategy (CMA-ES) in MATLAB


Citing This Work

If you wish, you can cite this content as follows.

Cite as:

Mostapha Kalami Heris, CMA-ES in MATLAB (URL: https://yarpiz.com/235/ypea108-cma-es), Yarpiz, 2015.


  1. The code works perfectly. Thanks a lot!

  2. Very very nice and clean.

  3. Very helpful site with excellent code , easy to understand and apply in any project/thesis work.
    Thank you so much for a nice work.

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.


Check Also

Particle Swarm Optimization (PSO) in MATLAB -- Video Tutorial

Particle Swarm Optimization (PSO) in MATLAB – Video Tutorial

Particle Swarm Optimization (PSO) is an intelligent algorithm leveraging principles from Swarm Intelligence, inspired by ...