TEL:0898-08980898
MESSAGE客户留言
热线电话:
0898-08980898
首页
关于欧陆娱乐
欧陆注册
欧陆登录
欧陆动态
欧陆资讯
欧陆APP下载
欧陆开户
欧陆代理加盟
客户留言
联系我们

欧陆动态

当前位置: 首页 > 欧陆动态

Python主要智能优化算法库汇总

发布时间:2024-04-15 12:42:02

最近几年简单浏览和对比了一些智能算法的库。现将各种库的主要信息、相关优缺点简单整理如下,各位同学可根据自己的需求和喜好进行选择。

1、DEAP

项目地址:https://github.com/DEAP/deap

安装

 

优点

  • 起点高,发表在Journal of Machine Learning Research
  • 用法灵活,所有模块均可自定义

缺点

  • 上手麻烦比较麻烦

比如它是这样设置参数然后完成一个简单的函数最大优化的:

 
  • 速度慢(许多人都反应有这个问题)

  • 集成的算法少(当然也可以通过自定义来修改,但这样和完全自写没多大区别)

  • 超过半年没有更新(最近更新也只是安装上的修改)

2、mealpy

项目地址:https://github.com/thieunguyen5991/mealpy

安装

 

优点

  • 算法丰富,集成了现有的62种算法,目测应该还在继续更新添加
  • 上手容易,代码简单,比如对标准函数库的函数进行优化:
 

缺点

  • 整体设计似乎不太规范,文档解释不够
  • 语言上似乎还存在一点小问题,英语应用不够规范(这可能也是作者没有发表很好的杂志的原因之一)
  • 集成了多种算法但未列举参考文献,不方便论文引用
3、scikit-opt (国产良心)

项目地址:https://github.com/guofei9987/scikit-opt

官文文档地址:https://scikit-opt.github.io/scikit-opt/#/zh/README

安装

 

优点

  • 上手容易,代码简单,尤其许多用法很像Matlab。比如官方文档就提供了一些例子:使用遗传算法进行曲线拟合

  • 中文文档,并且文档很全。大佬的CSDN主页。(作者自称是京东算法工程师,这个库也的确感觉得到一些情怀,方便实用的感觉)

  • 在使用方便的基础上,也提供了不少接口用于自行修改。尤其可以自定义算子

  • 一些较好玩的特性:GPU加速、断点运行等。

缺点

  • 目前似乎还没有集成足够多的方法。大类有3类,共7种算法。

  • 算法本身的优化似乎还不足(未仔细测试)

4、Geatpy2(国产用心)

项目地址:https://github.com/geatpy-dev/geatpy

官网地址:http://geatpy.com/

安装:

 

或者强制版本

 

优点

  • 上手容易,实现简单
  • 文档完整,示例丰富(中文文档)
  • 功能齐全,除算法以外也封装了许多实用的功能,比如数据可视化等

缺点

  • 代码风格诡异,比如
  • 英文用语不规范,变量命名相对随意,比如入门文档中,将目标函数翻译成"aimFunc",变量名称?等。
 
  • 文档开展还显得比较稚嫩,比如主页文档就用插件显示,官网体验还欠些火候

:这个项目得多补充几句,目测应该是硕士生写的。总体的设计、DEMO、文档上给人感觉都远不如上面几个老练(尤其和DEAP相比)。但几个学生跨校合作,在不长的时间内能够完成如此完整的一个工作也实非易事。也希望他们能够继续进步。综合来看,这个项目个人认为属于国产良心

5、pygmo2

项目地址:https://github.com/esa/pygmo2

安装

 

:安装还依赖如下环境

其它可能会用到的环境:

优点

  • 功能丰富
  • 支持并行和分布式计算(本身运行效率也很高)
  • 用法灵活
  • 感觉测试相对稳定(未仔细测试)

缺点

  • 上手相对麻烦
  • 依赖项较多,尤其要求对应C++版的软件环境
  • 算法有限

注:这个库也吐槽一句,网传很厉害,但真没看出来除了看起来专业以外有何厉害之处。当然通常以C++为底层的东西有可能在大量级问题上的处理更加容易部署,但一般的用户也用不到。

6、pyswarms

项目地址:https://github.com/ljvmiranda921/pyswarms

安装

 

优点

  • 简单,易上手,基本上也属于几行代码入门型
  • 可视化,尤其动态可视化做得好。(亮点),比如画出图形,基本上就是一句代码:
 

在这里插入图片描述

 

在这里插入图片描述

缺点

  • 算法少。只有基于PSO的各类问题的算法(本质上其实就只是一个算法)
  • 灵活度不够。
  • 起点低。发表的论文既没进入CCF推荐,也没进入SCI。同时虽然号称有许多研究论文用过,但仔细看级别都不高(基本都属于三无型)
7、SciPy(想不到吧)

项目地址:https://github.com/scipy/scipy

官网:https://www.scipy.org/

官方文档: https://docs.scipy.org/doc/

安装(当然其实当你装上Python的时候它就在了):

 

特别说明: scipy作为一个相对严谨和‘传统’的数值计算库,基本上常用的数值计算方法都有涉及。当然数值计算型的库通常都不会把智能优化(启发式算法)作为重点。它集成了十分有限的几种优化算法:差分进化、模拟退火等。但它仍然有不少优点:

优点:

  • 作为严谨的数值计算库,它的正确性和稳定性值得信赖(超过800个contributor,其中有不少是名校的教师、博士等)
  • 使用方便、简单
  • scipy也可以自定义优化算法

缺点:

  • 自然就是算法太少了
  • 虽然可以自定义,但麻烦程度几乎相当于完全自己造轮子
小结

经过一番调研,发现在Python的包库里面有质量的智能算法库还真是非常有限(除上述库以外,还有不少几个算法就成一个库的库,实在不敢恭维,简单玩玩就行了)。这里个人认为可能有以下几个方面:

  • 智能算法本身实现并不太难
  • 在当前的大环境下,大规模的问题下智能算法并不具有明显的优势
  • 专业做算法的通常仍然还是以Matlab为主(尤其数学类的)
  • 智能算法,尤其进化算法,本质上差异并不大

或许就是以上原因导致现在我们看不到特别惊艳的库,目前稍做得好一些的也就是在辅助功能上集成得较好而已。

当然,不管怎样,目前有这些库的话,对于不是完全专业从事相关算法研究的人员而言也完全够用了。就个人目前体验而言,综合来看最推荐的库为。当然终归到底,自己用着好就是最好。

平台注册入口