如何在基于DEAP的Python遗传算法中添加消除机制

时间:2017-01-15 13:31:36

标签: python algorithm genetic-algorithm deap

这是我的问题。
我正在使用DEAP处理一个优化问题。

现在,我使用toolbox.register("select", tools.selNSGA2)来选择一些最适合生存的个体。

但我想通过用户定义的函数添加一些阈值。

算法可以实现两步选择吗?

  
      
  1. 通过锦标赛或selNSGA2方法选择几个人

  2.   
  3. 按预先定义的阈值消灭多个人。

  4.   

1 个答案:

答案 0 :(得分:0)

这应该有用。

def myselect(pop, k, check):
    return [ind for in in tools.selNSGA2(pop, k) if check(ind)]

def mycheck(ind):
    return True

toolbox.register("select", myselect, check=mycheck)

但是,您最终会选择< = k offspring。