我在Scala中实现了遗传算法(NSGA2)。它已经开发出来了,我现在正在测试。我使用了SCH问题,n = 1(问题大小)。我认为我得到了正确的解决方案,但有些东西我觉得很奇怪。我知道这个问题的解决方案是[0,2]。我在这个时间间隔内获得了大部分解决方案,但是有些解决方案超出了这个时间间隔(并且具有非零等级)。我已经增加了几代人数,但结果却相同。
所以我使用500个群体,大约400个基因组是正确的,但最后100个在正确的区间[0,2]之外(并且排名不同于0)。
所以我得到的解决方案是:
如果删除我知道错误的最后解决方案(大约100)(在[0,2]之外)我得到了正确的Pareto frotier。:
这是正常的,还是这表明我的代码有问题?