软件摘要
注意
本页面正在积极更新中,因为一些开源软件和黑箱优化(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 ( 超参数优化 | 自动机器学习 )
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/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
下面展示了一些涉及基于种群方法的有趣代码片段:
https://github.com/brain-research/guided-evolutionary-strategies (ES)
https://github.com/facebookresearch/LA-MCTS (BO/CMA-ES)
https://github.com/huawei-noah/vega (自动机器学习)
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. 和 Schmidhuber, J., 2010. PyBrain 机器学习研究杂志, 11(24), 第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.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 (遗传算法)
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 (差分进化/遗传算法/粒子群优化/模拟退火)
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 (目前不再积极维护。)
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 stars)
“进化多目标优化平台”
叶天, 程然, 张兴义, 和金耀初, PlatEMO: 一个用于进化多目标优化的MATLAB平台 [教育论坛], IEEE计算智能杂志, 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. 和 Flannery, B.P., 2007. Numerical recipes: The art of scientific computing. 剑桥大学出版社. (第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-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 (离散优化)
https://jmetal.sourceforge.net/ (目前不再积极维护。)
http://www.jamesframework.org/ ( 目前不再积极维护:最后更新 - 2016年8月16日。 )
https://github.com/dwdyer/watchmaker (目前不再积极维护。)
https://github.com/jenetics/jenetics (遗传算法/遗传编程)
C#
其他
Custódio, A.L., Scheinberg, K. 和 Nunes Vicente, L., 2017. Methodologies and software for derivative-free optimization. 工程应用中的优化进展与趋势, 第495-506页。
https://github.com/CMA-ES 是 强大的CMA-ES算法的各种实现的集合。
http://zhar.net/howto/html/ (现在不再积极维护。)
https://sop.tik.ee.ethz.ch/pisa/principles.html (目前不再积极维护。)
对于实验比较,请参考例如2021中的多目标优化(MOO)。