Software Summary¶
Note
This page is actively updated now, since many open-source software and code for black-box optimization are still missed here. We will happy to add it if you find some important work omitted here.
Python¶
https://esa.github.io/pygmo2/ ( pygmo is a well-designed and well-maintained Python library for parallel optimization. )
https://github.com/CMA-ES/pycma ( CMA-ES )
https://github.com/akimotolab/multi-fidelity ( DD-CMA-ES )
https://gist.github.com/youheiakimoto/08b95b52dfbf8832afc71dfff3aed6c8 ( VD-CMA )
https://gist.github.com/youheiakimoto/2fb26c0ace43c22b8f19c7796e69e108 ( VKD-CMA )
https://gist.github.com/youheiakimoto/1180b67b5a0b1265c204cba991fa8518 ( DD-CMA-ES )
https://github.com/akimotolab/CMAES_Tutorial ( CMA-ES )
https://github.com/CyberAgentAILab/cmaes ( CMA-ES )
https://github.com/NiMlr/High-Dim-ES-RL ( CMA-ES )
https://github.com/optuna/optuna ( CMA-ES )
https://github.com/dietmarwo/fast-cma-es ( CMA-ES )
https://github.com/google/evojax ( NeuroEvolution )
https://github.com/google/vizier ( Hyperparameter Optimization | AutoML )
https://github.com/nnaisense/evotorch (https://evotorch.ai/)
https://pymoo.org/ (pymoo offers state of the art single- and multi-objective optimization algorithms.)
-
https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.differential_evolution.html
https://docs.scipy.org/doc/scipy/reference/optimize.minimize-neldermead.html
https://docs.scipy.org/doc/scipy/reference/optimize.minimize-powell.html
https://docs.scipy.org/doc/scipy/reference/optimize.minimize_scalar-brent.html
Some interesting code snapshots involving population-based methods are shown below:
https://github.com/facebookresearch/LA-MCTS (BO/CMA-ES)
https://github.com/huawei-noah/vega (AutoML)
https://github.com/SimonBlanke/Gradient-Free-Optimizers (Discrete Optimization)
The below libraries seem to be not actively maintained (according to the last update time):
https://github.com/blaa/PyGene (Now it is not actively maintained: Last update - Jan 31, 2017.)
https://github.com/hardmaru/estool (Now it is not actively maintained: Last update - Jan 20, 2022.)
https://github.com/HIPS/Spearmint (Now it is not actively maintained: Last update - Apr 3, 2019.)
https://github.com/hpparvi/PyDE (Now it is not actively maintained: Last update - Apr 2, 2019.)
https://github.com/LDNN97/Evolutionary-Optimization-Algorithms (Now it is not actively maintained: Last update - Apr 14, 2019.)
https://github.com/pybrain/pybrain (Now it is not actively maintained: Last update - Dec 18, 2017.)
https://github.com/pybrain/pybrain/blob/master/pybrain/optimization/distributionbased/fem.py
https://github.com/pybrain/pybrain/blob/master/pybrain/optimization/distributionbased/nes.py
https://github.com/pybrain/pybrain/blob/master/pybrain/optimization/distributionbased/rank1.py
https://github.com/pybrain/pybrain/blob/master/pybrain/optimization/distributionbased/snes.py
https://github.com/pybrain/pybrain/blob/master/pybrain/optimization/distributionbased/ves.py
https://github.com/pybrain/pybrain/blob/master/pybrain/optimization/distributionbased/xnes.py
https://github.com/scikit-optimize/scikit-optimize (Now it is not actively maintained: Last update - Oct 12, 2021.)
https://github.com/strongio/evolutionary-optimization (Now it is not actively maintained: Last update - Jan 22, 2020.)
https://github.com/uber/fiber ( Now it is not actively maintained: Last update - Mar 15, 2021.)
R¶
https://cran.r-project.org/web/views/Optimization.html
https://cran.r-project.org/web/packages/adagio/index.html (NM/HJ)
https://cran.r-project.org/web/packages/CEoptim/index.html (CEM)
https://cran.r-project.org/web/packages/cmaes/index.html (CMA-ES)
https://cran.r-project.org/web/packages/DEoptim/index.html (DE)
https://cran.r-project.org/web/packages/DEoptimR/index.html (JDE)
https://cran.r-project.org/web/packages/genalg/index.html (GA)
https://cran.r-project.org/web/packages/GenSA/index.html (SA)
https://cran.r-project.org/web/packages/neldermead/index.html (NM)
https://cran.r-project.org/web/packages/NMOF/index.html (DE/GA/PSO/SA)
https://cran.r-project.org/web/packages/pso/index.html (PSO)
https://cran.r-project.org/web/packages/RCEIM/index.html (CEM)
https://cran.r-project.org/web/packages/rCMA/index.html (CMA-ES)
https://cran.r-project.org/web/packages/rgenoud/index.html (GA)
https://github.com/hzambran/hydroPSO (Now it is not actively maintained.)
IOHanalyzer is a performance analyzer for Iterative Optimization Heuristics (IOHs).
Matlab¶
https://cse-lab.seas.harvard.edu/cse-lab-software (Now it is not actively maintained.)
https://divis-gmbh.de/es-software/ (ES)
The Octave source code (proprietary implementations) can be downloaded only for non-commercial use.
https://github.com/ProbabilisticNumerics/entropy-search (ESEGO)
C¶
https://github.com/CMA-ES/c-cmaes (Now it is not actively maintained.)
C++¶
https://github.com/chgagne/beagle (Now it is not actively maintained.)
https://github.com/CMA-ES/libcmaes (CMA-ES)
https://github.com/Shark-ML/Shark (Now it is not actively maintained.)
http://lancet.mit.edu/ga/ ( Now it is not actively maintained: Last update - 2007-03-07. )
https://www.cs.wm.edu/~va/software/DirectSearch/direct_code/
Java¶
https://github.com/GMUEClab/ecj (https://cs.gmu.edu/~eclab/projects/ecj/)
https://github.com/sdarg/opt4j/ (https://sdarg.github.io/opt4j/)
https://www.isa.us.es/fom/modules/portalWFInterface/init.php (Discrete Optimization)
https://jmetal.sourceforge.net/ (Now it is not actively maintained.)
http://www.jamesframework.org/ ( Now it is not actively maintained: Last update - Aug 16, 2016. )
https://github.com/dwdyer/watchmaker (Now it is not actively maintained.)
C#¶
Others¶
https://github.com/CMA-ES is a collection of various implementations of the powerful CMA-ES algorithm.
http://zhar.net/howto/html/ (Now it is not actively maintained.)
https://sop.tik.ee.ethz.ch/pisa/principles.html (Now it is not actively maintained.)
For experimental comparisons, refer to e.g., 2021 for MOO.