遗传算法中有哪些交叉方法?

这是我要举的一个很小的例子:

假设我的人口为4。现在,让我根据他们的适应度对它们进行排序,然后决定删除最后2个(因此我的人口为2)。现在,我需要恢复到原始大小,但首先必须创建后代。

让我说一下:(不是用任何特定语言编写的)

population = [[2.2],[49.7],[34.1],[25.39]] //original population,I would run this under a fitness function
sortedPopulation = [[49.7],[25.39],[2.2],[34.1]] //sorted population based upon their fitness
best = [[49.7],[25.39]] //updated population with the last 2 elements being dropped (because they are the 2 worst)

在这一点上,我试图弄清楚如何跨界并创造后代。在后代之后,我将生成更多的Doubles,以恢复到原来的人口规模(我已经知道该怎么做)。有哪些交叉方式?交叉的结果实际上是什么样的?

我还想确保有一种方法可以适用于总体元素中的任何#个元素。 例如,如果每个元素都是2个double,那么我将如何从像这样的东西中产生后代:

best = [[3.3,92.56],[10.5,15.01]]
eqiu3333 回答:遗传算法中有哪些交叉方法?

如果您使用整数,最好将它们作为二进制来使用...那么您可以例如将最后2位交换为分频器,每隔2位交换,等等...甚至更好的选择是格雷码({ {3}}),否则您可能会陷入汉明的障碍(https://en.wikipedia.org/wiki/Gray_code

希望有帮助^^ 帕特里克

本文链接:https://www.f2er.com/1338053.html

大家都在问