亲爱的用户,这是Geatpy2的一个重要更新,修复了多项BUG,以及对内核、框架等作了重要调整,同时增加了对Python3.8的支持。

注意:因部分重要调整无法向下兼容,故部分旧版的代码会不兼容该版本,下方带(*)处标注了不向下兼容的部分。

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

更新内容一览

【内核】
1.修复了crtip、ndsortTNS、mutgau、mutuni内核的BUG。
2.(*不向下兼容)对差分变异算子mutde进行了大幅重构,输入参数作出重要修改,增加了一个XrList列表用于存储基向量或基向量索引的列表。详见help(ea.mutde)。
3.(*不向下兼容)对高斯变异算子mutgau进行了参数重构,把输入参数Sigma修改为Sigma3,表示3倍的高斯变异中的标准差。
4.对Breeder GA变异算子mutbga进行重构,将原有的同一条染色体上所有位元素的变异距离都相同修正为:独立地根据变异算法来确定染色体上每一位元素的变异距离。
5.完善对整数变量的进化优化,不再单一采用先按实数进化再四舍五入的处理方法,改用包含四舍五入在内的多种方法结合,使结果更加准确。
6.(*不向下兼容)统一规范了所有变异算子的变异概率定义。将传入变异算子的变异概率Pm定义为“最小片段”发生变异的概率,具体定义详见http://geatpy.com/index.php/2019/07/28/%E7%AC%AC%E5%85%AD%E7%AB%A0%EF%BC%9A%E5%8F%98%E5%BC%82/
7.完善绘图功能,为绘图函数增添坐标轴标签设置和增添支持控制是否绘制网格。

【框架】
1.修复种群类中初始化种群染色体矩阵后Lind参数未赋值的BUG
2.为单目标进化算法模板添加“进化停滞记录器”,通过设定“进化停滞判断阈值”来控制当长时间进化陷入停滞时停止进化。
3.(*不向下兼容)修改问题类中的“全局理论最优值”的表述,改之为“参考值”。该参考值可以是理论最优解的目标函数值,也可以是人为设定的参考值。因此把Problem类中原有的calBest()和getBest()函数分别更名为calReferObjV()和getReferObjV()。
4.为种群类新增成员函数setChrom(),用于插入种群染色体矩阵。例如在初始化种群染色体后,可以调用setChrom()把一些经验得到的较优种群染色体插入到种群中,这样一来便可在后面的进化中利用到这些经验数据。

【案例更新】
1.新增约束多目标优化“CF”测试函数,详见:https://github.com/geatpy-dev/geatpy/tree/master/geatpy/testbed/moea_test/moea_test_CF
2.新增利用进化算法优化支持向量机的参数C和Gamma的案例,详见:https://github.com/geatpy-dev/geatpy/tree/master/geatpy/demo/soea_demo/soea_demo6


由于基因表达式编程部分未能如期获得作者授权,非常遗憾地这一版本并没有内置支持基因表达式编程。希望得到您们的谅解!

感谢您们的关注与支持!

Geatpy2.7.0正式发布

Geatpy2交流群

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