documentation for the eaSimple algorithm指出,父母被分为成对的连续个体,每对产生两个后代。
首先,使用 toolbox.clone()方法并将结果放入后代 人口宝执行Po上的第一个循环以配对 连续的个人。根据交叉概率cxpb, 个体xi和xi + 1使用toolbox.mate()方法配对。 由此产生的孩子yi和yi + 1替换了他们各自的父母 宝
如何处理人口中奇数个个体中的最后一个个体?难道它永远不会与另一个人交配而只会变异吗?
答案 0 :(得分:0)
从the code的角度来看,整个人口存在一个循环,该循环将个人配对以进行varAnd
中的交叉:
for i in range(1, len(offspring), 2):
这意味着如果有奇数个个体,那么一个个体将永远不会交配。
突变的循环是
for i in range(len(offspring)):
所以每个人都会被突变。
结论:确实,人口中最后一个具有奇数个个体的个体可能会发生突变,但绝不会用于交叉。