健身功能

问题描述 投票:1回答:1

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

任何帮助表示赞赏

java algorithm genetic-algorithm
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.