正如标题所说,我想使用适应度调用方法,如sigma调用,因为我在非最优解中存在过早遗传转换的问题。
我知道PyGAD有一个on_fitness
方法,在计算所有个体的适应度值后调用,并认为我可以用它来解决我的问题,但无法验证。我能用它来做这个吗?
谢谢你的输入。
我不知道这是否是最好的方法,但我是这样解决我的问题的。
随着PyGAD 2.19的发布,增加了一个新的构造函数选项,fitness_batch_size
。正如它的名称所示,您现在可以一次将一批个体传递给适应度函数的一次执行,如下所示:
# with fitness_batch_size = None(or 1)
Solution = [2.184, 0,...,3.2819]
# with 1 < fitness_batch_size <= sol_per_pop
Solution = [[2.184, 0,...,3.2819], [1.234, 2.345,..., 5],...,[...]]
考虑到这一点,现在要缩放适应度,我必须调整fitness_batch_size = sol_per_pop
并一次生成所有适应度值。之后,问题是通过某种缩放传递所有值,并返回这个结果作为我的适应度值。
如果你知道更好的方法,请贴在这里。提前谢谢。