python - 使用 DEAP 进行遗传规划(最大化问题)时,群体平均适应度下降是否正常?

标签 python genetic-programming deap

我在 python 中使用 DEAP 库来解决遗传编程最大化问题。

我使用 eaSimple 算法 创建了具有 60% 交叉概率和 30% 突变概率的群体。

种群中最好个体的适应度不断增加,但种群的平均适应度有时会下降(例如,第一个种群的平均适应度高于最后一个种群的平均适应度)。

这是正常现象还是设置有问题?

另一件事要提的是,我已将最差适应度设置为零,并且群体确实包括适应度值为零的个体(群体规模为 1000)。

最佳答案

eaSimple 算法对初始种群的所有个体使用 varAnd 策略,并且不进行选择。因此,eaSimple 算法探索了特征空间,但对优化没有多大作用。如果您确实想使用此算法,我建议使用 HallOfFame 对象来记住在探索过程中找到的最佳对象。

<小时/>

来自the documentation中的伪代码描述 eaSimple 的作用,

population = select(population, len(population))

表示选取总体中的所有元素。例如,如果您的 select 函数是 tools.SelBest,那么您已选择 n 个具有 n 的最佳个体是人口规模。

然后使用 varAnd 策略 ( documentation ),其中父代个体根据其在种群中的索引进行配对并交配。生成的两个后代有固定的概率取代两个原来的 parent 。

关于python - 使用 DEAP 进行遗传规划(最大化问题)时,群体平均适应度下降是否正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57178174/

相关文章:

python - 如何修复 "gp.generate tried to add a primitive but there is none available"?

python - DEAP 中的 PyGame/PyMunk 评估存在问题

python - DEAP:实现 NSGA-ii 解决机票问题

Python MNE - 从数组中读取 EEG 数据

python - 从数据集元组创建列表

python - 无法在 OpenCV(Python)中打开视频

python - 在 DEAP 中实现适用于 pandas DataFrame 的 GP

python - 改变方程的 ast.NodeTransformer 示例

python - 如何在 DEAP 中测试收敛性(帕累托前沿的平滑度)

python - SSL 超越任何东西?