在Google上搜索遗传算法时,我遇到了OneMax问题,我的搜索显示这是遗传算法应用的第一个问题之一。但是,我不确定OneMax是什么问题。任何人都可以解释。
感谢任何帮助
答案 0 :(得分:2)
One-Max问题的目标是创建一个长度为n
的二进制字符串,其中每个基因都包含1.健身函数非常简单,您只需迭代计算所有单词的二进制字符串。这是您在帖子中提供的公式中的总和。它只是二进制字符串中的1的数量。您还可以通过将一个数除以n * 0.01
来表示适合度百分比。更高的适应度将具有更高的百分比。最终,你会得到一串n
个,在某一代人的健身状况为100%。
double fitness(List<int> chromosome) {
int ones = chromosome.stream().filter(g -> g == 1).count();
return ones / chromosome.size() * 0.01;
}