网站公告: 诚信为本:市场永远在变,诚信永远不变。
咨询热线

400-123-4567

THE LATEST INFORMATION

| 九天资讯 |

智能优化算法/元启发式算法/进化计算开源算法库(持续更新中)

时间:2024-07-01 13:28:17
  

元启发式算法[1]是启发式算法的改进,它是随机算法与局部搜索算法相结合的产物,因其实用性和易上手性得到了非常广泛的应用,如车间调度、路径规划、指派问题、参数优化等。

关于这个领域及领域下的算法有很多种叫法,如进化/演化计算(Evolutiaonry Computation)、群体智能、智能计算(Computational Intelligence)等,这是由于元启发式算法是个很大的概念,大家可以通过下面这个维基百科[2]的配图理解一下。

各类元启发式算法的包含关系

作为一名刚入门的小白,不知道大家是否遇到过如下的问题:

  • 没有系统性学习元启发式算法的理论和概念
  • 看文章学习算法的方式较为枯燥难懂
  • 网上的博客教程过于碎片化
  • 从空白项目写起无从下手、容易写的一团乱麻、Bug频出
  • 实验还要对比别人算法,工作量较大
  • 看到别人的论文都数据详细,自己实现起来非常不易
NSGA-II在求解ZDT1问题的帕累托前沿( from jMetalPy)


本篇文章整理了一些开源算法框架,包含经典算法的实现,便于小白快速上手,学习框架,写出高质量的代码。在做实验时,这些框架也可以作为非常有说服力的的平台。

主页:cs.gmu.edu/~eclab/proje

仓库: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.

主页:jmetal.github.io/jMetal

仓库:github.com/jMetal/jMeta

论文:dx.doi.org/10.1145/2739

JMetal是由University of Málaga的Juan J.DurilloAntonio J.Nebro发起并维护的多目标元启发式算法框架,包含各类算法的实现(GA)、算例集(TSP、ZDT等)以及性能指标(Hyper Volume、IGD、ED等)。


主页:jmetal.github.io/jMetal

仓库:github.com/jMetal/jMeta

论文:doi.org/10.1016/j.swevo

顾名思义,这是jMetal的Python版本。

主页:jenetics.io/

仓库:github.com/jenetics/jen

Jenetics支持一众遗传算法,如Genetic Algorithm, Grammatical Evolution,Genetic Programming等算法,支持并行计算,并且提供完整的文档支持。

仓库:github.com/ericmedvet/j

论文:doi.org/10.1145/3520304

主页:jclec.sourceforge.net/

仓库:sourceforge.net/project

论文:doi.org/10.1007/s00500-

JCLEC(Java Class Library for Evolutionary Computation)是由西班牙University of Córdoba的计算机与数值分析系(Department of Computer Sciences and Numerical Analysis)团队编写,支持高度自定义的进化计算算法,内置遗传算法(Genetic Algorithm)、遗传编程(Genetic Programming)等。、

最后更新时间:2014-07

主页:deap.readthedocs.io/en/

仓库:github.com/DEAP/deap

论文:vision.gel.ulaval.ca/~cgagne/pubs/sigevolution2014.pdf

DEAP是一个Python编写的进化计算框架,用于快速算法设计,包含GA、PSO、EDA、GP等多种算法,支持检查点(checkpoints)和多CPU,同时支持日志(logging)和统计(statistics)功能。

绘图功能 from DEAP 文档

主页/仓库:github.com/AureumChaos/

论文:doi.org/10.1145/3377929

LEAP是用Python编写的进化计算通用框架,除了实现基本的进化计算算法外,还提供了丰富的可视化特性以及诸如分布式(distribution)、协同进化(co-evoution)、多目标优化(multi-objective)等特性,上手简单。

island model on a real-valued optimization problem

主页/仓库:github.com/ahmedfgad/Ge

论文:doi.org/10.48550/arXiv.

PyGAD是一个用Python编写的遗传算法库,可以很好的与机器学习中的各种库(如Keras、PyTorch)相配合,用于优化神经网络或者卷积神经网络等。

基于Genetic Algorithm的神经网络

主页:geatpy.com/index.php/ab

仓库:github.com/geatpy-dev/g

Geatpy由香港中文大学、华南农业大学、济南大学、华南理工大学团队共同编写的高性能实用型进化算法工具箱,提供许多已实现的进化算法中各项重要操作的库函数,并提供一个高度模块化、耦合度低的面向对象的进化算法框架,利用“定义问题类 + 调用算法模板”的模式来进行进化优化,可用于求解单目标优化、多目标优化、复杂约束优化、组合优化、混合编码进化优化等,并且能和SCOOP等框架紧密配合进行分布式计算。(摘自主页简介)

主页:aarongarrett.github.io/

仓库:github.com/aarongarrett

inspyred是一个开源的进化计算算法框架,提供了大量的算法实现,如GA、ES、SA、DE、EDA、PAES、PSO、NSGA-II等。

主页/仓库: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表格。

官网:dev.heuristiclab.com/

HeuristicLab不属于开源项目,但它可以自定义求解问题和算法,含有优秀的算法执行环境,提供非常便利参数设置、可视化结果展示和指标测试。

HeuristicLab截图 from 官网
HeuristicLab截图 from 官网

主页:chgagne.github.io/beagl

仓库:github.com/chgagne/beag

论文:vision.gel.ulaval.ca/en

OpenBeagle是一个C++的EC框架,由Laval University的Computer Vision and Systems Laboratory (CVSL)于2006年发布,实现GA/ES/GP/Co-evolution等多种算法,支持并行计算,最近更新在2010年。

主页:ecf.zemris.fer.hr/

仓库:github.com/djakobovic/E

ECF算法框架是由克罗地亚University of Zagreb的Domagoj Jakobovi?团队编写的进化计算算法框架,号称支持任意的计算算法,如PSO、DE、GP等,支持并行、设置checkpoint、多种停止条件等复杂配置。

OptFrame 是一个通过(元)启发式技术建模和解决具有挑战性的优化问题的框架。它是用现代C++开发的,旨在提供高计算效率和易用性。该项目于 2008 年在欧鲁普雷图联邦大学 (UFOP) 启动,此后得到了显着改进。在此基础上发表了多篇硕士和博士论文,主要是在弗鲁米嫩塞联邦大学 (UFF) 计算研究所。其最新版本v4已于2020年发布,引入了多项函数式编程特性和C++11/14/17/20功能。

C++版本仓库:github.com/optframe/opt

Python版本仓库:github.com/optframe/pyo

主页:Seyedali Mirjalili

澳大利亚Torrens University的Seyedali Mirjalili教授搭建的智能优化算法的网站,包含遗传算法、粒子群算法、蚁群算法等智能优化算法的简介和算法实现。


仓库:GitHub - yangyongkang2000/SEvoBench: A C++ Framework for Evolutionary Single-Objective Optimization Benchmarking

SEvoBench是一个使用C++编写的单目标优化算法测试框架.它的目的是方便单目标进化算法研究工作者快速有效测试算法的优化性能,为此框架不仅为用户提供了优化算法和优化问题的一系列接口,而且还内置了一定数量的state of the art 的优化算法和测试集。


以上是本人整理的一些常用的开源算法库,希望对入门小白有所帮助,也希望能与大家多多交流、补充。

地址:广东省广州市天河区99号   电话:400-123-4567
版权所有:首页-九天娱乐-注册登录站    
ICP备案编号:琼ICP备xxxxxxxx号

平台注册入口