Geatpy是一个Python遗传算法库以及开放式进化算法框架,由华南理工大学、华南农业大学、德州奥斯汀公立大学的学生组成的联合团队开发。
(转载自https://blog.csdn.net/qq_33353186/article/details/82014986)
- Website (including documentation): https://www.geatpy.com (repairing)
- Contact us: https://www.geatpy.com/supports
- Source: https://github.com/geatpy-dev/geatpy
- Bug reports: https://github.com/geatpy-dev/geatpy/issues
它提供了许多已实现的遗传和进化算法相关算子的库函数,如初始化种群、选择、交叉、变异、重插入、多种群迁移、多目标优化非支配排序等,并且提供开放式的进化算法框架来实现多样化的进化算法。
Geatpy支持二进制/格雷码编码种群、实数值种群、整数值种群、排列编码种群。支持轮盘赌选择、随机抽样选择、锦标赛选择。提供单点交叉、两点交叉、洗牌交叉、部分匹配交叉(PMX)、线性重组、离散重组、中间重组等重组算子。提供简单离散变异、实数值变异、整数值变异、互换变异等变异算子。支持随机重插入、精英重插入。支持awGA、rwGA、i-awGA、nsga2、快速非支配排序等多目标优化的库函数、提供进化算法框架下的常用进化算法编程模板等。
关于遗传算法、进化算法的学习资料,在官网中https://www.geatpy.com (repairing)有详细讲解以及相关的学术论文链接。同时网上也有很多资料。
闲话少说……下面分享一下近几个星期以来的学习心得:
先说一下安装方法:
首先是要windows系统,Python要是3.5,3.6或3.7版本 ,并且安装了pip。只需在控制台执行
即可安装成功。或者到github上下载:https://github.com/geatpy-dev/geatpy 个人是推荐在github上下载。因为这样可以看到源码以及相关的demo程序,如果通过pip下载的话还需要找demo文件的位置,有些麻烦。
Geatpy提供2种方式实现遗传算法。先来讲一下第一种最基本的实现方式:编写编程脚本。
1. 编写脚本实现遗传算法:
用过谢菲尔德大学的Matlab遗传算法库Gatbx以及其升级版——GEATbx的朋友应该非常熟悉下面的Matlab脚本: