Решатель OptaPlanner: несколько лучших решений

Решаю проблему планирования с помощью OptaPlanner. После настройки решателя я вызываю метод resolve () и жду, пока он выдаст решение. Вопрос в том, что, если я хочу сравнить между собой несколько лучших решений, созданных методом решателя, и выбрать одно из них. Является ли это возможным? Я хочу установить условие завершения, сравнив два последних решения друг с другом и посмотрев, чем они отличаются друг от друга. Вот почему я хочу это реализовать. Заранее спасибо.


person Nane Petrosyan    schedule 27.04.2020    source источник


Ответы (1)


Простой ответ: добавьте SolverEventListener к Solver и слушайте bestSolutionChanged() события, чтобы запомнить их. Этого достаточно для большинства пользователей.

Сложный ответ: см. «Оптимизация Парето» в документации optaplanner. Это не поддерживается "из коробки" пока, но несколько пользователей добавили это сами, взломав BestSolutionRecaller.

person Geoffrey De Smet    schedule 28.04.2020