Implementing enhancement modules to improve the ability of original CMA-ES in terms of scalability, performance and finding global optimum.
The reasons why I chose this project as GSoC project. I have been practicing C++ meta programming and multi-thread lately, mainly by reading "The C++ Programming Language" by the "father" of C++ Bjarne Stroustrup. I tried to implement the C++ matrix library from scratch recently, but everything seems overwhelming to me, so I decided to look for an open-sourced C++ project that aligns with my academic interests which are Statistics and Machine Learning. My mathematics is accumulated over the years, but yet I still have not tried to apply any related algorithm using my favorite programming language - C++
And surprisedly, mlpack GSoC idea on MCA-ES Enhancement is an intersection of my interests.
I did some research into this field and found some new promising improvements which can easily be integrated into ensmallen library
So the MCA-ES falls into the category of Evolutionary Algorithm(EA) - Evolution strategy. EA algorithms find the candidate solutions in any type of optimization problem by constantly changing the original (randomly generated) population - an inspired biological evolution process.
A typical ES consists of 4 steps and repeats the steps until the desired population is generated - qualified by objective function(s)