Генетический алгоритм Решение - Парето

Я реализую генетический алгоритм (NSGA2) в Scala. Он уже разработан, и я сейчас тестирую. Я использовал проблему SCH с n=1 (размер задачи). Я думаю, что получил правильное решение, но с чем-то, что я считаю странным. Я знаю, что решение этой проблемы [0,2]. Я получаю большинство решений в этом интервале, но некоторые решения находятся вне этого интервала (и имеют ненулевой ранг). Я уже увеличил количество поколений, но дал тот же результат.

Таким образом, я использую Популяцию 500, и около 400 геномов правильные, но последние 100 находятся за пределами правильного интервала [0,2] (И ранг отличается от 0).

Итак, решение, которое я получаю, это:

Полное решение NSGA2

Если стереть последние решения (около 100), которые, как я знаю, неверны (за пределами [0,2]), я получу правильное средство Парето.

Решение NSGA2 с неправильными решениями стерто

Это нормально, или это указывает на то, что что-то не так с моим кодом?

0 ответов

Другие вопросы по тегам