亲爱的用户,这是Geatpy2 v2.5.0正式版,欢迎您进行更新!

更新方法:pip install geatpy --upgrade --user

更新内容一览

v2.5.0正式版是在预览版的基础上进一步完善的更为稳定的版本,同时添加了一些新的功能。

【内核】
1. 修复recndx内核函数的潜在BUG。
2. 新增crtidp内核函数,用于生成或更新多目标优化中目标空间的理想点坐标。
3. 新增两个多目标聚合函数:tcheby、pbi。
4. 修改所有的低级选择算子(dup, ecs, etour, otos, rcs, rps, rws, sus, tour, urs)的输入参数,将输入参数FitnV修改为FitnV_N,表示既可以输入适应度列向量FitnV,又可以输入一个整数来表示从多少个个体中进行选择。
5. 为内核函数(indexing, ranking, powing, scaling, ndsortESS, ndsortDED, ndsortTNS, refselect, refgselect, awGA, rwGA)增添一个输入参数:maxormins,即目标函数最小最大化标记,它为一个Numpy ndarray类型的行向量。因此,在调用这些函数前,既可以用maxormins * ObjV来将目标函数值矩阵ObjV统一为遵循“目标函数最小化原则”(即目标函数值越小越好),又可以直接把ObjV和maxormins传入上述内核函数中,将maxormins * ObjV的操作交给高性能内核进行处理。
6. 修改所有绘图函数,修复了绘制动画会卡住的问题。
7. 正式删除meshrng函数,该函数在Geatpy2中一直未被使用。
8. 修改内核函数awGA和rwGA的返回类型,将原有的既返回加权聚合后的目标函数值又返回对应的权重向量,修改为只返回加权聚合后的目标函数值。

【案例】
1. 对在2.5.0预览版中新增的soea_demo10的执行脚本main.py进行了微调,把对先知种群调用aimFunc()进行目标函数的计算修改为通过算法模板类的call_aimFunc()进行计算,这一修改将不兼容2.5.0预览版,即在2.5.0预览版中不支持未经初始化算法模板类的各项参数时调用call_aimFunc()函数。

【框架】
1. 新增多目标优化MOEA/D算法模板(支持采用可行性法则来处理带约束的优化),并提供一个带全局最优存档的MOEA/D算法模板。
(注:由于由于MOEA/D在每一代中需要循环地每次从种群中选择2个个体执行进化操作,因此在Python上,MOEA/D的性能会大幅度降低。)
2. (不向下兼容!)将种群类中原有的:将FitnV默认设置为元素全为1的Numpy ndarray类型列向量,修改为:默认将种群对象的FitnV设置为None。因此,今后在算法模板中禁止了未经计算FitnV而直接使用FitnV的做法。
3. 微调了种群类的一些代码逻辑,使之更加合理。
4. 为算法模板类增添了一个check()成员函数,用于检查种群对象的目标函数值矩阵ObjV和违反约束程度矩阵CV是否存在非法值。
5. 为算法模板类的call_aimFunc()成员函数添加检查目标函数值矩阵ObjV和违反约束程度矩阵CV是否复合Geatpy数据结构的功能。
6. 修改问题类的maxormins成员属性的类型,将原有的maxormins为list类型修改为Numpy ndarray的行向量。


Geatpy 2.5.0版本新特色

1. 内核升级采用自研高性能矩阵库,大幅提升进化速度,并支持CPU并行执行进化算子,同时大幅降低空间复杂度,尤其是在组合优化上性能提升超500%!
2. 自动检测自定义的目标函数值在格式和数据上是否有误,使用户可以更加容易自定义问题类。
3. 内置的进化算法更加原汁原味,能更加精准地复现算法论文中的优良效果。
4. 拥有媲美甚至超越C/C++的执行速度,在中等规模、大规模进化优化下拥有超越C/C++的进化算法程序的性能,满足工业级的优化需求。

感谢您的关注与支持!

Geatpy官网迁移通知

Geatpy2交流群

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