软件概述
注意
此页面目前正在积极更新中,因为一些用于黑盒优化(BBO)的开源软件和代码可能仍有遗漏。如果您发现某些重要工作被遗漏,我们很乐意将其添加进来。请随时提交一个issue或pull request。
Python
https://esa.github.io/pygmo2/ ( pygmo 是一个用于并行优化的、设计良好且维护良好的 Python 库。)
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/google/evojax (EvoJAX是一个基于JAX的可扩展、通用、硬件加速的神经演化工具包。)
https://github.com/google/vizier ( 超参数优化 | AutoML )
https://github.com/nnaisense/evotorch (https://evotorch.ai/)
https://github.com/qingquan63/FairEMOL (FairEMOL用于通过演化多目标优化学习来减轻不公平性。)
https://github.com/RobertTLange/evosax (evosax是一个设计良好的、基于JAX的Python库,用于在GPU上运行演化算法(EAs)和神经演化(NE)。)
https://github.com/uber-research/poet (仅用于配对开放式开拓者算法(POET))
https://pymoo.org/ (pymoo提供多目标黑盒优化算法。)
-
https://docs.scipy.org.cn/doc/scipy/reference/generated/scipy.optimize.differential_evolution.html
https://docs.scipy.org.cn/doc/scipy/reference/optimize.minimize-neldermead.html
https://docs.scipy.org.cn/doc/scipy/reference/optimize.minimize-powell.html
https://docs.scipy.org.cn/doc/scipy/reference/optimize.minimize_scalar-brent.html
下面展示了一些涉及基于种群方法且有趣的代码片段
https://github.com/brain-research/guided-evolutionary-strategies (ES)
https://github.com/facebookresearch/LA-MCTS (BO/CMA-ES)
https://github.com/huawei-noah/vega (AutoML)
https://github.com/SimonBlanke/Gradient-Free-Optimizers (离散优化)
以下开源Python库似乎没有得到积极维护(主要根据最后更新时间判断)。我们仍然将它们作为历史记录的一部分添加进来,以表达对先前开源库的尊重。
https://github.com/Akavall/AntColonyOptimization
目前这个用于ACO的开源Python库没有得到积极维护(最后更新 - 2021年2月28日)。
https://github.com/blaa/PyGene (现在没有得到积极维护:最后更新 - 2017年1月31日。)
https://github.com/hardmaru/estool (现在没有得到积极维护:最后更新 - 2022年1月20日。)
https://github.com/HIPS/Spearmint (现在没有得到积极维护:最后更新 - 2019年4月3日。)
https://github.com/hpparvi/PyDE (现在没有得到积极维护:最后更新 - 2019年4月2日。)
https://github.com/LDNN97/Evolutionary-Optimization-Algorithms (现在没有得到积极维护:最后更新 - 2019年4月14日。)
https://github.com/ljvmiranda921/pyswarms
目前这个用于PSO的开源Python库没有得到积极维护(最后更新 - 2023年6月6日)。
https://github.com/nathanrooy/particle-swarm-optimization
目前这个用于PSO的开源Python库没有得到积极维护(最后更新 - 2021年1月27日)。
https://github.com/pybrain/pybrain (https://github.com/chanshing/xnes)
目前这个主要用于NES的开源Python库没有得到积极维护(最后更新 - 2017年12月18日)。
Schaul, T., Bayer, J., Wierstra, D., Sun, Y., Felder, M., Sehnke, F., Rückstieß, T. and Schmidhuber, J., 2010. PyBrain Journal of Machine Learning Research, 11(24), pp.743-746.
https://github.com/scikit-optimize/scikit-optimize (现在没有得到积极维护:最后更新 - 2021年10月12日。)
https://github.com/strongio/evolutionary-optimization (现在没有得到积极维护:最后更新 - 2020年1月22日。)
https://github.com/tisimst/pyswarm
现在它(用于PSO)没有得到积极维护(最后更新 - 2015年9月22日)。
-
现在它似乎没有得到积极维护(最后更新 - 2021年3月15日)。
R
https://cran.r-project.cn/web/views/Optimization.html
https://cran.r-project.cn/web/packages/adagio/index.html (NM/HJ)
https://cran.r-project.cn/web/packages/CEoptim/index.html (CEM)
https://cran.r-project.cn/web/packages/cmaes/index.html (CMA-ES)
https://cran.r-project.cn/web/packages/DEoptim/index.html (DE)
https://cran.r-project.cn/web/packages/DEoptimR/index.html (JDE)
https://cran.r-project.cn/web/packages/genalg/index.html (GA)
https://cran.r-project.cn/web/packages/GenSA/index.html (SA)
https://cran.r-project.cn/web/packages/neldermead/index.html (NM)
https://cran.r-project.cn/web/packages/NMOF/index.html (DE/GA/PSO/SA)
https://cran.r-project.cn/web/packages/RCEIM/index.html (CEM)
https://cran.r-project.cn/web/packages/rCMA/index.html (CMA-ES)
https://cran.r-project.cn/web/packages/rgenoud/index.html (GA)
https://github.com/hzambran/hydroPSO (现在没有得到积极维护。)
IOHanalyzer 是一个用于迭代优化启发式算法(IOHs)的性能分析器。
Matlab
请注意,Matlab 是一个用于科学计算的商业平台,而 GNU Octave 是其开源替代品。
https://cse-lab.seas.harvard.edu/cse-lab-software (CMA-ES)
现在它似乎没有得到积极维护!
https://divis-gmbh.de/es-software/ (ES)
“Octave 源代码(专有实现)只能下载用于非商业用途。”
现在它似乎不是开放获取的!
https://github.com/BIMK/PlatEMO (1.5k 星)
“演化多目标优化平台”
Ye Tian, Ran Cheng, Xingyi Zhang, and Yaochu Jin, PlatEMO: A MATLAB Platform for Evolutionary Multi-Objective Optimization [Educational Forum], IEEE Computational Intelligence Magazine, 2017, 12(4): 73-87.
https://github.com/ProbabilisticNumerics/entropy-search (ESEGO)
C
https://github.com/CMA-ES/c-cmaes (现在没有得到积极维护。)
Press, W.H., Teukolsky, S.A., Vetterling, W.T. and Flannery, B.P., 2007. Numerical recipes: The art of scientific computing. Cambridge University Press. (第10章. 函数的最小化或最大化。)
C++
https://github.com/chgagne/beagle (现在没有得到积极维护。)
https://github.com/CMA-ES/libcmaes (CMA-ES)
https://github.com/Shark-ML/Shark (现在没有得到积极维护。) * https://github.com/Shark-ML/Shark/blob/master/include/shark/Algorithms/DirectSearch/VDCMA.h (VD-CMA) * https://github.com/Shark-ML/Shark/blob/master/include/shark/Algorithms/DirectSearch/LMCMA.h (LM-CMA)
http://lancet.mit.edu/ga/ ( 现在没有得到积极维护:最后更新 - 2007年3月7日。 )
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 (离散优化)
https://jmetal.sourceforge.net/ (现在没有得到积极维护。)
http://www.jamesframework.org/ ( 现在没有得到积极维护:最后更新 - 2016年8月16日。 )
https://github.com/dwdyer/watchmaker (现在没有得到积极维护。)
C#
其他
Custódio, A.L., Scheinberg, K. and Nunes Vicente, L., 2017. 无导数优化的方法和软件. Advances and Trends in Optimization with Engineering Applications, pp.495-506.
https://github.com/CMA-ES 是一个强大的CMA-ES算法的各种实现的集合。
http://zhar.net/howto/html/ (现在没有得到积极维护。)
https://sop.tik.ee.ethz.ch/pisa/principles.html (现在没有得到积极维护。)
关于实验比较,可参考例如 2021 的多目标优化研究。