eaSimple算法文档指出,父母被分成两个连续的个体,每对生两个后代。
首先,利用toolbox.clone()方法复制亲本群体Pp,并将结果放入后代群体Po中。在Po上执行第一循环以配对连续个体。根据交叉概率cxpb,用xi+1 ()方法对toolbox.mate()个体进行交配。由此产生的“易”和“yi+1”取代了各自在“阿宝”的父母。
有奇数个体的最后一个个体是如何处理的?它从来不与另一个个体交配,只变异吗?
发布于 2019-11-26 12:21:26
从代码的角度来看,在varAnd中有一个对个体进行交叉配对的循环。
for i in range(1, len(offspring), 2):这意味着,如果有一个奇数的个体,一个人将永远不会交配。
突变的循环是
for i in range(len(offspring)):所以每个人都会变异。
结论:确实,具有奇数个体的群体中的最后一个个体可能会发生变异,但绝不会被用于交叉。
https://stackoverflow.com/questions/58716702
复制相似问题