Comparison of influence of various methods of (pseudo)random sequences on the efficiency of algorithms from DE and CMA-ES family
Porównanie wpływu różnych metod generacji liczb (pseudo)losowych na efektywność algorytmów z rodziny CMA-ES i DE
For building the C++ components, you need:
- C++11 compiler (g++ or clang++)
- CMake or autotools (autoconf, automake, libtool)
- Eigen3 - for matrix operations
- Google glog - for logging (optional but recommended)
- Google gflags - for command line parsing (optional)
On Debian/Ubuntu systems:
sudo apt-get install autoconf automake libtool libgoogle-glog-dev libgflags-dev libeigen3-dev- Python 3.8+
- All Python dependencies are listed in requirements.txt
Install Python dependencies:
pip install -r requirements.txtKey Python packages include:
numpy- numerical computingscipy- scientific computingmatplotlib,seaborn- visualizationpandas- data analysisjupyter,notebook- interactive notebooks
To build all C++ components at once from the root directory:
makeThis will build:
- Random number generators (linear congruential and Mersenne Twister)
- CEC-2013 and CEC-2021 benchmark functions
- L-SHADE algorithm
- CMA-ES algorithm (including libcmaes if not already installed)
You can also build specific components:
make generators # Build only random number generators
make benchmarks # Build CEC-2013 and CEC-2021
make algorithms # Build L-SHADE and CMA-ESOr build from individual directories:
cd L-SHADE && make
cd CMA-ES && make
cd CEC-2013 && make
cd CEC-2021 && makelinear_congruential.cpp- Linear congruential generator implementationmersenne_twister.cpp- Mersenne Twister generator implementationtrue_random.py- True random number generator using RANDOM.ORG APIRandom-Buffer/- Random number buffer class implementationRandom-Reader/- Random number reader class implementationgenerators.ipynb- Jupyter notebook for generator analysis
/CMA-ES- CMA-ES experiments implementationresults/- Experimental results and datanotebooks/- Jupyter notebooks for analysis
/L-SHADE- L-SHADE algorithm implementation (downloaded from https://github.com/P-N-Suganthan/2021-SO-BCO/),
and experiments implementationresults/- Experimental results and datanotebooks/- Jupyter notebooks for analysis
/CEC-2021- CEC 2021 benchmark functions (downloaded from https://github.com/P-N-Suganthan/2021-SO-BCO/)/CEC-2013- CEC 2013 benchmark functions (downloaded from https://github.com/dmolina/cec2013single)
/libcmaes- CMA-ES library (cloned from https://github.com/CMA-ES/libcmaes)/Random-Reader/rapidcsv.h- CSV parser library (cloned from https://github.com/d99kris/rapidcsv)
/data- Generated random number data (not included in repository)/imgs- Plots and graphs
Michał Sadlej [michal.sadlej@gmail.com]
This project is licensed under the MIT License - see the LICENSE file for details.
We gratefully acknowledge Polish high-performance computing infrastructure PLGrid (HPC Center: CI TASK) for providing computer facilities and support within computational grant no. PLG/2025/018266.
