发布亮点

以下是当前版本中对DEAP所做的更改列表。

API 增强

  • 算法: 现在每个算法都返回最终的种群和一个包含进化统计数据的日志簿。

  • base: 健身对象现在可哈希。

  • base: 在 Fitness 中添加了一个 dominates 函数,该函数可以被替换。现在,这个函数被大多数多目标特定选择方法使用,而不是 isDominated

  • 基础:健身 - __repr__ 方法的实现。(问题 20)

  • 示例:从示例文件名中移除了前缀(ga, gp, pso 等)。

  • gp: 将 pset 添加到需要它的变异操作符中。

  • gp: 用 PrimitiveTree.__str__() 替换了 stringify() 函数。使用 strprint 在树上以读取它们的代码。

  • gp: 当某种类型的原语/终端不可用时,添加了对错误的明确描述。

  • gp: 在 benchmarks.gp 中添加了符号回归基准测试。

  • gp: 移除了临时生成器。

  • gp: 为 PrimitiveTree 添加了 from_string() 函数。

  • gp: 在 addPrimitive() 中增加了为添加到 PrimitiveSet 中的原语命名的可能性。

  • gp: 为强类型遗传编程添加了面向对象的继承。

  • gp: PrimitiveSetTyped 现在需要真实的类作为类型,而不是字符串。请参见 Spambase 示例

  • gp: 用单一函数 compile() 替换了 evaluate()lambdify()

  • gp: 用 compileADF() 替换了 lambdifyADF()

  • gp: 新增 graph() 函数,该函数返回一个节点列表、边列表和一个标签字典,这些可以直接输入到 networkx 中以绘制树。

  • gp: 将 deap.gp.genRamped() 重命名为 deap.gp.genHalfAndHalf()

  • gp: 将 staticDepthLimit()staticSizeLimit() 合并为一个函数 staticLimit(),该函数接受一个键函数作为参数,可以返回高度、大小或树应限制的任何属性。

  • 工具:修订了 HallOfFame ,使其仅包含唯一的个体。

  • 工具:改变了统计数据的计算方式。更多详情请参阅 StatisticsMultiStatistics 文档,以及教程 记录统计数据 (问题 19)。

  • 工具:用 Logbook 替换了 EvolutionLogger

  • 工具:移除了 Checkpoint 类,因为直接进行简单的检查点操作比使用该类更为简便。文档现在包含了一个如何在不使用 Checkpoint 的情况下进行检查点操作的示例。

  • 工具:重新组织子模块中的操作符,现在工具是一个包。

  • 工具:Fortin 等人(2013)实现的对数非支配排序,可通过 sortLogNondominated() 获得。

  • 工具:变异操作符现在可以接受一个值或一系列值作为参数(如 low, up, sigma 等)。

  • 工具:从源代码中移除了DTM。

  • 工具:移除了 cTools 模块。它没有得到适当的维护,并且很少使用。

  • 工具: 将 cxTwoPoints() 重命名为 cxTwoPoint()

  • 工具:将 cxESTwoPoints() 重命名为 cxESTwoPoint()

  • 工具:边界以及其他一些相关属性参数现在在交叉和变异中接受可迭代对象或值作为参数。

文档增强

  • 文档结构的大幅修订。

  • 教程现在分为两类:基础和高级。

  • 新的教程关于 日志统计

  • 关于 检查点 的新教程

  • 关于 从Numpy继承 的新教程

错误修复

发布 1.0.0

  • 创建者:问题 23:使用 Unicode 源时创建者出现错误。

  • creator: create 不再处理从 numpy.ndarray 继承的类的适当切片。这容易产生错误且极难维护。现在要求用户在他们的操作中包含 numpy.copy() 操作。关于从 numpy 继承的教程即将推出。

发布 1.0.1:

  • 工具:问题 #26:当边界以列表形式提供而不是迭代器时,带边界的操作符无法正常工作。修订:b172432515af9d4718a8cf2a

  • 工具:为 sortLogNondominated 添加缺失的参数 (k, first_front_only)。修订:f60a6520b666, 4de7df29dd0f

  • gp: 问题 #32: from_string() 在STGP中使用了错误的参数顺序。修订: 58c1a0711e1f

发布 1.0.2:

  • 基准测试:修复 DTLZ2、DTLZ3 和 DTLZ4 的计算。

  • cma 1+Lambda: 修复秩一更新的计算。

  • gp: 将生成函数的参数 type_ 的默认值从 object 更改为 None。这样做在执行STGP时,可以免除为每个生成函数定义 type_ 参数的义务。

  • gp: 修复了在任意顺序调用 addPrimitive 和 addTerminal 时 OOGP 的一个错误。

  • gp: 修复与 mutEphemeral 一起使用的 Ephemeral 再生。修订: ae46705

  • gp: 修复问题 #35 - from_string 在处理 OOGP 时存在问题。

  • 修复问题 #26:在四个示例中,文件被打开但从未关闭。