首先非常感谢广大用户,尤其是广大高校师生们对Geatpy2提出宝贵的意见和建议。Geatpy2现今推出稳定的增强版v2.1.0,同时增添对Windows、Linux和Mac系统的支持。可直接通过pip install geatpy或pip install --upgrade --user Geatpy进行安装或更新,安装程序将自动匹配适合的版本进行安装。

Geatpy v2.1.0在上一版本的基础上作出如下改进:

一.内核改进:
1. 修改译码矩阵(区域描述器)的数据结构,在原有的基础上增添一行用于存储变量的类型varTypes(0表示对应变量是连续型变量;1表示是离散型变量)。因此译码矩阵FieldD从7行更改为8行,第8行为varTypes;FieldDR从2行更改为3行,第3行为varTypes。
2. 将二进制/格雷码解码成实数串的函数bs2rv()更名为bs2real()。同时添加函数bs2ri(),其功能为将二进制/格雷码种群染色体矩阵解码成十进制实整数矩阵("实整数"指的是种群染色体既包含实数的小数,也包含实数的整数)。可用help()命令查看其详尽的API文档。
3. 新增crtpc函数,即Create Population Chromosomes。用于根据编码方式以及译码矩阵来生成Nind条染色体行向量组成的种群染色体矩阵。
4. 修改trcplot绘图函数中的输入参数titles的格式。
5. 新增varplot绘图函数,提供对决策空间解分布的绘图。
6. 小幅修改moeaplot以及soeaplot,新增Label参数的输入。
7. 新增函数boundfix,仅对Encoding为’RI’有效,功能是对超出所设边界范围的染色体元素进行修正以及对代表离散型变量的染色体元素进行四舍五入。内含循环和截断两种修复方式。循环修复是指把边界范围的首尾相接,将超出边界范围的元素mod范围的区域长度得到修复值。截断修复是指对超出边界范围的元素取其最近的边界值。
8. 新增urs(无约束随机选择)、rps(随机排列选择)、rcs(随机补偿选择)、ecs(精英个体复制选择)。
9. 新增多目标优化进化过程中的评价指标追踪。可调用indicator.moea_tracking()函数对多目标优化进化过程的评价指标进行追踪分析,详见“Geatpy教程”文档的“快速入门”章节。
10. 对mutde差分变异算子进行重构,提供更加完善、功能更强大的差分变异算子。
11. 增加xovox(顺序交叉)算子,适用于排列编码染色体的交叉。
12. 修复内核的若干BUG,使内核更加稳定、高效。

二.框架调整:
1. 修改编码方式,将原有的实数’R’和整数’I’两种编码方式合并为’RI’,即“实整数”。全面支持实数、整数混合编码。可以通过在继承Problem类的实际问题对象中设置varTypes属性来控制每个决策变量的类型。varTypes中元素0表示对应的变量是连续的;1表示对应的变量是离散的。
2. 小幅修改继承Problem类的初始化的写法。
3. 小幅修改Population类中初始化种群、种群染色体解码的方法。
4. 增加WFG、UF等多目标优化测试函数。
5. 全面修订所有算法模板,使其更加简洁。
6. 全面修订问题类,将目标函数“aimFuc”更名为“aimFunc”,简化其输入参数。
7. 新增多目标优化RVEA算法模板。
8. 在种群类中添加“save()”函数,用于将种群信息保存到本地“Result”文件夹下的“.csv”后缀的文件中。

三.性能提升:
1. 大幅提升多目标优化超立方体指标HV的计算速度。
2. 提升了二进制/格雷编码种群进化优化的性能。
3. 提升了单目标优化适应度计算的性能。
4. 小幅提升多目标优化NSGA3执行速度。

由于新增对Linux和Mac系统的支持,如果在安装或使用过程中发现问题,欢迎联系我们

感谢您们的关注与支持!

Geatpy2.7.0正式发布

Geatpy2交流群

采用自研高性能矩阵库,体验极速的进化之旅!