THE LATEST INFORMATION
| 九天资讯 |
元启发式算法[1]是启发式算法的改进,它是随机算法与局部搜索算法相结合的产物,因其实用性和易上手性得到了非常广泛的应用,如车间调度、路径规划、指派问题、参数优化等。
关于这个领域及领域下的算法有很多种叫法,如进化/演化计算(Evolutiaonry Computation)、群体智能、智能计算(Computational Intelligence)等,这是由于元启发式算法是个很大的概念,大家可以通过下面这个维基百科[2]的配图理解一下。
作为一名刚入门的小白,不知道大家是否遇到过如下的问题:
本篇文章整理了一些开源算法框架,包含经典算法的实现,便于小白快速上手,学习框架,写出高质量的代码。在做实验时,这些框架也可以作为非常有说服力的的平台。
主页:https://cs.gmu.edu/~eclab/projects/ecj/
仓库:https://github.com/GMUEClab/ecj
ECJ是由George Mason University的Evolutionary Computation Laboratory(ECLab)研发的进化计算组件,发端于1999年,可以算得上是最古老的进化计算开源组件,早期专攻Genetic Programming(GP,遗传编程)。经过20余年的发展,现已支持各类经典的进化算法(如Evolutionary strategy,Ant Colony System, Differential Evolution等),此外还支持GUI、并行计算、分布式等特性。
相关论文可参见:
Luke, S. (2017, July). ECJ then and now. InProceedings of the genetic and evolutionary computation conference companion(pp. 1223-1230).
Luke, Sean. "ECJ then and now."Proceedings of the genetic and evolutionary computation conference companion. 2017.
主页:https://jmetal.github.io/jMetal/
仓库:https://github.com/jMetal/jMetal
论文:http://dx.doi.org/10.1145/2739482.2768462
JMetal是由University of Málaga的Juan J.Durillo和Antonio J.Nebro发起并维护的多目标元启发式算法框架,包含各类算法的实现(GA)、算例集(TSP、ZDT等)以及性能指标(Hyper Volume、IGD、ED等)。
主页:https://jmetal.github.io/jMetalPy/index.html
仓库:https://github.com/jMetal/jMetalPy
论文:https://doi.org/10.1016/j.swevo.2019.100598
顾名思义,这是jMetal的Python版本。
仓库:https://github.com/jenetics/jenetics
Jenetics支持一众遗传算法,如Genetic Algorithm, Grammatical Evolution,Genetic Programming等算法,支持并行计算,并且提供完整的文档支持。
仓库:https://github.com/ericmedvet/jgea
论文:https://doi.org/10.1145/3520304.3533960
主页:https://jclec.sourceforge.net/
仓库:https://sourceforge.net/projects/jclec/files/4.0.0/
论文:https://doi.org/10.1007/s00500-007-0172-0
JCLEC(Java Class Library for Evolutionary Computation)是由西班牙University of Córdoba的计算机与数值分析系(Department of Computer Sciences and Numerical Analysis)团队编写,支持高度自定义的进化计算算法,内置遗传算法(Genetic Algorithm)、遗传编程(Genetic Programming)等。、
最后更新时间:2014-07
主页:https://deap.readthedocs.io/en/master/
仓库:https://github.com/DEAP/deap
论文:vision.gel.ulaval.ca/~cgagne/pubs/sigevolution2014.pdf
DEAP是一个Python编写的进化计算框架,用于快速算法设计,包含GA、PSO、EDA、GP等多种算法,支持检查点(checkpoints)和多CPU,同时支持日志(logging)和统计(statistics)功能。
主页/仓库:https://github.com/AureumChaos/LEAP
论文:https://doi.org/10.1145/3377929.3398147
LEAP是用Python编写的进化计算通用框架,除了实现基本的进化计算算法外,还提供了丰富的可视化特性以及诸如分布式(distribution)、协同进化(co-evoution)、多目标优化(multi-objective)等特性,上手简单。
主页/仓库:https://github.com/ahmedfgad/GeneticAlgorithmPython
论文:https://doi.org/10.48550/arXiv.2106.06158
PyGAD是一个用Python编写的遗传算法库,可以很好的与机器学习中的各种库(如Keras、PyTorch)相配合,用于优化神经网络或者卷积神经网络等。
主页:http://geatpy.com/index.php/about/
仓库:https://github.com/geatpy-dev/geatpy
Geatpy由香港中文大学、华南农业大学、济南大学、华南理工大学团队共同编写的高性能实用型进化算法工具箱,提供许多已实现的进化算法中各项重要操作的库函数,并提供一个高度模块化、耦合度低的面向对象的进化算法框架,利用“定义问题类 + 调用算法模板”的模式来进行进化优化,可用于求解单目标优化、多目标优化、复杂约束优化、组合优化、混合编码进化优化等,并且能和SCOOP等框架紧密配合进行分布式计算。(摘自主页简介)
主页:https://aarongarrett.github.io/inspyred/
仓库:https://github.com/aarongarrett/inspyred
inspyred是一个开源的进化计算算法框架,提供了大量的算法实现,如GA、ES、SA、DE、EDA、PAES、PSO、NSGA-II等。
主页/仓库:https://github.com/BIMK/PlatEMO
PlatEMO是由安徽大学计算机学院的Bio-inspired Intelligence and Mining Knowledge Research Institute和University of Surrey的Nature Inspired Computing and Engineering Group共同开发的基于Matlab平台的进化计算组件,其包含若干经典算法的实现,如GA、,易用的GUI和绘图工具,支持将运算结果直接输出为Excel表格和LaTeX表格。
官网:https://dev.heuristiclab.com/
HeuristicLab不属于开源项目,但它可以自定义求解问题和算法,含有优秀的算法执行环境,提供非常便利参数设置、可视化结果展示和指标测试。
主页:http://chgagne.github.io/beagle/
仓库:https://github.com/chgagne/beagle
论文:http://vision.gel.ulaval.ca/en/publications/Id_605/PublDetails.php
OpenBeagle是一个C++的EC框架,由Laval University的Computer Vision and Systems Laboratory (CVSL)于2006年发布,实现GA/ES/GP/Co-evolution等多种算法,支持并行计算,最近更新在2010年。
仓库:https://github.com/djakobovic/ECF
ECF算法框架是由克罗地亚University of Zagreb的Domagoj Jakobovi?团队编写的进化计算算法框架,号称支持任意的计算算法,如PSO、DE、GP等,支持并行、设置checkpoint、多种停止条件等复杂配置。
OptFrame 是一个通过(元)启发式技术建模和解决具有挑战性的优化问题的框架。它是用现代C++开发的,旨在提供高计算效率和易用性。该项目于 2008 年在欧鲁普雷图联邦大学 (UFOP) 启动,此后得到了显着改进。在此基础上发表了多篇硕士和博士论文,主要是在弗鲁米嫩塞联邦大学 (UFF) 计算研究所。其最新版本v4已于2020年发布,引入了多项函数式编程特性和C++11/14/17/20功能。
C++版本仓库:https://github.com/optframe/optframe
Python版本仓库:https://github.com/optframe/pyoptframe-dev
澳大利亚Torrens University的Seyedali Mirjalili教授搭建的智能优化算法的网站,包含遗传算法、粒子群算法、蚁群算法等智能优化算法的简介和算法实现。
SEvoBench是一个使用C++编写的单目标优化算法测试框架.它的目的是方便单目标进化算法研究工作者快速有效测试算法的优化性能,为此框架不仅为用户提供了优化算法和优化问题的一系列接口,而且还内置了一定数量的state of the art 的优化算法和测试集。
以上是本人整理的一些常用的开源算法库,希望对入门小白有所帮助,也希望能与大家多多交流、补充。