微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决遗传算法中有哪些交叉方法?

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

假设我的人口为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]]

解决方法

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

希望有帮助^^ 帕特里克

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。