gpt4 book ai didi

java - Java 中遗传算法的均匀交叉

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:18 25 4
gpt4 key购买 nike

如何在 Java 中为遗传算法实现统一交叉方法?

目前,我正在使用 2 个 ArrayList,它们需要在程序继续之前相互连接。下面是我一直在使用的方法的开始:

private void UniformCrossOver(int ListOne,int ListTwo)
{
...
}

我现在所处的位置,我假设我需要制作另外 2 个 ArrayLists,将数据拆分成但我不知道从哪里开始交叉。我是否会使用 for 循环并将新数组的大小作为定义键?

非常感谢您的帮助。

最佳答案

如果在交叉后不需要 parent ,则不必创建新的数组列表。只要你的染色体大小相等,这就应该有效

public void uniformCrossover(ArrayList<Integer> a, ArrayList<Integer> b){
for (int i = 0; i <a.size(); i++) {
if(Math.random() < crossoverProbability){
int tmp = a.get(i);
a.set(i, b.get(i));
b.set(i, tmp);
}
}
}

关于java - Java 中遗传算法的均匀交叉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42736866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com