健身功能

时间:2015-01-28 22:07:22

标签: java algorithm genetic-algorithm

在Google上搜索遗传算法时,我遇到了OneMax问题,我的搜索显示这是遗传算法应用的第一个问题之一。但是,我不确定OneMax是什么问题。任何人都可以解释。

感谢任何帮助

1 个答案:

答案 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;
}