写在前面:
- 首先先要感谢英国谢菲尔德大学Matlab平台的进化计算gatbx工具箱,这个项目主要是对其基础的函数转换成以Python和Numpy为主的代码。
- 其次感谢Geatpy团队的首次开发,这里参考了其团队的开发文档。
初衷: 首先,进化计算的主要代码是以Matlab平台为主,python并不是进化计算的主要社区。 但是随着近年来人工智能在python社区的兴起,很多算法都需要进化计算的结合。 因此很多新的项目逐渐兴起,比如Geatpy,pymoo等,而且这些年一定会有跟多的原本在Matlab活跃的进化计算工具箱开发出python的版本。
作者是在2019年左右开始用python做了一些进化计算的算法,当时python下的框架有DEAP等早期开发的框架,也有Geatpy这类新的框架。
在综合考虑下,发现Geatpy是根据经典的gatbx改造的框架,虽然gatbx中的算法和操作比较旧,而且在当下看了来效率和效果也不是很高,但是相比之下,还是当时比较好的选择,于是决定采用。
但很遗憾的是,由于geatpy的底层操作是封装成了pyd的形式,并且没有提供linux的编译版本,所以很多时候用起来并不方便。
后来经过迭代,geatpy升级了2.0版本,变得无法向下兼容,底层代码也没有开源,所以为了继续用建立在老版本(v1.1.5)之上的代码,于是对照gatbx重新写了底层操作。
读者可以结合geatpy v1.1.5的例子使用本项目代码,也可以继续以此为基础进行扩展。
文件说明:
- ga.py -- 基础操作的python函数集合。
- GA_Test.ipynb -- 基础函数的jupyter测试文件。
- API -- 转载自Geatpy v1.1.5 中的开源文档。
- introduction -- 转载自Geatpy v1.1.5 中的开源文档。
- gatbx.zip -- matlab gatbx 工具箱源文件。
ga.py 文件中没有包含所有gatbx和API中的函数,同时加入了一些其他常用功能的函数,项目还在进一步完善中。