DEAP eaSimple算法,个体数为奇数

时间:2019-11-05 17:39:02

标签: python deap

documentation for the eaSimple algorithm指出,父母被分为成对的连续个体,每对产生两个后代。

  

首先,使用   toolbox.clone()方法并将结果放入后代   人口宝执行Po上的第一个循环以配对   连续的个人。根据交叉概率cxpb,   个体xi和xi + 1使用toolbox.mate()方法配对。   由此产生的孩子yi和yi + 1替换了他们各自的父母   宝

如何处理人口中奇数个个体中的最后一个个体?难道它永远不会与另一个人交配而只会变异吗?

1 个答案:

答案 0 :(得分:0)

the code的角度来看,整个人口存在一个循环,该循环将个人配对以进行varAnd中的交叉:

for i in range(1, len(offspring), 2):

这意味着如果有奇数个个体,那么一个个体将永远不会交配。

突变的循环是

for i in range(len(offspring)):

所以每个人都会被突变。

结论:确实,人口中最后一个具有奇数个个体的个体可能会发生突变,但绝不会用于交叉。