Генетический алгоритм Решение - Парето - PullRequest
0 голосов
/ 14 мая 2018

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

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

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

Complete solution of NSGA2

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

Solution of NSGA2 with wrong solutions erased

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

...