0

我正在 Scala 中实现遗传算法(NSGA2)。它已经开发出来了,我现在正在测试。我使用了 n=1(问题大小)的 SCH 问题。我认为我得到了正确的解决方案,但有一些我认为很奇怪的东西。我知道这个问题的解决方案是[0,2]。我在这个区间内得到了大部分解决方案,但有些解决方案在这个区间之外(并且具有非零等级)。我已经增加了代数,但产生了相同的结果。

所以我使用了 500 个人口,大约 400 个基因组是正确的,但最后 100 个在正确区间 [0,2] 之外(并且排名不同为 0)。

所以我得到的解决方案是:

NSGA2完整解决方案

如果删除我知道错误的最后一个解决方案(大约 100 个)(在 [0,2] 之外),我会得到正确的 Pareto frotier。:

NSGA2 的解决方案,错误的解决方案已擦除

这是正常的,还是这表明我的代码有问题?

4

0 回答 0