亲爱的用户,由于疫情影响,模块测试员未能及时就位,导致此前更新的Geatpy 2.4.1 版本存在某些较为严重的潜在BUG,现已经将发行版回滚至 2.4.0 版本。给大家造成的不便我们在此深表歉意!


【问卷调查问题反馈】

经过一个多月的问卷调查,现针对一些疑惑性问题作出回复:

1. Geatpy工具箱内置何时内置更多的进化算法?

答:Geatpy实验版已经支持相当丰富的进化算法,如自适应进化算法、CMA-ESGEP多模态进化优化动态进化优化偏好多目标优化等等,但这些已经实现的算法目前还分散在不同的人手中,只能在其愿意公开源码后才可提交至发行版。不过Geatpy不可能囊括所有的进化算法,“尽可能多地内置各种进化算法”并非团队的初衷,实际上用户可以参照一些平台的算法实现来在Geatpy中轻松自定义对应的算法,以便利用Geatpy的高性能内核进行运算。另外如果自定义的算法的性能不够高,可以联系我们,我们将尽力帮您进行底层改写,以获得极致的运算性能。

2. Geatpy提供的框架封装比较简单,没有一些国外的框架封装得那么系统和完备?

答:目前Geatpy提供的进化算法框架是半面向对象半面向过程的,用户不需要单步调试即可窥见框架的全貌,其中的内核算子全部是面向过程的,高度脱耦合,可以直接脱离框架使用。而某些国外的EA框架对进化算法进行了深度封装,就连单步调试都难以把握整个框架,并且多个模块之间深度耦合,想要自定义新的算法需要“牵一发而动全身”(基于国外知名EA框架改写的GEP算法程序就是个典型的例子,它把原本的框架大部分代码都给重写了)。而Geatpy提供的EA框架既有极高的性能,又不晦涩难懂,可以像搭积木似的上面自定义新的进化算法。

3. 有少数问卷中提及对Geatpy的维护团队表示好奇,想要贡献代码,需要怎么做呢?

答:目前Geatpy的软件版权挂靠在华南农业大学进化算法实验室的杨老师那里,但实际维护运营是独立于该实验室的,而由来自多所高校的优秀学生贡献代码及维护。需要贡献代码的朋友们可以通过邮件联系我们(提交的代码支持纯python和纯C语言两种),贡献的代码将会被进行深度底层优化,或者是改写成适合超大规模进化优化的GPU运算模块,以获得极致的运算性能。

4. 有部分问卷提到能否内置更多的benchmarks,以方便对进化算法的效果等进行比较。

答:后面会根据需要增添更多的benchmarks,但建议少跑benchmarks。近年来出现了越来越多的改进型进化算法,其中不少(甚至某些是出自TEVC、SCI一区的论文中的算法)存在比较严重的问题:只能在少数几个benchmarks上效果良好,换一些在论文中没做实验的而属于同一类问题的benchmarks出来的效果大打折扣、时间复杂度高、可被替代性强、难以应用到实际应用当中,等等。当前,把进化算法往更广的应用领域推广才是我们最应该做的事情,例如进化机器人、进化生命体、神经网络的进化等,而并非想方设法地在某几个benchmarks上“跑赢”某些已经比较完备的已经广泛应用了的进化算法。

5. 有部分问卷反映Geatpy代码的函数、参数命名等不符合Python规范。

答:这个是历史遗留问题,在第一代Geatpy的设计伊始并没有严格遵循Python的命名规范,而是设计了一套工具箱内统一的命名规则,让命名方式向知名的进化算法工具箱先驱者“GEATbx”致敬,采用的是英文短语缩写的形式,使得命名风格尽量接近于“GEATbx”,以便让使用过“GEATbx”的用户可以近乎无障碍地使用Geatpy。例如内核函数“bs2real”、"bs2int"、"mutbga"等。

6. Geatpy发行版什么时候支持GPU计算?

答:已经向国际知名期刊投稿与之有关的文章,发行版需要在文章最终录用后才予以支持,届时Geatpy将不需要依赖额外的第三方Python工具包便可调度GPU进行计算。不过当计算规模特别大的时候才建议使用GPU计算。

最后感谢一些提交了宝贵建议和问题的朋友们!
感谢您们的关注与支持!

听说Github的star越多对我们成员的绩效评估、升学留学等有一定的帮助作用

在此恳求大家多点star呗~~

Geatpy2.7.0正式发布

Geatpy2交流群

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